【发布时间】:2011-05-20 23:05:07
【问题描述】:
我在一个项目中使用 Spring MVC 和 Spring Security,并正在用它实现一个登录表单。我遇到了一种我没想到的奇怪行为,我想知道是否有办法避免它。
当登录表单出现身份验证错误时,我的控制器中有一个方法来处理它:
@RequestMapping(value="/failed", method = RequestMethod.GET)
public String showLoginFailurePage(Model model, HttpServletRequest request) {
String authExClass = "";
AuthenticationException authEx = (AuthenticationException) request.getSession().getAttribute(WebAttributes.AUTHENTICATION_EXCEPTION);
if (authEx != null) {
authExClass = authEx.getClass().getSimpleName();
}
model.addAttribute("authExClass", authExClass);
return LOGIN_PAGE;
}
这最初有效,允许我在发生身份验证错误时显示错误。但是,如果我刷新页面,我希望 AuthenticationException 将不再附加到会话,因此我不会向用户显示错误。但是,似乎异常在刷新之后仍然存在。我有一个不正确的假设吗?我不应该这样使用我的请求对象吗?
谢谢! 伊德宾利
【问题讨论】:
标签: java spring login spring-security