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:
Le jaas.config (côté client), changer default par le nom d'un realm provoque une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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());
La méthode de l'EJB stateless
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 default { com.sun.enterprise.security.auth.login.ClientPasswordLoginModule required debug=true; };
Les grigris dans le fichier sun-ejb-jar.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Override @RolesAllowed("users") public int getChunkSize() { return 3000; }
J'ai pas mal cherché en vain.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Merci !
Partager