【问题标题】:Is there a right way to manipulate GoogleAppEngine security permissions?是否有正确的方法来操纵 GoogleAppEngine 安全权限?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果你特别需要使用jabber(xmpp),可以使用app engine的XMPP API

      【讨论】:

        猜你喜欢
        • 2012-03-08
        • 2012-04-17
        • 2011-05-02
        • 2019-05-28
        • 2010-10-10
        • 2011-08-02
        • 2014-12-19
        • 1970-01-01
        • 2013-11-01
        相关资源
        最近更新 更多