【发布时间】:2023-03-09 17:40:01
【问题描述】:
我有一个 GoogleAppEngine 应用程序需要连接到另一个 localhost 服务器,但是当我尝试从服务器代码执行此操作时,我得到:
java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
我知道我可以通过使用 java 虚拟机参数来指定我的额外安全授权(我在 Web 应用程序 运行配置中指定它们):
java -Djava.security.manager -Djava.security.policy=WEB-INF/java.policy
java.policy 内容:
grant {
permission java.net.SocketPermission "localhost:8081", "connect, resolve";
};
但它会覆盖位于 com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager 的私有类中的 GoogleAppEngine 内部安全管理器,因此 AppEngine 本身所需的属性以这种方式被禁用。
有没有办法让 GoogleAppEngine 内部安全管理器类使用我的策略文件,而不是用 jar 中的存根(允许任何内容)文件手动替换它?
【问题讨论】:
标签: java eclipse google-app-engine security