IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

time out de session


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 156
    Par défaut time out de session
    Salut,
    j'ai une petite une appli web, je veux quand le time out est atteint et que l'utilisateur fait n'importe quelle action, il sera dirigé vers la page de login.

    Quelqu'un aurait une idée, comment faire ?
    Merci par avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    C'est le comportement par défaut lorsque la sécurité est activée.
    Quand la session expire, les vérifications pour voir si l'utilisateur est bien identifié échoue et le serveur d'application traite cet utilisateur comme un utilisateur qui ne s'est pas authentifié, il le redirige alors vers la page de login.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 156
    Par défaut
    Citation Envoyé par slevy Voir le message
    C'est le comportement par défaut lorsque la sécurité est activée.
    Quand la session expire, les vérifications pour voir si l'utilisateur est bien identifié échoue et le serveur d'application traite cet utilisateur comme un utilisateur qui ne s'est pas authentifié, il le redirige alors vers la page de login.
    Au fait, j'utilise ma propre page de login, donc j'ai pas la securité j2EE.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    Paramètrer la sécurité sur le serveur J2EE ne t'empêche pas d'avoir une page JSP de login custom.
    Tu peux te plugger sur un fichier, une base de donnée ou un annuaire LDAP.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Ce n'est pas vraiment une question de sécurité...

    Je suppose que tu dois utiliser la session pour stocker les informations sur l'utilisateur courant. Or la session n'est pas éternelle, et ton problème survient lors du timeout de la session.

    Les serveurs J2EE ne conservent la session qu'un temps limité (30 minutes en général je crois). Lorsque ce temps est écoulé, la session est automatiquement invalidé et détruite. Du coup tu considères l'utilisateur comme déconnecté !


    Une solution serait d'augmenter ce delai de timeout, via le web.xml :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <session-config>
    	<!-- Durée du timeout : 1 heure -->
    	<session-timeout>60</session-timeout>
    </session-config>

    Mais :
    • Cela ne fait que "retarder" le problème : si la durée d'inactivité dépasse ce temps, tu auras toujours le même problème.
    • Tu augmentes le nombre de sessions existantes à la fois, car le serveur les conserveras beaucoup plus longtemps.



    A mon avis la meilleure solution serait de mettre en place un système de re-connexion automatique. Pour cela tu peux utiliser le sessionID car même si sa session est morte, le navigateur l'enverra quand même :

    1. Lorsqu'un utilisateur se connecte, tu lui associes son sessionID quelque part (par exemple dans la BD).
    2. Lorsque tu détectes la création d'une nouvelle session, et que l'utilisateur te fournis un numéro de session inexistante, tu recherches les infos utilisateur selon le numéro de sessionID, et tu le reconnecte automatiquement :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      // On a une nouvelle session, mais le navigateur avait bien envoyé un numéro de session
      if ( session.isNew() && request.getRequestedSessionId()!=null ) {
      	String lastSessionID = request.getRequestedSessionId();
       
      	// TODO : reconnection
      }


    a++

Discussions similaires

  1. lancer script au time out session
    Par guigo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 16/06/2009, 11h26
  2. [BO XI R2] Session Time Out
    Par bambistar dans le forum Webi
    Réponses: 9
    Dernier message: 11/12/2008, 17h41
  3. [Session]maîtriser le time out de la session
    Par croquedur dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 23/10/2007, 10h57
  4. session time out en local
    Par rony dans le forum ASP
    Réponses: 4
    Dernier message: 27/10/2006, 20h56
  5. session time out
    Par joecool2005 dans le forum ASP
    Réponses: 1
    Dernier message: 28/07/2006, 22h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo