我的要求是,如果用户尝试在会话中使用错误的凭据登录超过 3 次,我想锁定用户。我想将计数存储在(预认证的)会话中。
我正在使用表单身份验证
弹簧安全.xml
<security:form-login login-page="/login" default-target-url="/home" authentication-failure-url="/loginFailed" />
<security:logout logout-success-url="/" />
登录控制器:
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login() throws Exception {
return new ModelAndView(UrlRegistry.SIMPLEFI_LOGIN_PAGE);
}
@RequestMapping(value = "/loginFailed", method = RequestMethod.GET)
public ModelAndView loginFailed() {
return new ModelAndView(UrlRegistry.SIMPLEFI_LOGIN_PAGE, "error", "true");
}
从搜索。我了解了 ApplicationListener 的使用,但是我无法访问会话对象,因此无法将计数存储在那里。
有人可以建议如何实施吗?