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 :

Acegi et "lost password" [Security]


Sujet :

Spring Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Par défaut Acegi et "lost password"
    Bonjour,
    J'ai développé une appli web en java en utilisant ACEGI.
    Cela fonctionne très bien, mais aujourd'hui je voudrais rajouté un lien "mot de passe oublié"
    Ce lien m'ouvre un formulaire avec demande à l'utilisateur de son identifiant et de son adresse email.
    Mon problème se situe à la validation de ce formulaire, l'utilisateur n'est pas connecté à l'application puisqu'il a oublié son mot de passe et je n'arrive pas à contourner la vérification login/mot de passe pour ce cas particulier...
    Y a t-il un paramètre spécifique dans ACEGI pour gérer ce cas?
    Car n'ayant pas de "j_password" dans mon formulaire, je suis basculer sur ma page de connexion avec mon message "mauvais login ou mot de passe".
    Merci de votre aide!

    Lodilodi

  2. #2
    ndp
    ndp est déconnecté
    Membre expérimenté Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Par défaut
    Salut,

    Ton lien doit pointer vers une page dont l'acces ne necessite pas une authentification prealable.
    Il faut que tu verifies que cette URL est bien configuree dans ton context acegi.

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Par défaut
    J'ai bien acces à la page du formulaire pour l'oubli de mot de passe.
    Mon soucis est après...
    Je voudrais à la validation du formulaire vérifier le username, ça pas de soucis vu que c'est un j_username, mais je ne sais pas comment récupérer mon champ concernant l'adresse email...

  4. #4
    ndp
    ndp est déconnecté
    Membre expérimenté Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Par défaut
    Citation Envoyé par lodilodi Voir le message
    J'ai bien acces à la page du formulaire pour l'oubli de mot de passe.
    Mon soucis est après...
    Je voudrais à la validation du formulaire vérifier le username, ça pas de soucis vu que c'est un j_username, mais je ne sais pas comment récupérer mon champ concernant l'adresse email...
    ... je ne suis pas tout a faire sur de bien comprendre. Tu peux appeler tes noms de champs comme tu veux, du moment que tu es conherent entre ce que tu envoies et ce que tu recuperes depuis ta Request.
    Est-ce que ton probleme est uniquement la recuperation de donnees depuis la request?

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Par défaut
    C'est bien le problème je ne récupère pas la request, car ça passe directement dans les controles ACEGI...
    Donc les seules infos que je récupère sont j_username et j_password

  6. #6
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Par défaut
    En fait mon soucis est aussi lié au fait que mon url d'action de mon formulaire est acegi_check, car si je mets une autre url ça me renvoi une page en erreur "not found"...

  7. #7
    ndp
    ndp est déconnecté
    Membre expérimenté Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Par défaut
    Il te faut deux Urls, ces deux Urls distincts te permettront de differencier simplement deux actions (authentification et renvoie de pwd) et qui ont des contraintes differentes notamment au niveau de la securite (https,authentification).

    1. Url d'authentification. Tu gardes ce qui est deja, en place avec la conf par defaut des actions et nom de parametres http (ie respectivemeent acegi_check,j_username,j_password)
    2. Url Pwd oublie. Je pressume que tu utilises un framework web. Dans les framework a la SpringMVC/Struts, tu dois configurer une nouvelle action, qui va faire le traitement lorsque qu'une requete sur l'url "pwd oublie" est demande.
      Dans l'implementation de cette action, tu recuperes le login,l'adresse mail et a partir de la, tu implementes le traitement que tu veux

    Est-ce ceci est clair pour toi? j'ai l'impression qu'on ne s'est pas compris.

  8. #8
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Par défaut
    Merci ndp de te pencher sur mon problème qui est effectivement difficile à expliquer...

    Je pense que mon problème est dans la configuration d'Acegi, car à ce jour toutes mes pages sont configurées comme sécurisées (paramètres que l'on retrouve dans le tutoriel http://baptiste-meurant.developpez.c...ing-hibernate/ puisque je travail effectivement avec Spring et Hibernate)
    Ce que je n'arrive donc pas à trouver c'est ou préciser les urls que je ne veux pas sécuriser pour ainsi ne pas être intercepté par Acegi et aller directement dans le controller approprié...
    Ma configuration actuelle me renvoi à la page de login tant que je ne suis pas authentifié, puis une fois user et mot de passe reconnu, attribut les ROLE que j'ai défini, et je navigue ensuite comme bon me semble en accedant au controller défini pour chacune de mes pages.
    Là ou se situe mon soucis pour ma page "lostPwd" c'est que je ne suis pas authentifié et donc Acegi me "refuse" l'acces à mon controller tant que je ne suis pas connecté...

  9. #9
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2007
    Messages : 26
    Par défaut
    C'est bon j'ai trouvé!!

    Alors pour ceux qui auraient déjà compris mon probleme voici pour info comment j'ai pu le résoudre...

    Dans le fichier de configuration pour le bean filterChainProxy
    j'avais au départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <bean id="filterChainProxy"
    		class="org.acegisecurity.util.FilterChainProxy">
    		<property name="filterInvocationDefinitionSource">
    			<value>
    				CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
    				PATTERN_TYPE_APACHE_ANT
    				/**=httpSessionContextIntegrationFilter,formAuthenticationProcessingFilter,requestFilter,exceptionTranslationFilter,filterSecurityInterceptor,concurrentSessionFilter
    			</value>
    		</property>
    	</bean>
    Donc l'accès à toutes mes pages était sécurisé.
    il faut ensuite rajouter les urls qui ne suivent pas la même configuration.
    Voici en rouge mon url qui fait exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <bean id="filterChainProxy"
    		class="org.acegisecurity.util.FilterChainProxy">
    		<property name="filterInvocationDefinitionSource">
    			<value>
    				CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
    				PATTERN_TYPE_APACHE_ANT
    				/lostpwd.form=requestFilter
    				/**=httpSessionContextIntegrationFilter,formAuthenticationProcessingFilter,requestFilter,exceptionTranslationFilter,filterSecurityInterceptor,concurrentSessionFilter
    			</value>
    		</property>
    	</bean>
    Encore merci à ndp pour ta patience et ta volonté de comprendre mon problème au travers de mes explications je dois l'admettre vraiment pas claires....

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

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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