2010-11-29 10 views
5

Necesito configurar una cookie cuando alguien inicia sesión y la página JSP que aparece necesita poder leer esa cookie en Javascript y realizar una acción basada en ella. La parte en la que estoy estancado es establecer una cookie al iniciar sesión. Estoy usando Spring 3.0 y Spring Security 3.0.Configuración de una cookie al iniciar sesión en Spring Security 3.0

Me he registrado un LoginListener:

public class LoginListener implements ApplicationListener { 
    public void onApplicationEvent(ApplicationEvent event) { 
     if (event instanceof AuthenticationSuccessEvent) { 
      somehowGetResponseObject.addCookie(new Cookie(name, value)); 
     } 
    } 
} 

Lo ideal sería que también se puede obtener el objeto pedido, por lo que puedo encontrar el contextPath y establecer que, como la ruta de cookies. Estoy de acuerdo con agregar la cookie a un objeto ThreadLocal y luego leer eso más tarde cuando tengo acceso a un objeto de respuesta, pero ¿hay un momento posterior en que tendría ese acceso? No estoy tan entusiasmado con agregar la cookie a una sesión y luego leerla en la página JSP resultante, pero lo haré si es necesario. ¿Puedo obtener acceso a la HttpSession?

ACTUALIZACIÓN: Especificación de una autenticación de éxito-manejador-ref resolvió este: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/core-web-filters.html#form-login-flow-handling

Respuesta

2

Algo totalmente diferente, ¿por qué no acaba de imprimir ese valor como si se trata de una variable JS?

<script> 
    var something = '${somebean.someproperty}'; 
    if (something) { 
     performActionWith(something); 
    } 
</script> 
+0

necesito para realizar una acción en javascript cuando alguien abre una sesión. Sin embargo, esa persona puede entrar y terminar en cualquier página web, por lo que no sé la página de antemano que van a aterrizar en . –

+0

Es exactamente por eso que agregué una condición 'if' al ejemplo. Si el usuario ha iniciado sesión, establezca la propiedad bean, si no lo hace nulo. – BalusC

+0

¿Cómo sé que el usuario acaba de iniciar sesión? Solo quiero realizar la acción de javascript si el usuario SÓLO inició sesión por primera vez en esta sesión. –

Cuestiones relacionadas