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

时间:2009-09-21 13:30:51

标签: java eclipse google-app-engine security

我有一个连接到另一个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";
};

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

如果您特别需要使用jabber(xmpp),则可以使用app引擎的XMPP API