2010-11-22 19 views
1

Je souhaite stocker l'ID de l'utilisateur dans une variable de session à utiliser dans l'application. Je ne vois pas comment je ferais cela avec la fonction de sécurité par défaut? Il s'authentifie et je ne sais pas (si) il y a une fonction de rappel ou quelque chose? Que nous pouvons utiliser pour faire de notre maison de maintien de laComment définir une variable de session (un int pour l'ID de l'utilisateur) après qu'une personne s'est connectée à l'aide de j_security_check dans une servlet Java?

Toute aide est très apprécié

Répondre

1

Vous pouvez utiliser un Filter pour ce qui vérifie si l'utilisateur est connecté par conteneur géré la sécurité (c.-à-HttpServletRequest#getUserPrincipal() ne retourne pas null) puis définit la variable de session si elle n'est pas présente.

En gros:

if (request.getUserPrincipal() != null && session.getAttribute("user") == null) { 
    session.setAttribute("userId", userId); 
} 

Cependant, peut-être vous n'avez pas besoin de le faire du tout, car il prouve que vous n'êtes pas au courant de HttpServletRequest#getUserPrincipal(). Il peut notamment offrir déjà exactement l'information dont vous avez besoin. Le nom d'utilisateur de connexion (il peut être le même que l'ID d'utilisateur dont vous parlez) est disponible par Principal#getName().

+0

Oui, le livre dont je parlais ne va pas dans ce sens. La plupart de mes requêtes SQL ont des clés étrangères avec l'ID des utilisateurs, c'est pourquoi je voulais le faire. J'ai cependant l'idée, filtre qui définit l'identifiant de l'utilisateur. Merci, je vais regarder dans – JSPer