2010-11-29 27 views
5

Je dois définir un cookie lorsque quelqu'un se connecte et que la page JSP qui apparaît doit être capable de lire ce cookie en Javascript et d'exécuter une action basée dessus. La partie sur laquelle je suis coincé est la mise en place d'un cookie lors de la connexion. J'utilise Spring 3.0 et Spring Security 3.0.Définition d'un cookie lors de la connexion dans Spring Security 3.0

Je me suis inscrit un LoginListener:

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

Idéalement je peux également obtenir l'objet de requête pour que je puisse trouver le contextPath et définir que le chemin du cookie. Je vais bien ajouter le cookie à un objet ThreadLocal, puis le lire plus tard quand j'aurai accès à un objet de réponse, mais y aura-t-il un moment plus tard où j'aurais cet accès? Je ne suis pas très enthousiaste à l'idée d'ajouter le cookie à une session, puis de le lire dans la page JSP qui en résulte, mais je le ferai s'il le faut. Puis-je avoir accès au HttpSession?

MISE À JOUR: une authentification Spécifier le succès-gestionnaire-ref résolu ceci: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/core-web-filters.html#form-login-flow-handling

Répondre

2

quelque chose de totalement différent, pourquoi ne pas imprimer simplement cette valeur comme si elle est une variable JS?

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

J'ai besoin d'effectuer une action en javascript quand quelqu'un se connecte. Mais cette personne peut se connecter et se retrouver sur une page Web, donc je ne sais pas la page avant de la main qu'ils vont atterrir sur . –

+0

C'est exactement pourquoi j'ai ajouté une condition 'if' à l'exemple. Si l'utilisateur est connecté, définissez la propriété bean, sinon la rendre nulle. – BalusC

+0

Comment savoir si l'utilisateur vient de se connecter? Je veux seulement exécuter l'action javascript si l'utilisateur s'est juste connecté pour la première fois dans cette session. –