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

Spring Java Discussion :

Redirection sur l'url initiale après authentification par formulaire suite à expiration de session [Security]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut Redirection sur l'url initiale après authentification par formulaire suite à expiration de session
    Bonjour,

    J'ai une webapp avec Spring Security 4.1.0 et Spring Framework 4.1.7
    Après l'expiration de ma session, je clique sur une url lambda, le framework m’envoie vers le formulaire d'authentification comme prévu.
    Après authentification, je souhaiterais être redirigé vers l'url lambda au lieux d'être redirigé vers l'url définie dans le fichier de conf spring. J'utilise un success handler spécifique qui hérite de SavedRequestAwareAuthenticationSuccessHandler (le handler qui sert justement à garder la requête d'origine). Mais malheureusement, je suis toujours redirigé vers l'url définie dans le fichier de conf spring. Que faut-il faire pour être redirigé vers l'url lambda après l'authentification ?

    Ci dessous, ma conf Spring:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
             .....
    	<security:http 	use-expressions="true"> 
     
    		<security:intercept-url pattern="/private/**" access="isAuthenticated()" />
     
    	    	<security:intercept-url pattern="/private/**" requires-channel="http" access="hasAnyRole('ROLE_ROOT','ROLE_ADMIN','ROLE_USER')" />
     
    	    	<security:intercept-url pattern="/private/admin/**" access="hasRole('ROLE_ROOT','ROLE_ADMIN')" requires-channel="http"/>
     
    	    	<security:session-management session-fixation-protection="migrateSession" invalid-session-url="/public/login" session-authentication-error-url="/public/login">
    	    		<security:concurrency-control max-sessions="1" error-if-maximum-exceeded="false" /> 
    	    	</security:session-management>		
     
    	    	<security:logout	 logout-url="/private/logout" invalidate-session="false" success-handler-ref="customLogoutSuccessHandler" delete-cookies="JSESSIONID"/>
     
     
    	    	<security:csrf disabled="true"/>
     
    	    	<security:form-login login-page="/public/login" default-target-url="/private/home" always-use-default-target="false" authentication-failure-url="/public/login/error/invalidAuthentication" authentication-success-handler-ref="customAuthenticationSuccessHandler" />   							
     
    	    	<security:remember-me key="scoreone" token-validity-seconds="1209600" remember-me-parameter="remember-me" /> 
     
    		<security:request-cache ref="requestCache"/> 
     
    		<security:access-denied-handler error-page="/denied"/>
     
       	</security:http>	
     
    	<bean id="customAuthenticationSuccessHandler" class="monorg.web.handler.CustomAuthenticationSuccessHandler">
    	    <property name="defaultTargetUrl" 		value="/private/home" />
    	    <property name="alwaysUseDefaultTargetUrl" value="false" />
    	    <property name="firstAuthenticationUrl" 		value="/private/usr/passwd" />
    	</bean> 
     
            ....

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Probablement que votre monorg.web.handler.CustomAuthenticationSuccessHandler ne descend pas de la bonne classe : SavedRequestAwareAuthenticationSuccessHandler
    Et si vous regardez le code source de AbstractAuthenticationTargetUrlRequestHandler vous verrez qu'il y a aussi un flag useReferer qui devrait être à true pour faire ce que vous voulez.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut
    Citation Envoyé par JeitEmgie Voir le message
    Probablement que votre monorg.web.handler.CustomAuthenticationSuccessHandler ne descend pas de la bonne classe : SavedRequestAwareAuthenticationSuccessHandler
    Et si vous regardez le code source de AbstractAuthenticationTargetUrlRequestHandler vous verrez qu'il y a aussi un flag useReferer qui devrait être à true pour faire ce que vous voulez.
    Merci pour la réponse.
    Pour l'héritage de SavedRequestAwareAuthenticationSuccessHandler, c'est déjà la cas
    J'ai rajouté useReferer=true
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <bean id="customAuthenticationSuccessHandler" class="monorg.web.handler.CustomAuthenticationSuccessHandler">
      <property name="defaultTargetUrl" value="/private/home" />
      <property name="alwaysUseDefaultTargetUrl" value="false" />
      <property name="firstAuthenticationUrl" value="/private/usr/passwd" />
      <property name="useReferer" 	value="true" />
    </bean>
    J'ai le comportement suivant:
    - saisie de l'url lambda
    - affichage du formulaire de login
    - je m’authentifie
    - affichage du formulaire de login
    - étonnement
    - saisie de l'url lambda
    - affichage de la page lambda

    Si qq'un à une idée

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut
    J'ai trouvé la solution.
    Il ne faut pas valoriser le paramètre invalid-session-url car sinon on y sera systématiquement redirigé après authentification suite à l'expiration de la session.

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

Discussions similaires

  1. Authentification par formulaire
    Par IcedLand dans le forum ASP.NET
    Réponses: 17
    Dernier message: 20/07/2009, 15h38
  2. [MySQL] PHP 5:redirection vers la page courante apres authentification
    Par hraiwen dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/06/2009, 12h52
  3. Réponses: 0
    Dernier message: 19/03/2009, 14h33
  4. Redirection vers la même page après submit de formulaire
    Par noOneIsInnocent dans le forum Struts 1
    Réponses: 5
    Dernier message: 27/10/2006, 15h36
  5. [1.1] Authentification par formulaire
    Par kakek dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/05/2005, 09h37

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