ProgrammaticLogin et choix d'un domaine d'authentification GlassFish
Bonjour,
J'ai une application java SE qui souhaite se connecter à un EJB protégé par une authentification, un realm LDAP en l'occurence.
Pour se loguer, l'appli utilise la classe ProgrammaticLogin et se méthode login.
ça marche
Simplement je souhaiterais pouvoir spécifier sur quel domaine d'authentification doit se faire le login.
Il existe bien une méthode "dépréciée" login() qui prend en paramètre le nom du domaine mais voilà ça ne marche pas.
Quelqu'un connait-il une solution ?
Le code du client:
Code:
1 2 3 4 5 6
| ProgrammaticLogin plog = new ProgrammaticLogin();
plog.login("granier", "mon_passe".toCharArray());
// plog.login(user, password, realm, errors) // celle qui ne marche pas
uploadService = (UploadService) new InitialContext().lookup(UploadService.class.getName());
System.out.println(uploadService.getChunkSize()); |
Le jaas.config (côté client), changer default par le nom d'un realm provoque une erreur
Code:
1 2 3 4
|
default {
com.sun.enterprise.security.auth.login.ClientPasswordLoginModule required debug=true;
}; |
La méthode de l'EJB stateless
Code:
1 2 3 4 5 6
|
@Override
@RolesAllowed("users")
public int getChunkSize() {
return 3000;
} |
Les grigris dans le fichier sun-ejb-jar.xml
Code:
1 2 3 4 5 6 7 8 9
|
<sun-ejb-jar>
<security-role-mapping>
<role-name>users</role-name>
<group-name>ldap_users</group-name>
</security-role-mapping>
<enterprise-beans>
</enterprise-beans>
</sun-ejb-jar> |
J'ai pas mal cherché en vain.
Merci !