2009-08-14 8 views
0

Ich versuche gerade, eine Richtliniendatei für den Nexus-Repository-Manager auf Tomcat zu erstellen.So konfigurieren Sie Java SecurityManager so, dass alle Eigenschaften einer Datei gelesen werden können

Nexus versucht, die Datei WEB-INF/plexus.properties (für die ich bereits erteilte Erlaubnis) zu lesen, und scheint zu versuchen, alle Eigenschaften von dort zu lesen, die fehlschlägt, weil es die folgende Berechtigung fehlt:

java.security.PropertyPermission * read,write 

Wie Ich konfiguriere den SecurityManager so, dass alle Eigenschaften dieser Datei gelesen werden können. Wenn ich dies auf die Politik-Datei hinzufügen:

permission java.security.PropertyPermision "*", "read,write" 

Ich werde die Erlaubnis, alle Eigenschaften zu lesen gewähren und zu verändern, auch Eigenschaften System, nicht wahr?

Antwort

2
  1. Es gibt keine java.security.PropertyPermission, werden Sie wahrscheinlich java.util.PropertyPermission bedeutete
  2. Soweit ich das java.util.PropertyPermission hat nichts verstehen mit dem Lesen Eigenschaften von benutzerdefinierten .property -Dateien zu tun. Es ist nur für Systemeigenschaften (dh System.getProperty() und System.setProperty() geprüft.

Welche Fehler erhalten Sie, dass Sie denken, Sie etwas anderes als die Lese-Datei mit Genehmigung?

+0

Es gibt keine Klasse, aber der String „java.security.PropertyPermission“ in der Securitymanager verwendet. –

+0

@Aaron: das ist, was ich zuerst dachte, aber ich finde keine Dokumentation, die "java.security.PropertyPermission" erwähnt. Können Sie mich auf solche Unterlagen hinweisen? Vorzugsweise von Sun selbst. –

-1

Statt „*“, geben die . Name der Eigenschaften von Dateien

0

java.security.PropertyPermission sollte ein gültiger Klassenname sein seinen qualifizierten Namen als perm_class_name in Richtliniendatei in jaas spec wie definiert verwendet wird. http://docs.oracle.com/javase/1.4.2/docs/guide/security/PolicyFiles.html#FileSyntax

grant <signer(s) field>, <codeBase URL> 
    <Principal field(s)> { 
    permission perm_class_name "target_name", "action"; 
    .... 
    permission perm_class_name "target_name", "action"; 
    }; 

Joachim Sauer hat Recht -> Es wird nur auf Systemeigenschaften geprüft.

Ich denke, Sie sollten java.io.FilePermission als perm_class_name verwenden. JavaDoc für diese Klasse wird erklären Sie seine Parameter (ja das ist eine Java-Klasse !!)

BR

Verwandte Themen