在@Around中标记的方法response.sendRedirect无法正常工作

时间:2019-05-20 08:48:39

标签: spring spring-boot spring-mvc aspect

这是我的代码。目的是向控制器注入每个请求并通过身份验证对其进行处理。

    @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被释放,则会被执行。但是客户端浏览器不会重定向到url,而是会引发如下异常。

我能以任何方式追踪为什么会这样吗?谢谢。

  

Whitelabel错误页面

     

此应用程序没有针对/ error的显式映射,因此您将其视为备用。

     

Mon May 20 16:17:40 GMT + 08:00 2019发生意外错误(类型=内部服务器错误,状态= 500)。解决模板“ telesalesWeb / telesalesHome”时出错,该模板可能不存在,或者任何已配置的模板解析器都无法访问该模板

0 个答案:

没有答案