2010-09-09 15 views
8

estoy usando Spring 3.0, junto con Spring Security. Siempre he usado la siguiente configuración:los usuarios sean redirigidos a la página original después de un fallo de autenticación con seguridad la primavera

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

Así, cuando el usuario no se conecta correctamente, ir a/login. Ahora tengo un cuadro de diálogo de inicio de sesión en cada página del sitio. Si no inician sesión correctamente, no quiero que se redirecten a/login. En su lugar, quiero que vuelvan a la página en la que se encuentran. Les mostraré el mismo cuadro de diálogo cuando vea el error = credenciales como parámetro.

Entonces, ¿cómo puedo hacer esto?

Respuesta

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> 

Yo sugeriría conseguir el acceso al objeto del contexto y restablecer la dirección URL o escribir su propio controlador personalizado que podría llevar a cabo acciones específicas para la página que está en

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

+2

hmm, miradas como puedo establecer una propiedad RedirectStrategy en SimpleUrlAuthenticationFailureHandler. RedirectStrategy parece una interfaz simple para implementar donde puedo llamar a response.sendRedirect (request.getHeader ("Referer")); ¿Es esta la manera correcta de manejar esta situación? –

+0

@at ​​¿cómo te fue? ¿Escribiste tu propio SimpleUrlAuthenticationFailureHandler? ¿Encontraste buena información sobre esto o te importa proporcionar algo de tu código? Estuve buscando por un tiempo, pero es difícil encontrar algo. – nilsi

Cuestiones relacionadas