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

Portails Java Discussion :

Gestion des rôles pour identification sous Jboss


Sujet :

Portails Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut Gestion des rôles pour identification sous Jboss
    Bonjour la team,

    j'ai une application pour laquelle j'utilise une identification via mon application ou LDAP. Cette identification fonctionne par rapport au mot de passe utilisateur, mais je rencontre un problème pour la gestion des rôles.
    En effet, quand je me connecte via un utilisateur ayant un compte sur mon application, les rôles sont bien récupérés et l'utilisateur peut voir après identification les menus qui lui sont bien destinés.

    Par contre, si mon utilisateur est identifié sur le LDAP, ses rôles ne sont pas récupérés et aucun menu se s'affiche.

    Voici ma configuration:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <application-policy name="monAppli">
    		<authentication>
    			<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="sufficient">
    				<module-option name = "dsJndiName">jdbc/monAppliDS</module-option>							            
    	                         <module-option name = "principalsQuery">
                                            SELECT PASSWORD, LANGUAGE language 
                                            FROM USER WHERE LOGIN=?
                                    </module-option>
    				<module-option name = "rolesQuery">
    					SELECT ROLE.ROLE_ID, 'Roles' 
    					FROM ROLE, USER 
    					WHERE USER.LOGIN=? 
    						AND USER.ENABLED = 1
    						AND USER.FK_ROLE_ID=ROLE.ID 					
    				</module-option>	
    				<module-option name = "principalClass">org.monAppli.framework.security.UserPrincipal</module-option>				
    				<module-option name="suspendResume">false</module-option>
    				<module-option name="password-stacking">useFirstPass</module-option>
    				<module-option name="hashAlgorithm">MD5</module-option>
    				<module-option name="hashStorePassword">false</module-option>
    				<module-option name="hashUserPassword">true</module-option>
    				<module-option name = "hashEncoding">HEX</module-option>				
    			</login-module>	
    			
    			<login-module code = "org.jboss.security.auth.spi.LdapLoginModule" flag="required">	
    
    				<module-option name = "dsJndiName">jdbc/monAppliDS</module-option>
    				<module-option name = "rolesQuery">
    					SELECT ROLE.ROLE_ID, 'Roles' 
    					FROM ROLE, USER 
    					WHERE USER.LOGIN=? 
    						AND USER.ENABLED = 1
    						AND USER.FK_ROLE_ID=ROLE.ID 					
    				</module-option>				
                   		        <module-option name="java.naming.provider.url">xxxxxxxxxx</module-option>				
                    		<module-option name="bindDN">uid=xxxxx,OU=xxxxxx,O=xxxx,DC=fr</module-option>
                   			<module-option name="bindCredential">xxxxxx</module-option>
                   		         <module-option name="baseCtxDN">OU=activePersons,OU=persons,O=xxxxx,DC=fr</module-option>
                    		<module-option name="baseFilter">(&amp;(employeeNumber={0})(accountDisabled=FALSE))</module-option>
                                    <module-option name="rolesCtxDN">OU=activePersons,OU=persons,O=xxxxx,DC=fr</module-option>
                                    <module-option name="roleFilter">(sAMAccountName={0})</module-option>
                                    <module-option name="roleAttributeID">memberOf</module-option>
                                    <module-option name="roleAttributeIsDN">true</module-option>
                                    <module-option name="roleNameAttributeID">cn</module-option>
                                    <module-option name="searchScope">ONELEVEL_SCOPE</module-option>
                                    <module-option name="allowEmptyPasswords">false</module-option>
                                    <module-option name="password-stacking">useFirstPass</module-option>
                                    <module-option name="java.naming.security.protocol">ssl</module-option>								
                </login-module>
    			
    		</authentication>
    	</application-policy>
    Dans cette partie de code, j'ai ajouté la partie en gras pour récupérer mes rôles lors de la connection à LDAP, mais ça ne fonctionne pas. Avez une idée du problème ?

    Berni.

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    J'ai trouvé la réposne à ma question, donc si ça peut aider quelqu'un, il faut :
    - garder la gesion des rôles dans le module de l'application
    - et mettre une option sur l'authentification à ldap pour faire en sorte que si l'utilisateur ne s'identifie pas à LDAP, il puisse d'identifier à son application.

    Au niveau code cela donne :

    <application-policy name="monAppli">

    <login-module code = "org.jboss.security.auth.spi.LdapLoginModule" flag="optional">
    <module-option name="java.naming.provider.url">xxxxxxxxxx</module-option>
    <module-option name="bindDN">uid=xxxxx,OU=xxxxxx,O=xxxx,DC=fr</module-option>
    <module-option name="bindCredential">xxxxxx</module-option>
    <module-option name="baseCtxDN">OU=activePersons,OU=persons,O=xxxxx,DC=fr</module-option>
    <module-option name="baseFilter">(&amp;(employeeNumber={0})(accountDisabled=FALSE))</module-option>
    <module-option name="rolesCtxDN">OU=activePersons,OU=persons,O=xxxxx,DC=fr</module-option>
    <module-option name="roleFilter">(sAMAccountName={0})</module-option>
    <module-option name="roleAttributeID">memberOf</module-option>
    <module-option name="roleAttributeIsDN">true</module-option>
    <module-option name="roleNameAttributeID">cn</module-option>
    <module-option name="searchScope">ONELEVEL_SCOPE</module-option>
    <module-option name="allowEmptyPasswords">false</module-option>
    <module-option name="password-stacking">useFirstPass</module-option>
    <module-option name="java.naming.security.protocol">ssl</module-option>
    </login-module>

    <authentication>
    <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
    <module-option name = "dsJndiName">jdbc/monAppliDS</module-option>
    <module-option name = "principalsQuery">
    SELECT PASSWORD, LANGUAGE language
    FROM USER WHERE LOGIN=?
    </module-option>
    <module-option name = "rolesQuery">
    SELECT ROLE.ROLE_ID, 'Roles'
    FROM ROLE, USER
    WHERE USER.LOGIN=?
    AND USER.ENABLED = 1
    AND USER.FK_ROLE_ID=ROLE.ID
    </module-option>
    <module-option name = "principalClass">org.monAppli.framework.security.UserPrincipal</module-option>
    <module-option name="suspendResume">false</module-option>
    <module-option name="password-stacking">useFirstPass</module-option>
    <module-option name="hashAlgorithm">MD5</module-option>
    <module-option name="hashStorePassword">false</module-option>
    <module-option name="hashUserPassword">true</module-option>
    <module-option name = "hashEncoding">HEX</module-option>
    </login-module>

    </authentication>
    </application-policy>

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

Discussions similaires

  1. Gestion des rôles sous forms
    Par gege87270 dans le forum Forms
    Réponses: 0
    Dernier message: 26/09/2007, 16h35
  2. Gestion des interruptions du microprocesseur sous XP
    Par herve13 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 20/08/2005, 18h29
  3. Question des gestions des genres pour livre, BD...
    Par Oberown dans le forum Schéma
    Réponses: 3
    Dernier message: 16/09/2004, 16h58
  4. Gestion des modifications pour un enregistrement
    Par Pascal Jankowski dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 14h09

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