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 : 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());
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
 
default {
  com.sun.enterprise.security.auth.login.ClientPasswordLoginModule required debug=true; 
};
La méthode de l'EJB stateless
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
@Override
@RolesAllowed("users")
public int getChunkSize() {
	return 3000;
}
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
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 !