【发布时间】:2012-03-29 04:39:03
【问题描述】:
我已经在我的应用程序中实现了 spring-security,我的 spring-security.xml 有以下 form-login 标签。
<form-login login-page="/login.htm" default-target-url="/dashboard.htm"
authentication-failure-url="/login.htm?error=true"
authentication-success-handler-ref="authenticationSuccessHandler" />
我想从 /login.htm 登录,并且在成功认证后我希望用户点击dashboard.htm。 Everythig 工作正常,除了在成功验证后它没有命中 /dashboard.htm 而是命中上下文..但是如果我在 url 中手动输入dashboard.htm 那么一切正常......是的..我有authticationSuccessHandler 的实现。
【问题讨论】:
-
尝试为 Spring Security 激活调试级别,看看发生了什么。您是否使用其他过滤器?作为 urlrewrite?
-
我不是 Spring Security 方面的专家,但为什么你同时拥有 default-target-url 和 authentication-success-handler ?您可以删除 default-target-url 并在成功处理程序中进行重定向
-
Blitzkr1eg 是对的,你不应该同时拥有 authentication-success-handler-ref 和 default-target-url。从 authentication-success-handler-ref 的描述中:“对 AuthenticationSuccessHandler bean 的引用,它应该用于处理成功的身份验证请求。不应与 default-target-url (或始终使用- default-target-url) 作为实现应该始终处理到后续目的地的导航"
标签: java spring spring-security