2009-08-14 4 views
0

В настоящее время я пытаюсь создать файл политики для менеджера хранилища Nexus, работающего на Tomcat.Как настроить Java SecurityManager, чтобы разрешить читать все свойства из данного файла

Nexus пытается прочитать файл WEB-INF/plexus.properties (для которого я уже получил разрешение), и, кажется, чтобы попытаться прочитать все свойства оттуда, что не удается, поскольку отсутствует следующее разрешение:

java.security.PropertyPermission * read,write 

Как Я настраиваю SecurityManager, чтобы разрешить чтение всех свойств из этого конкретного файла? Если добавить это к политикам файлу:

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

Я предоставить разрешение на чтение и изменять все свойства, даже свойство системы, не будет ли?

ответ

2
  1. Там нет java.security.PropertyPermission, вы, вероятно, имел в виду java.util.PropertyPermission
  2. Насколько я понимаю, java.util.PropertyPermission не имеет ничего общего с чтением свойств из определяемых пользователем .property -Files. Это проверяется только для системных свойств (т.е. System.getProperty() и System.setProperty().

Какие ошибки вы получите, что заставить вас думать, что вам нужно что-нибудь, кроме разрешения для чтения файла?

+0

Там нет класса, но «java.security.PropertyPermission» Строка используется в SecurityManager. –

+0

@ Аарон: Это то, что я думал в первую очередь, но я не нахожу документацию, в которой упоминается «java.security.PropertyPermission». Можете ли вы указать мне на такую ​​документацию? Предпочтительно само Солнце. –

-1

вместо «*», укажите . имена файлов свойств

0

java.security.PropertyPermission должен быть действительным именем класса Его полное имя используется в качестве perm_class_name в файле политики, как это определено в спецификации JAAS:. 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 is right -> Проверяется только на свойства системы.

Я думаю, вы должны использовать java.io.FilePermission как perm_class_name. JavaDoc для этого класса объяснит вам его параметры (да это класс Java !!)

BR

 Смежные вопросы

  • Нет связанных вопросов^_^