Bonjour,

Je rencontre des problèmes sur lesquels je galère depuis pas de jours.
Je souhaiterais établir une authentification sur une application cliente java swing auprès de mon appli serveur à l'aide de JAAS. Elle même gère les authentification par mot de passe et gère les rôles grace à mysql.

A priori ça devrait pas être trop dur ... mais je sèche.

Ce que je ne comprends pas, c'est que le client semble toujours bien authentifié. J'ai l'impression qu'il n'interroge pas le serveur.

Voici le contenu de mon fichier jboss-5.1.0.CR1/server/default/conf/login-config.xml :

Code xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
	 
    <application-policy name="secuMySQLDS">         <authentication>             <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">                 <module-option name="dsJndiName">java:/MySQLDS</module-option>                 <module-option name="principalsQuery">                     select password from SW_USERS where login=?                 </module-option>                 <module-option name="rolesQuery">                     select rolename,'Roles' from SW_ROLES                     WHERE SW_ROLES.login=?                  </module-option>                 <module-option name = "unauthenticatedIdentity">AnonymousUser</module-option>             </login-module>         </authentication>     </application-policy>
Voici mon fichier META-INF/MySQLDS-ds.xml

Code xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?xml version="1.0" encoding="UTF-8"?> <datasources>     <local-tx-datasource>         <jndi-name>MySQLDS</jndi-name>         <use-java-context>false</use-java-context>         <connection-url>jdbc:mysql://localhost:3306/test</connection-url>         <driver-class>com.mysql.jdbc.Driver</driver-class>         <user-name>root</user-name>         <password>toto</password>         <metadata>             <type-mapping>mySQL</type-mapping>         </metadata>     </local-tx-datasource> </datasources>


Le fichier jboss.xml

Code java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE jboss PUBLIC 
    "-//JBoss//DTD JBOSS 5.0//EN"     "http://www.jboss.org/j2ee/dtd/jboss_5_0.dtd">
 
<jboss>
 
    <!-- Utilise le domaine de sécurité "ObjectWS-WSDL"     spécifié dans login-config.xml     -->     <security-domain>secuMySQLDS</security-domain>      </jboss>

Voici le code client que j'execute :

Code java :

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
 public static void main(String[] args) {           String userName = "toto";
        String password = "tata";
        
        final String authFile = "auth.conf";
        System.setProperty("java.security.auth.login.config", authFile);
 
        MyCallbackHandler handler = new MyCallbackHandler(userName,password);
        
        try {             LoginContext lc = new LoginContext("AuthDS",handler);
            
            Subject subject = lc.getSubject();
            
            
            lc.login();
            
        } catch (Exception le) {             System.out.println("Login failed");
            le.printStackTrace();
        }     }

Le MyCallBackHandler fonctionne correctement et pour terminer le fichier auth.conf :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
AuthDS{
    org.jboss.security.ClientLoginModule required;
};
Voici a tout hasard le jndi.properties :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
Votre aide serait très précieuse !!!!