Bonjour à tous,
J'ai fait un teste sur un petit projet java EE
Servlet------>EJB(Init)--------->EJB(Print)
voici le code des deux ejb:
EJB :init
// EJB Print
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 @Stateless @RunAs("SYSTEM") @DeclareRoles({"SYSTEM"}) public class Init { @Resource EJBContext ejb; @EJB private Print print; public void initialize() { System.out.println("**********" + ejb.getCallerPrincipal().getName()); System.out.println("**********" + ejb.isCallerInRole("SYSTEM")); print.printline(); } }
Et voici le résultat de l’exécution:
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 @Stateless @DeclareRoles({"SYSTEM"}) public class Print { @Resource EJBContext ejb; public void printline() { System.out.println("**********" + ejb.getCallerPrincipal().getName()); System.out.println("*********" + ejb.isCallerInRole("SYSTEM")); } }
INFO: **********ANONYMOUS
INFO: **********false
INFO: **********system
INFO: **********false
Normalement je devrais avoir un true au lieu du 2eme false.
sachant que j'ai fait le mapping dans les deux projets web et ejb:
Est-ce que quelqu'un aurait une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <security-role-mapping> <role-name>SYSTEM</role-name> <group-name>system</group-name> </security-role-mapping>
Merci par avance.
Partager