发生异常时SpringMVC为空主体

时间:2015-01-27 04:10:52

标签: spring security authentication servlets

我正在使用弹簧并面对问题。 问题是当我将用户重定向到错误页面时,它使主体为空,而不是其他页面。

这是我的配置

的web.xml

<error-page>
    <error-code>404</error-code>
    <location>/exception/status/404</location>
</error-page>

异常控制器

@RequestMapping(value = "/exception/status/{code}")
    public String error(
            @PathVariable(value = "code") int code, 
         Principal principal,
            HttpServletRequest req, HttpServletRequest res, ModelMap map) {

        logger.info(JSONFactory.toJson(principal));
            logger.info(JSONFactory.toJson(SecurityContextHolder.getContext().getAuthentication().getPrincipal()));

        return ERROR_PAGE;
    }

如何恢复校长,因为错误页面需要一些身份验证才能显示消息?

1 个答案:

答案 0 :(得分:0)

这只是因为Principal对象没有传递给请求的页面 这不是解决此问题的最佳实践。但我认为你可以解决这个问题:
你可以将Principle对象放到ModelMap对象中,然后再将用户重定向到错误页面并在错误页面中找回它:map.put("principle", principle);

但我认为你应该研究Exception Handling in Spring MVC

相关问题