在没有默认java.policy文件的情况下运行Java Security Manager

mat*_*ots 4 java security securitymanager

我不想修改我的java主目录中的任何内容,但是,我担心有时我的默认java.policy文件可能过于宽松.当我使用该-Djava.security.manager选项运行java时,有没有办法让我使用指定的策略文件作为唯一的策略文件?

如果我添加一个-Djava.security.policy=myPolicy.policy选项,它除了使用默认策略文件之外还使用我的策略文件 - 这很糟糕,因为看起来仍然授予了在默认策略文件中授予的所有权限.

esa*_*saj 10

Java SecurityManager的常见错误:

  • 使用SecurityManager和默认Java安全策略运行,即$ JAVA_HOME/jre/lib/security/java.policy:

    java -Djava.security.manager Main

  • 要使用SecurityManager运行,只运行自定义安全策略(忽略默认的Java安全策略):

    java -Djava.security.manager -Djava.security.policy==security.policy Main

  • 要首先使用SecurityManager和默认的Java安全策略运行,那么您的自定义安全策略:

    java -Djava.security.manager -Djava.security.policy=security.policy Main

  • 如果您不想要SecurityManager,那么只需省略java.security.policy以避免任何混淆.

  • 哇...我没想到它会起作用,所以使用 == 作为执行者是违反直觉的。 (3认同)