【问题标题】:redirecting back to original page after authentication failure with spring security使用spring security进行身份验证失败后重定向回原始页面
【发布时间】:2011-04-10 09:59:22
【问题描述】:

我正在使用 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 作为参数时,他们会弹出相同的对话框。

那么我该怎么做呢?

【问题讨论】:

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


    【解决方案1】:
     <!-- 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

    【讨论】:

    • 嗯,看起来我可以在 SimpleUrlAuthenticationFailureHandler 上设置 RedirectStrategy 属性。 RedirectStrategy 看起来像一个简单的接口来实现我可以调用 response.sendRedirect(request.getHeader("Referer"));这是处理这种情况的正确方法吗?
    • @at 进展如何?您是否编写了自己的 SimpleUrlAuthenticationFailureHandler?你有没有找到任何关于这方面的好信息,或者你介意提供一些代码吗?我一直在寻找,但很难找到任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2011-04-30
    • 2014-09-15
    • 2015-12-18
    • 2016-10-01
    • 1970-01-01
    • 2022-07-15
    相关资源
    最近更新 更多