Jakarta ee 如何在WAS中定义java安全策略文件?

Jakarta ee 如何在WAS中定义java安全策略文件?,jakarta-ee,websphere,rmi,securitymanager,websphere-liberty,Jakarta Ee,Websphere,Rmi,Securitymanager,Websphere Liberty,我正在使用RMI开发企业应用程序,尝试(重新)绑定对象时出错: Naming.rebind(url, this); //对象“this”是UnicastRemoteObject的子类 在此说明之前,我创建了一个新的RMISecurityManager,其中包含: if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } 确切的错误是: [err]

我正在使用RMI开发企业应用程序,尝试(重新)绑定对象时出错:

Naming.rebind(url, this);
//对象“this”是UnicastRemoteObject的子类 在此说明之前,我创建了一个新的RMISecurityManager,其中包含:

if (System.getSecurityManager() == null) {
    System.setSecurityManager(new RMISecurityManager());
}
确切的错误是:

[err] java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.reflect")
我正在开发WAS Liberty Profile 8.5.5。我试图在EAR项目的META-INF文件夹中创建java.policy、app.policy、was.policy、server.policy,但没有成功

我尝试使用以下指令设置文件:
System.setProperty(“java.security.policy”,“../security/java.policy”)
有了它,它就成功了

我错过了什么?(由于上一个解决方案有效,我假设java.policy文件格式良好且高效,因此这就是将该文件包含到我的ear文件中并在WAS中进行配置的方法…) 谢谢。

取自
ear
存档文件中was.policy文件的正确位置,即
META-INF/was.policy
,但可能还有更多内容。“当启用Java 2安全性时,应用程序EAR文件现在可以运行了。”因此必须启用Java 2安全性


另外,并非所有在
java.policy
中接受的关键字在
was.policy
中都有效(也如中所述),因此您可能应该验证您的
was.policy
文件没有使用任何不支持的语法。更多关于was.policy文件的信息。

您真的需要安全管理器吗?