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 :

[JAAS][Struts] Authentification


Sujet :

Struts 1 Java

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Par défaut [JAAS][Struts] Authentification
    Bonjour,

    voila je developpe une appli J2EE avec JBoss 4.0.2, Struts et Hibernate.
    J'essaye d'utiliser j_security_check pour la gestion de la sécurité mais je ne comprends pas trop grand chose à ce qui se passe...

    Voila ma config:

    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
    23
    <security-constraint>
         <web-resource-collection>
           <web-resource-name>HtmlAdaptor</web-resource-name>
           <url-pattern>/Ecran_Admin.jsp</url-pattern>
           <http-method>GET</http-method>
           <http-method>POST</http-method>
         </web-resource-collection>
         <auth-constraint>
             <role-name>admin</role-name>
         </auth-constraint>
       </security-constraint>
     
       <login-config>
          <auth-method>FORM</auth-method>
          <form-login-config>
             <form-login-page>/login.jsp</form-login-page>
             <form-error-page>/loginErreur.jsp</form-error-page>
          </form-login-config>
       </login-config>
     
       <security-role>
          <role-name>admin</role-name>
       </security-role>
    login-config.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
    <?xml version='1.0'?>
    <!DOCTYPE policy PUBLIC
          "-//JBoss//DTD JBOSS Security Config 3.0//EN"
          "http://www.jboss.org/j2ee/dtd/security_config.dtd">
     
    <!-- Security domain for JBossMQ AUTORENT -->
        <application-policy name = "jbossmq">
           <authentication>
              <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
                 <module-option name = "unauthenticatedIdentity">guest</module-option>
                 <module-option name = "dsJndiName">java:/autoWorkDS</module-option>
                 <module-option name = "principalsQuery">SELECT password FROM users WHERE username=?</module-option>
                 <module-option name = "rolesQuery">SELECT userRoles, Roles FROM userroles WHERE username=?</module-option>
              </login-module>
           </authentication>
        </application-policy>
    jboss-web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-web>
       <security-domain>java:/jaas/jbossmq</security-domain>
    </jboss-web>
    et j'ai deux tables dans ma base sql:

    users(username, password, utilID)
    userroles(username, userRoles, Roles)

    Voila dans mon formulaire login.jsp je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form method="POST" name="loginForm" action="j_security_check">
      <input type="text" name="j_username"/></div>
      <input type="password" name="j_password"/>
      <input type="submit" value='VALIDER'/>
      <input type="reset" value='RAFRAICHIR'/>
    </form>
    et ce qui se passe c que même si je saisi le bon username et le bon mot de passe dans ce fomulaire je suis redirigé vers ma page d'erreur de login loginErreur.jsp comme défini dans mon web.xml...

    Alors je ne sais pas trop quoi faire pour assurer l'authentification d'autant plus que j'aimerai une fois l'utilisateur authentifié le rediriger vers une section spécifique du site via une Action Struts...

    Voila merci d'avance pour le coup de main je galère la...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Par défaut
    Bon j'arrive deja mieux à saisir le fonctionnement de j_security_check...

    Le principe que je souhaite mettre en place est un principe de filtre qui lorsqu'un utilisateur souhaite accéder à une page sur laquelle j'ai défini des contraintes de sécurité il soit redirigé vers la page de login basée sur j_security_check.

    La question que je me pose maintenant est de savoir si je peux faire un formulaire d'identification classique Struts et faire en sorte que si l'utilisateur est bien authntifié en tant qu'admin il puisse par la suite accéder aux pages normalement.
    Je m'explique mieux:
    - quand je redirige vers un formulaire de login avec j_security_check ça positionne les attributs j_username et j'imagine roleName
    - quand j'utilise un formulaire d'identification classique Struts sans j_security_check est-ce que je peux positionner ces attributs dans l'Action Struts afin qu'il soit bien identifié??

    Merci de me répondre

  3. #3
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Je ne crois pas que tu puisse utiliser un form struts et une action pour l'identification, mais cependant tu peux dire à une action qu'elle doit satisfaire à un role:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <action path="/add"
            type="com......"
            name="addForm"
            scope="request"
            validate="true"
            input="/add.jsp"
            roles="administrator">
    </action>

  4. #4
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Si tu veux utiliser un formulaire struts, il te faudra passer outre le mécanisme des realms. Et faire ton authentification toi-même puis utiliser une extention du RequestProcessor de struts pour verifier à chaque requête si le user est authentifié dans la session. En prenant bien soin de mettre toutes les pages jsp non publique derrière WEB-INF

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Par défaut
    Ouais.. donc en fait j_security_check et struts c pas trop compatible si on veut faire un formulaire d'authentification?

    Soit je fais un formulaire d'authentification et je gere tout avec struts soit quand un utilisateur souhaite accéder à une zone protégée je gère l'authentification avec j_security_check... C bien ça??

  6. #6
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Oui je ne vois pas vraiment d'autres alternatives

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Par défaut
    Bonjour,
    Oui je ne vois pas vraiment d'autres alternatives
    comme indiqué récemment dans un post,
    tu peux aussi utiliser jGuard(http://www.jguard.net) pour une authentification et une gestion des autorisations basé sur JAAS, portable entre les serveurs d'applications, et utilisable avec Struts(cf la webapp d'exemple basé sur struts).


    Charles(jGuard team).

Discussions similaires

  1. [JAAS][Struts] pb download fichier
    Par Aurélie38 dans le forum Struts 1
    Réponses: 0
    Dernier message: 03/11/2008, 12h27
  2. JAAS - Struts - Jakarta Slide - Sun Application Server
    Par Struts dans le forum Sécurité
    Réponses: 2
    Dernier message: 11/07/2008, 00h37
  3. Réponses: 1
    Dernier message: 25/01/2008, 15h47
  4. [ Tomcat ] [ Struts ] Authentification par REALM & STRUT
    Par tioneb369 dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 30/10/2006, 16h05
  5. [ JAAS ][ Struts ] Formulaire Authentification
    Par cirdec dans le forum Struts 1
    Réponses: 14
    Dernier message: 05/02/2006, 18h22

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