【发布时间】:2014-01-04 18:54:50
【问题描述】:
我遇到了一个对我来说很奇怪的问题,所以也许有人可以提供帮助。 在我的 security.xml 我有这个:
<http auto-config="true">
<intercept-url pattern="/app/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/app/**" access="ROLE_ADMIN,ROLE_USER"/>
<form-login login-page="/login" authentication-failure-url="/login?error=true" login-processing-url="/j_security_check" authentication-success-handler-ref="authSuccessHandler"/>
<remember-me user-service-ref="userDao" key="e37f4b31-0c45-11dd-bd0b-0800200c9a66" authentication-success-handler-ref="authSuccessHandler"/>
</http>
在我添加之前一切正常:authentication-success-handler-ref="authSuccessHandler",它很简单,如下所示:
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
logger.info("authenticated");
User user = userManager.getUserByUsername(request.getRemoteUser());
Hibernate.initialize(user.getMessagesList());
request.getSession(true).setAttribute("userMessages", user.getMessagesList());
}
现在一切正常,现在的问题是每次登录或 rememberMe 登录时,无论 URL 是什么,访问的第一个页面总是空白。在正常登录时,出现空白的页面是 /j_security_check 所以似乎由于我的成功处理程序而没有处理某些内容,正如预期的那样,删除处理程序时一切正常。我在这里错过了什么吗?请帮帮我。
【问题讨论】:
标签: spring authentication spring-security j-security-check