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

Struts 1 Java Discussion :

Quelle stratégie pour l'authentification ?


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Quelle stratégie pour l'authentification ?
    Presque systématiquement dans une appli web on a besoin que l'utilisateur soit authentifié. Du coup la méthode classique c'est de fournir un "token" au navigateur.

    Mon problème avec struts est que je ne sais pas à quel moment effectuer la vérification d'authentification. Je n'ai qu'une seule servlet qui redirige vers des classes Action. Du coup je me suis dit que la vérification de l'authentification pouvait se faire dans les classes action.

    Le problème vient du fait qu'avant de passer par la classe Action Struts utilise la méthode "validate" et si la validation échoue je suis redirigé vers la page définie dans l'attribut "init". Avec ce scénario on ne passe pas par la phase d'authentification (vu qu'on ne lance pas la méthode execute de la classe Action).

    Voilà comment je définis une action dans struts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <action path="/monAction"
                type="MaClasseAction"
                name="monFormulaire" input="/jsp/formulaire.jsp">
                <forward name="SUCCESS" path="/jsp/résultat.jsp" />
                <forward name="NOT_AUTHENTIFIED" path="index.jsp" />
                <forward name="ERROR" path="/jsp/error.jsp" />
            </action>
    Alors comment faire pour avoir une authentification propre ? Je peux toujours faire les tests d'authentification dans le validate du formulaire mais que faire lorsque j'ai une action sans formulaire ?

  2. #2
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Non ce serait pas propre comme solution.

    Ajoutes une classe controleur et sa declaration dans ton fichier de configuration struts.

    Cette classe sera appelée avant toute autre action. Tu pourras y vérifier que ton user est connecté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <controller tempDir="file/tmp">
            <set-property property="processorClass" value="package.MaClasseController"/>
        </controller>

  3. #3
    Invité
    Invité(e)
    Par défaut
    Le problème du request processor c'est que
    1) J'en ai déjà un (DelegatingRequestProcessor de Spring).
    2) Toutes les actions ne nécessitent pas forcément une authentification (tout bêtement accéder à la page d'authentification ne demande pas d'être authentifié).

    Et puis est-ce qu'avec cette méthode je peux utiliser les ActionErrors ? Pour qu'en étant redirigé sur ma page de login je puisse afficher un message du style "Vous devez vous connecter avant de continuer".

    Il me faudrait une solution qui me permette de spécifier si une action nécessite ou pas d'authentification.

  4. #4
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Citation Envoyé par kei2906 Voir le message
    Et puis est-ce qu'avec cette méthode je peux utiliser les ActionErrors ?
    Tu peux aussi créer tes propres ActionErrors dans ton action ou autre methode.

    Citation Envoyé par kei2906 Voir le message
    Il me faudrait une solution qui me permette de spécifier si une action nécessite ou pas d'authentification.
    C'est une bonne idée mais je ne connais pas la solution. Dans ce cas de figure, le plus simple s'est de placer ton user en session et de vérifier dans chaque action necessitant d'être authentifié que le user est bien présent...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jdvacheron Voir le message
    C'est une bonne idée mais je ne connais pas la solution. Dans ce cas de figure, le plus simple s'est de placer ton user en session et de vérifier dans chaque action nécessitant d'être authentifié que le user est bien présent...
    C'est ce que je fais déjà. Ca marche très bien sauf quand Struts valide le formulaire, si celui-ci est mal rempli, on est directement renvoyé sur la page définie dans l'attribut init de l'action sans passer par la méthode execute de la classe Action (celle qui vérifie l'authentification). Ainsi un utilisateur entrant l'url d'une action à la main, sans s'être identifié, peut atteindre une page à laquelle il ne devrait pas avoir accès. Fonctionnellement ce n'est pas grave vu qu'il ne pourra pas utiliser cette page pour effectuer une action mais c'est juste que ça fait pas propre.

    Une solution consisterait à effectuer la validation manuellement dans la classe Action, après avoir vérifié l'authentification mais c'est dommage de détourner le processus normal de validation de formulaire de Spring.

    Sinon en cherchant un peu j'ai vu qu'on pouvait mettre en place des filtres dans le fichier web.xml de sorte que certaines url (par exemple commençant par /secure/* ) soient redirigées vers une classe particulière. Du coup c'est une solution indépendante de Struts. Reste à voir si, une fois l'authentification passée, je peux revenir dans le processus normal de Struts.

  6. #6
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Peux tu joindre ton fichier de conf stp?

    A premiere vue, je dirai que tes paramètres "validate" pour tes actions sont à true. Essaies avec false.

Discussions similaires

  1. [Débutant] Quelle stratégie pour mon projet ?
    Par patguits dans le forum Services Web
    Réponses: 0
    Dernier message: 09/09/2013, 13h49
  2. [Généralités] Quelle stratégie pour la modification de structure ?
    Par cladoo dans le forum WinDev
    Réponses: 9
    Dernier message: 22/05/2013, 10h07
  3. Réponses: 3
    Dernier message: 23/05/2011, 10h39
  4. Quelle stratégie pour coupler Hibernate et Swing ?
    Par sethys dans le forum Hibernate
    Réponses: 5
    Dernier message: 09/10/2007, 19h38
  5. Réponses: 4
    Dernier message: 04/04/2006, 19h19

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