有没有正确的方法来操纵GoogleAppEngine安全权限?

sha*_*sir 6 java eclipse security google-app-engine

我有一个连接到另一个localhost服务器所需的GoogleAppEngine应用程序,但是当我尝试从服务器代码执行此操作时,我得到:

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";
};
Run Code Online (Sandbox Code Playgroud)

但它会覆盖位于私有类中的GoogleAppEngine内部安全管理器com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager,因此以这种方式禁用AppEngine本身所需的属性.

有没有办法让GoogleAppEngine内部安全管理器类使用我的策略文件,而不是用jar中的存根(允许任何东西)手动替换它?

Nic*_*son 2

您无法在 App Engine 上打开套接字。您需要通过 java.net 或直接使用URLFetch API 。当您的应用程序上传到 App Engine 后,您希望如何访问“localhost”?