使用spring security在身份验证失败后重定向回原始页面

时间:2010-09-09 18:27:11

标签: java security spring spring-mvc spring-security

我正在使用Spring 3.0和Spring Security。我一直使用以下配置:

    <form-login login-page="/login" authentication-failure-url="/login?error=credentials" default-target-url="/account" login-processing-url="/security_check"/>

因此,当用户未正确登录时,他们会转到/ login。现在我在网站的每个页面都有一个登录对话框。如果他们没有正确登录,我不希望他们重定向到/ login ..而是我希望他们返回到他们所在的页面。当我看到error = credentials作为参数时,我会弹出相同的对话框。

那我该怎么做?

1 个答案:

答案 0 :(得分:2)

 <!-- redirect url for failure of authentication -->
 <bean id="simpleUrlAuthenticationFailureHandler" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
        <constructor-arg value="/login.jsp?error=1"></constructor-arg>
</bean>

我建议从上下文访问对象并重置URL或编写自己的自定义处理程序,这可能会执行特定于您所在页面的操作

http://static.springsource.org/spring-security/site/apidocs/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.html