salut j'ai essayé de gérer la notion des permission avec jaas à l'aide d'un simple exemple
voici ma classe de test:
le fichier policy est:
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
19
20
21
22
23
24
25
26
27
28
29
30 public static void main(String[] args) { boolean result = false; try { //-Djava.security.auth.login.config=C:\JAAS\src\fileLogin.config System.setProperty("java.security.auth.login.config", "c:\\MonitoringJMX.config"); LoginCallback loginCallback=new LoginCallback("user","motDePasse"); LoginContext loginContext = new LoginContext("Login",loginCallback); loginContext.login(); System.out.println("Le principal="+loginContext.getSubject().getPrincipals().iterator().next().getName()); result=true; System.out.println("Authentification=="+result); try { AccessController.checkPermission(new PermissionImpl("admin")); System.out.println("Authorisation success!!!!!!!!"); }catch (AccessControlException e) { e.printStackTrace(); System.out.println("Authorisation failed!!!!!!!!"); } loginCallback=null; } catch (Exception e) { e.printStackTrace(); System.out.println("login failed"); result = false; } }
j'ai ajouter l'argument:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 grant Principal jaas.fileLogin.MyPrincipalRole "user"{ permission jaas.fileLogin.PermissionImpl "admin"; };
l'authentification va bien mais j'obtient toujours l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part -Djava.security.policy=C:\NesNes.policy
ou est le probleme?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 java.security.AccessControlException: access denied (jaas.fileLogin.PermissionImpl admin) Authorisation failed!!!!!!!! at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264) at java.security.AccessController.checkPermission(AccessController.java:427) at Test.main(Test.java:33)
Partager