gestion de sessions - Java - Programmation
Marsh Posté le 04-02-2004 à 18:05:23
ben... en utilisant des sessions
figure-toi qu'en jetant un oeil distrait a la javadoc, ne fut-ce qu'a celle concernant les classes que tu utilises déjà (au minimum 3, Servlet, ServletRequest et ServletResponse), tu trouveras la réponse.
Marsh Posté le 04-02-2004 à 18:13:16
Bon, il est possible que je n'ai rien compris, mais à ma connaissance :
1) soit tu authentifies les users via des pages sécurisées (web.xml, roles, etc.) et à ce moment là y'a pas de moyen à ma connaissance pour récupérer la liste des utilisateurs "en cours"
2) soit tu gères l'identification à la main, avec une table & co. Dans ce cas dois pouvoir savoir si quelqu'un est toujours connecté avec un bout de javascript qui va demander un reload d'un bout de ta page à intervalle régulier (c'est juste une idée comme ça, je ne sais pas si c'est réellement faisable en fait ...) et donc déclencher une servlet spéciale (un genre de "ping" donc ...).
Marsh Posté le 04-02-2004 à 18:14:40
ygrec >> à mon avis il veut juste savoir si l'user qui appelle une servlet est authentifié, il me semble pas qu'il veuille spéciquement une liste des users en cours.
(et si c le cas, c jouable avec les listeners)
Marsh Posté le 04-02-2004 à 18:17:02
the real --> Les Listeners, bon sang mais c'est bien sur ...
Marsh Posté le 04-02-2004 à 18:17:37
ReplyMarsh Posté le 04-02-2004 à 19:22:22
merci pour les reponses ... mais apparamment, je me suis mal expliqué : j'utilise deja les sessions pour conserver un attribut de type 'utilisateur_courant' mais ce que j'aimerais c'est empêcher par exemple un utilisateur ayant des droits de type administrateur de modifier les données d'un autre utilisateur quand ce dernier est connecté, et ce sans avoir a creer une table d'utilisateurs connectés.
ensuite, je voudrais empêcher un utilisateur d'accéder a l'application sans repasser par la page de log, s'il a visite d'autres sites entre temps par exemple.
Et au cas ou il me faudrait utiliser une table d'utilisateurs connectés, comment faire pour en effacer les utilisateurs qui n'aurait pas suivi le processus de deconnexion(ie: en changeant de site, en coupant le PC ...)?
Marsh Posté le 04-02-2004 à 20:30:46
Citation : |
Comme a dit the real -- : ServletContextAttributeListener tenant à jour une liste statique (pas une table DB ) des users cf 'utilisateur_courant'
Citation : |
Ca je sais pas trop Vu que je pense pas que tu puisses récupérer la dernière URL affichée par un browser ?
Citation : |
Un timeout peut être ? Ca peut être un début de piste aussi pour la question précédente ?
Hope it helps ...
Edit : Y'a des choses intéressantes là :
http://java.sun.com/developer/onli [...] chen1c.pdf
Marsh Posté le 04-02-2004 à 21:26:20
Tu peux réduire le timeout de session qui est de 20 minutes par défaut ...
Marsh Posté le 04-02-2004 à 22:32:35
benou a écrit : Tu peux réduire le timeout de session qui est de 20 minutes par défaut ... |
C'est la seule solution simple et propre que j'ai trouvé. Le problème étant de trouver une valeur acceptable pour le timeout : trop long tu vois des utilisateurs loggués alors qu'ils sont partis, trop court ton user est obligé de se relogger même si il ne quitte pas le site.
Marsh Posté le 05-02-2004 à 11:04:37
Merci pour vos idées! Avec ca, on devrais arriver a peu pres a tout faire ...
Marsh Posté le 04-02-2004 à 17:55:16
Bonjour tout le monde,
nous realisons en ce moment une application client-serveur, ayant pour objectif la gestion d'un parc d'equipements...
nous avons donc aussi a gerer des utilisateurs avec des droits differents entre autres, mais aussi la securite.
notre application est developpee en Servlets, et nous utilisons Tomcat comme moteur.
Mais comment faire pour palier aux problèmes suivants SVP :
- comment savoir si un utilisateur est connecte (pour eviter de le modifier/supprimer pendant qu'il est connecte !) sans avoir a creer une table d'utilisateurs connectes (ou un attribut de type booleen dans la table des utilisateurs) et ainsi eviter des acces a la BDD a chaque page de l'application ?
- dans le meme contexte, comment faire pour s'assurer qu'un utilisateur sera deconnecte s'il n'a pas suivi la demarche reguliere de deconnexion (par exemple s'il change de site, ou s'il ferme son navigateur, ou en cas de coupure de courant...) ?
merci d'avance !