2010-09-09 3 views
8

Я использую 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 в качестве параметра.

Так как мне это сделать?

ответ

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

+2

хмм, выглядит как я могу установить свойство RedirectStrategy в SimpleUrlAuthenticationFailureHandler. RedirectStrategy выглядит как простой интерфейс для реализации, где я могу вызвать response.sendRedirect (request.getHeader («Referer»)); Это правильный способ справиться с этой ситуацией? –

+0

@at, как все прошло? Вы пишете свой собственный SimpleUrlAuthenticationFailureHandler? Вы нашли какую-либо полезную информацию об этом или, если не хотите, предоставить какой-то код? Я искал какое-то время, но трудно найти что-либо. – nilsi

Смежные вопросы