在运行时更新Java安全策略?
是否有合法的方法在运行时添加/删除Java安全策略的权限?
Javadoc说,基于文件的策略的Policy.refresh()
会重新读取该文件。 因此,可以通过编辑策略文件然后调用Policy.refresh()
在运行时修改系统范围的策略。
从1.4动态ProtectionDomain
可以委托给Policy
。 从代码中动态删除权限不太可能有任何意义。 AccessController.doPrivileged
的两种参数forms也可能有用。
可以使用Policy.setPolicy()
方法设置自定义策略实现。 例如,参见JAAS in Action book。