Bonjour,

Voici maintenant quelques jours que je suis bloqué sur un problème: je veux utiliser la mécanique JAAS pour communiquer dans un contexte sécurisé avec mon Weblo 10.0. J'ai configuré LoginModule.jar, jaas.properties, parametres de VM, et lorsque je lance mon serveur, pas de probleme. Le login de mon user admin: weblo/weblo est reconnu, et donc login ok.
Mais lorsque je veux lancer ma classe main de test, j'ai une erreur:
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
Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/security/service/PrivilegedActions
	at weblogic.security.notshared.LoggerAdapterImpl.<clinit>(LoggerAdapterImpl.java:23)
	at weblogic.security.notshared.RuntimeUtilitiesImpl.<init>(RuntimeUtilitiesImpl.java:21)
	at weblogic.security.shared.RuntimeEnvironment$RuntimeUtilityHolder.<clinit>(RuntimeEnvironment.java:18)
	at weblogic.security.shared.RuntimeEnvironment.getRuntimeUtilities(RuntimeEnvironment.java:13)
	at weblogic.security.shared.LoggerWrapper.getInstance(LoggerWrapper.java:54)
	at weblogic.security.auth.login.UsernamePasswordLoginModule.<clinit>(UsernamePasswordLoginModule.java:48)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:242)
	at javax.security.auth.login.LoginContext.invoke(LoginContext.java:731)
	at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
	at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
	at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
	at com.poc.Test.main(Test.java:24)
lors de l'appel de javax.security.auth.login.LoginContextlogin();
J'instancie mon loginContext comme suit:
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
LoginContext loginContext = null;
	      // Create a LoginContext using our own CallBackHander
	      try {
	         loginContext = new LoginContext("Toto",
	            new SimpleCallbackHandler("widiwi", "password", ""));
	      } catch (Exception e) {
	         // Can get a SecurityException or a LoginException
	         e.printStackTrace( );
	         System.exit(-1);
	      }
 // Retrieve authenticated subject and perform action using it
	      Subject subject = loginContext.getSubject( );
	      SimpleAction simpleAction = new SimpleAction();
	      weblogic.security.Security.runAs(subject, simpleAction);
	      // Retrieve authenticated subject and perform action using it
	      Subject subject = loginContext.getSubject( );
	      SimpleAction simpleAction = new SimpleAction();
	      weblogic.security.Security.runAs(subject, simpleAction);
J'ai eu beau chercher, je n'ai pas trouvé de jar avec la classe PrivilegedActions (avec un "s").

Le prire, c'est que quand je mets mets jar dans un certain ordre, la méthode javax.security.auth.login.LoginContextlogin() passe mais la meme erreur survient lors de l'appel de la méthode run de ma SimpleAction pour la ligne en gras:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
import java.security.PrivilegedAction;
import weblogic.security.SubjectUtils;

public class SimpleAction implements PrivilegedAction<Object> {
	public Object run() {
    	System.out.println("Hello world!");
    	String username = SubjectUtils.getUsername(weblogic.security.Security.getCurrentSubject());
		System.out.println("currentusername"+username);
    	return null;
    }
}
Je comprends pas tout à ce qu'il se passe