【问题标题】:set java security policy via parameter instead of file通过参数而不是文件设置java安全策略
【发布时间】:2017-07-02 09:40:45
【问题描述】:

我不想使用 security.policy 文件来设置一行。 我想到了这样的事情:

-Djava.security.policy="permission java.security.AllPermission"

作为 JVM 的参数。这可能吗?是否可以在不指定文件的情况下设置 java 安全策略?

我也不想直接在代码中设置属性..

【问题讨论】:

  • this webpage 对你有用吗?
  • 如果你想授予AllPermission 你为什么要使用安全管理器?
  • @ZeldaZach 这有什么用?我看不到任何关于通过参数覆盖安全策略而不是链接到策略文件的论点

标签: java rmi java-security


【解决方案1】:

没有办法,只能指定另一个安全策略文件的 URL。

【讨论】:

  • 有几种方法可以在没有文件的情况下实现安全策略。
  • 你能列出来吗?
  • java.security.Policy。标准实现使用文件,但您可以提供任何您喜欢的实现。
  • 你可以只提供不同的文件,但你不能只提供没有文件的参数。
  • 没有。看我给你的链接。您可以提供任何Policy 类,以任何喜欢的方式实施策略。不仅仅是“不同的文件”。您可以简单地编写一个将java.security.policy 直接解释为Permission 规范的类。
【解决方案2】:

java.security.Policy。标准实现使用一个文件,并假定 java.security.policy 指向一个文件,但您可以提供您喜欢的任何实现,包括行为与您描述的完全相同的实现。

但是,如果您只想使用它来授予自己 AllPermission,那么您就很难理解为什么要使用安全管理器。

【讨论】:

  • 因为我使用 Java RMI,因此我不得不使用安全管理器。
  • @shibumi 不,你不是。仅当您使用代码库功能时才需要安全管理器。
  • 自写的SecurityManagerPolicy 可以在通过命令行启动的JVM 中使用吗?如果是,该命令行会是什么样子? java -Djava.security.manager=??? -Djava.security.policy="permission java.security.AllPermission"?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 2017-05-09
  • 2019-05-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2012-03-19
相关资源
最近更新 更多