-
Gestion du login/session
Bonjour,
Je me demandais comment se faisait une gestion classique du login/session dans un serveur j2ee ?
J'ai lu qu'il fallait creer un session id au moment du login et le renvoyer au client. Et disons qu'ensuite je fais appel à un autre service, est ce qu'il faut que je renvoie le login/mdp au serveur ou juste le sessionID?
si c'est juste le sessionID, qu'est ce que je fait avec? Je compare avec httpSession.getId()? c'est pas un peu trop facilement piratable? (si qq'un récupère mon sessionId)
-
si t as un man in the middle il ne récupérera que l id de la session pas l authentification au server d application ...
regarde un peu ce que propose JAAS
-
un peu dangereux l'utilisation de l'ID...
Personnellement je stocke des infos sur l'utilisateur loggue dans la session.
A chaque fois qu'une servlet est execute, elle verifie si ces infos sont presentent dans la session, si c'est le cas le process continue, sinon (personne non loggue ou session morte due a un time out) je redirige vers la page de login.
Dans certain cas de pop up, suivant la methode de creation de la pop up, il se peut que cette nouvelle fenetre ouvre une nouvelle session.
Pour palier a ce cas, je prevois generalement une forme de cle unique a chaque nouveau login que je peux reutiliser comme une sorte de SSO et permettre a 2 sessions de pouvoir communiquer entre elles .
En clair ca donne ca:
Servlet Login ==> Identification + generation de la cle SSO stoke en session.
Lorsque une requete est recu par une servlet:
Si la session en cours contient les ID de l'utilisateur on continu.
Sinon si une session actuellement active contient la cle SSO recu la servlet continu.
Sinon retour a la page login.
Note que cette implementation necessite de garder en memoire une liste des sessions ouverte (mais bon y a plus difficile comme developpement a faire ;) )
---
Farid