是否在运行时更新Java安全策略?

是否在运行时更新Java安全策略?,java,security,Java,Security,是否有合法的方法在运行时向Java安全策略添加/删除权限?1.4中的dynamic s可以委托给。从代码中动态删除权限不太可能有任何意义。的两种参数形式也可能有用 Javadoc说基于文件的策略的Policy.refresh()将重新读取文件。因此,可以在运行时修改系统范围的策略,方法是编辑策略文件,然后调用policy.refresh()可以使用policy.setPolicy()方法设置自定义策略实现。例如,请参阅本书。我们正在开发一个基于OSGi的框架,它应该是长期运行的,并且尽可能避免重

是否有合法的方法在运行时向Java安全策略添加/删除权限?

1.4中的dynamic s可以委托给。从代码中动态删除权限不太可能有任何意义。的两种参数形式也可能有用

Javadoc说基于文件的策略的
Policy.refresh()
将重新读取文件。因此,可以在运行时修改系统范围的策略,方法是编辑策略文件,然后调用
policy.refresh()

可以使用
policy.setPolicy()
方法设置自定义策略实现。例如,请参阅本书。

我们正在开发一个基于OSGi的框架,它应该是长期运行的,并且尽可能避免重新启动。该框架是SAAS,但客户可以将自己的捆绑包(插件)部署到系统中。因此,对于我们来说,在运行时修改权限是很好的。您会发现权限已经从策略中复制出来,并被复制到类和类加载器的ProtectionDomains中。当我通过
System.setProperty(“java.security.Policy”,policyURL)
设置策略时,这对我来说效果很好,然后刷新
Policy.Policy.refresh()
,然后安装安全管理器
System.setSecurityManager(新的安全管理器())