RMI Security Manager & Policy-File

DStrohma

Bekanntes Mitglied
Hi Leute,

da ich per RMI kommuniziere, will ich einen Security Manager integrieren. Ich hab auch eine Policy-File in der steht was erlaubt ist (File heißt "policy"). Jetzt hätt ich den Security Manager gern dahingehend konfiguriert, dass er eben meine Policy verwendet. Hätt mir das irgendwie so vorgestellt:

Java:
		SecurityManager secMan = null;

		if (System.getSecurityManager() == null) {
			secMan = new RMISecurityManager();
		    FilePermission perm = new FilePermission("policy", "read");		

		    secMan.checkPermission(perm);

			System.setSecurityManager(secMan);
		}

Geht nur leider nicht. Ich bekomme folgende Exception:
Code:
Exception in thread "main" java.security.AccessControlException: access denied (java.io.FilePermission policy read)
	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
	at java.security.AccessController.checkPermission(AccessController.java:546)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        ........

Der Fehler liegt in folgender Zeile: "secMan.checkPermission(perm);"
Is mir irgendwo auch klar weil da versucht wird auf eine Datei (die Policy eben) zuzugreifen und das (noch) nicht erlaubt ist... Nur wie kann ich dann eine Policy-Datei auslesen?

Versteh das irgendwie gar nicht. Hab versucht eine andere Methode als "checkPermission" zu finden, war aber nicht erfolgreich....

Im Voraus schon mal vielen Dank!
Gruß,
DS
 

Tobias

Top Contributor
Ja, siehst du richtig. Das Policy-File muss zum Programmstart mitgegeben werden. Ich habe dazu in meiner Diplomarbeit eine kleine Abhandlung verfasst, wenn ich daheim bin kann ich nen Link posten ...
 

Ice-Tea

Bekanntes Mitglied
Java:
-Djava.security.policy="C:\Dein\policy\Pfad\RmiPolicy.txt"

Einfach der VM als prameter mitgeben.
 

DStrohma

Bekanntes Mitglied
Ja, siehst du richtig. Das Policy-File muss zum Programmstart mitgegeben werden. Ich habe dazu in meiner Diplomarbeit eine kleine Abhandlung verfasst, wenn ich daheim bin kann ich nen Link posten ...

Das wär super, danke schon mal :)

Java:
-Djava.security.policy="C:\Dein\policy\Pfad\RmiPolicy.txt"

Einfach der VM als prameter mitgeben.

Ich werds dann so machen, danke :)
 

DStrohma

Bekanntes Mitglied
Jungs... Ihr habt mich angelogen ^^

Es geht doch:

Java:
		System.setProperty("java.security.policy", "./policy");
		if (System.getSecurityManager() == null) {
			System.setSecurityManager(new SecurityManager());
		}
 

Ähnliche Java Themen

Neue Themen


Oben