Spring безопасность, не ударяющая по умолчанию-target-url после успешной авторизации
Я применил spring -security в моем приложении, мой spring -security.xml имеет следующий тег для входа в форму.
<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, но попадает в контекст.. но если я вручную наберю dashboard.htm в url, тогда все будет хорошо... Да.. У меня есть реализация authticationSuccessHandler.
Ответы
Ответ 1
Попробуйте удалить атрибут default-target-url
и добавьте следующее:
<b:bean id="authenticationSuccessHandler" class="com.example.CustomSimpleURLAuthenticationSuccessHandler">
<b:property name="defaultTargetUrl" value="/dashboard.htm"/>
</b:bean>
Ответ 2
<beans:bean id="loginSuccessHandler" class="com.example.LoginSuccessHandler">
<beans:property name="defaultTargetUrl" value="/security/success"/>
<beans:property name="alwaysUseDefaultTargetUrl" value="true"/>
</beans:bean>
public class LoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws ServletException, IOException {
request.getSession().setMaxInactiveInterval(60 * 60); //one hour
System.out.println("Session set up for 60min");
super.onAuthenticationSuccess(request, response, authentication);
}
}
Ответ 3
Я использую это предложение из вопроса spring не перенаправляется на целевой URL-адрес по умолчанию?. Я пробовал это, и он работает.
<form-login login-page="/login.htm"
default-target-url="/dashboard.htm"
always-use-default-target="true"/>
Ответ 4
Как вы можете видеть на изображении, существует какой-то плохой дизайн (IMO Он всегда перенаправляется на default-target-url
).
Когда вы перейдете в форму входа с запрещенного ресурса, он перенаправит вас на этот URL и не перейдет через the default-target-url
http://i.stack.imgur.com/fj9ou.png