salut j'ai essayé de gérer la notion des permission avec jaas à l'aide d'un simple exemple
voici ma classe de test:
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;
		   }
 
	}
le fichier policy est:
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";
};
j'ai ajouter l'argument:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
-Djava.security.policy=C:\NesNes.policy
l'authentification va bien mais j'obtient toujours l'erreur suivante:
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)
ou est le probleme?