我正在使用弹簧并面对问题。 问题是当我将用户重定向到错误页面时,它使主体为空,而不是其他页面。
这是我的配置
的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;
}
如何恢复校长,因为错误页面需要一些身份验证才能显示消息?
答案 0 :(得分:0)
这只是因为Principal对象没有传递给请求的页面
这不是解决此问题的最佳实践。但我认为你可以解决这个问题:
你可以将Principle对象放到ModelMap对象中,然后再将用户重定向到错误页面并在错误页面中找回它:map.put("principle", principle);
但我认为你应该研究Exception Handling in Spring MVC。