В @Around отмеченный метод response.sendRedirect работает некорректно - PullRequest
0 голосов
/ 20 мая 2019

Вот мой код.Цель состоит в том, чтобы внедрить каждый запрос в контроллер и обработать его с аутентификацией.

    @Around("url_access_aspect()")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        Object retVal = null;
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        HttpServletResponse response = attributes.getResponse();


        // Some operration
        boolean flag_auth = this.checkToken(request, response);

        if (flag_auth) {
            // authentication is success
        } else {
           response.sendRedirect("http://xxxxxxx.xxxxxxxx.xxxxxxxx");
        }
        return retVal;
    }

Я считаю, что если flag_auth является flase, то это оправдано.Но клиентский браузер не перенаправляется на URL-адрес, вместо этого он выдает исключение, как показано ниже.

В любом случае, я могу проследить, почему это так?Спасибо.

Страница ошибки Whitelabel

Это приложение не имеет явного сопоставления для / error, поэтому вы видите это как запасной вариант.

Пн 20 мая 16:17:40 GMT + 08: 00 2019 Произошла непредвиденная ошибка (тип = Внутренняя ошибка сервера, статус = 500).Ошибка при разрешении шаблона "telesalesWeb / telesalesHome", шаблон может отсутствовать или быть недоступным для любого из настроенных преобразователей шаблонов

...