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:lors de l'appel de javax.security.auth.login.LoginContextlogin();
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)
J'instancie mon loginContext comme suit:
J'ai eu beau chercher, je n'ai pas trouvé de jar avec la classe PrivilegedActions (avec un "s").
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);
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:Je comprends pas tout à ce qu'il se passe
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; } }![]()
Partager