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 :

Tomcat Java JSF Session Timeout


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Par défaut Tomcat Java JSF Session Timeout
    Bonjour, j'ai des soucis avec le system de login de mon appli.
    Je travail avec Tomcat 5.5.

    Actuellement j'ai:

    web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <session-config>
    	<session-timeout>1</session-timeout>
    </session-config>
     
    <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
     
    <error-page>
    	<error-code>403</error-code>
    	<location>/securityError.jsf</location>	
    </error-page>
     
    <login-config>
    	<auth-method>FORM</auth-method>
    	<form-login-config>
    		<form-login-page>/auth.jsp</form-login-page>
    		<form-error-page>/index.html</form-error-page>
    	</form-login-config>
    </login-config>
    index.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Refresh" content= "0; URL=home.jsf"/>
    auth.jsp:
    use j_security_check

    securityError.jsp:
    bouton Back: lien sur home.jsp

    Quand la session échoue, la page securityError.jsf est chargée correctement. Le problème est quand je clique sur le bouton "back", la page home est chargée! Mais avec le user = null (donc il y a juste une partie du menu, tout ce qui est protégé est bloqué).

    J'ai essayé d'utiliser HttpSessionListener, juste avec un logger.debug pour avoir les traces de la session (sessionCreated et sessionDestroyed).
    Quand j'ouvre la page, la page login est chargée. La session se créé. J'attend le timeout. J'essayé de cliquer su un lien, l'erreur 403 apparait. Mais la session se détruit et se recrée juste derrière! Pourquoi??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Load page:
    Session [398B4020207638F75FB96FD8323D2DFF] has been created.
    Wait...Click
    DEBUG com.xa.sc.bean.MySessionListener  Session [398B4020207638F75FB96FD8323D2DFF] is about to be destroyed.
    DEBUG com.xa.sc.bean.MySessionListener  Session [46E096D84F12E73346FFDB305A4B40CA] has been created.
    Je peut faire comment pour résoudre ça? Il y a juste un souci dans mon appli? Je dois changer ma méthode de login?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Par défaut
    Voilà trouvé la solution après tant de fatigue. J'ai ajouté le code suivant dans le constructeur du bean de auth.jsp. C'était juste l'instruction session.isNew() qui me manquait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		FacesContext ctx=FacesContext.getCurrentInstance();
    		final ExternalContext externalContext=ctx.getExternalContext();
    		HttpSession session=(HttpSession)externalContext.getSession(true);
    		//if the session is new: the user is not logged
    		if(session.isNew()){
    			//redirect
    			((HttpServletResponse)externalContext.getResponse()).sendRedirect(
    					((HttpServletRequest)externalContext.getRequest()).getContextPath());
    			ctx.responseComplete();
    		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JSF et session-timeout
    Par meryazer dans le forum JSF
    Réponses: 0
    Dernier message: 05/05/2010, 18h34
  2. Tomcat Session Timeout - override invalidate
    Par garciajulien dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/04/2010, 11h25
  3. JSF et session timeout
    Par xvolte dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 22/09/2008, 10h25
  4. [Tomcat]échange de session entre php et java
    Par benwa dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 05/06/2007, 17h01
  5. [JSP]recuperer session-timeout dans web.xml
    Par seb_fou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/05/2004, 16h01

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