Bonjour,

Je suis entrain de faire un client serveur RMI. J'utilise des deux coté hibernante pour accéder à la base de donnée. En gros j'appel une fonction distant qui me retourne un Bean. C'est le serveur RMI qui accède à la base de donnée et uniquement lui. Mais il y a un problème une fois que le SecurityManager coté serveur est lancé. Pour une meilleur compréhension voilà ce qu'il se passe :

Le serveur RMI :

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
31
32
33
34
35
public class ServeurRmi {
 
	public static void main(String[] args) {
		try {
 
			LocateRegistry.createRegistry(1099);
 
			/* DAOmembre manager = new DAOMembreHBM();
			  * Membre membre = manager.getWithPseudoAndPassword("pred", "predmdp");       ici mon test fonctionne très bien
			  *  System.out.println(membre.getPrenom());
*/
 
			if (System.getSecurityManager() == null) {
				System.setSecurityManager(new RMISecurityManager());
			}
 
			/* DAOMembre manager = new DAOMembreHBM();
			  * Membre membre = manager.getWithPseudoAndPassword("pred", "predmdp");       ici il ne fonctionne plus
			  *  System.out.println(membre.getPrenom());
*/
 
			LogInRMI logInImpl = new LogInImpl();
			// UnicastRemoteObject.unexportObject(logInImpl, true);
 
			Naming.rebind("rmi://localhost:1099/LogIn", logInImpl);
 
 
 
			System.out.println("Serveur lance");
 
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
Hibernate lève une exception disant qu'il ne trouve pas le hibernante.cfg.xml et dire qu'avant le SecurityManager il le trouve très bien. Je me suis donc tout de suite dit que c'était juste une mauvaise configuration du java.policy.

Le voilà :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
grant{
	permission java.net.SocketPermission "*:1024-65535", "connect, resolve";
	permission java.net.SocketPermission "*:1024-65535", "accept, resolve";
	permission java.util.PropertyPermission "hibernate.enable_specj_proprietary_syntax", "read";
};
 
grant codeBase "file://Users/pred/Documents/WorkSpaceJava/rmiServeur" {
	permission java.io.FilePermission "/Users/pred/Documents/WorkSpaceJava/rmiServeur/*.data", "read";
	permission java.io.FilePermission "/Users/pred/Documents/WorkSpaceJava/rmiServeur/*.xml", "read, write";
	permission java.io.FilePermission "/Users/pred/Documents/WorkSpaceJava/rmiServeur/*.txt", "write";
};
Merci d'avance pour votre aide.

Bonne nuit!

Ps: Désolés les modos si je n'ai pas posté au bon endroit :s