0

我目前正在尝试为在 Tomcat 上运行的 Nexus 存储库管理器创建一个策略文件。

Nexus 尝试读取文件WEB-INF/plexus.properties(我已经授予了权限),并且似乎尝试从那里读取所有属性,但由于缺少以下权限而失败:

java.security.PropertyPermission * read,write

如何配置 SecurityManager 以允许从该特定文件读取所有属性?如果我将其添加到策略文件中:

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

我将授予读取和更改所有属性的权限,甚至是系统属性,不是吗?

4

3 回答 3

2
  1. 没有java.security.PropertyPermission,你可能是说java.util.PropertyPermission
  2. 据我了解java.util.PropertyPermission,这与从用户定义的文件中读取属性.property无关。它只检查系统属性(即System.getProperty()System.setProperty().

您遇到哪些错误使您认为除了读取文件权限之外您还需要其他任何东西?

于 2009-08-14T11:34:41.413 回答
0

java.security.PropertyPermission 应该是一个有效的类名。其限定名称用作 jaas 规范中定义的策略文件中的 perm_class_name: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 是对的 -> 仅检查系统属性。

我认为你应该使用java.io.FilePermissionperm_class_name。这个类的 JavaDoc 会解释它的参数(是的,这是一个 java 类!!)

BR

于 2011-11-25T14:56:13.607 回答
-1

代替“*”,指定属性文件的名称。

于 2009-08-14T11:39:01.700 回答