Есть ли правильный способ манипулирования разрешениями безопасности GoogleAppEngine? - PullRequest
6 голосов
/ 21 сентября 2009

У меня есть приложение GoogleAppEngine, которое требуется для подключения к другому локальному серверу, но когда я пытаюсь сделать это из кода сервера, я получаю:

java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)

Я знаю, что могу указать свой дополнительный уровень безопасности с помощью аргументов виртуальной машины Java (я задаю их в Веб-приложении Запустить конфигурацию):

java -Djava.security.manager -Djava.security.policy=WEB-INF/java.policy

с java.policy содержимым:

grant {
       permission java.net.SocketPermission "localhost:8081", "connect, resolve";
};

, но он переопределяет внутренний менеджер безопасности GoogleAppEngine, который находится в приватном классе по адресу com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager, поэтому свойства, необходимые для самого AppEngine, таким образом отключаются.

Есть ли способ заставить класс внутреннего менеджера безопасности GoogleAppEngine использовать мой файл политики вместо того, чтобы вручную заменять его на файл-заглушку (что угодно) в банке?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2009

Вы не можете открывать сокеты в App Engine. Вам нужно использовать URLFetch API , либо через java.net, либо напрямую. Как вы ожидаете получить доступ к localhost, когда ваше приложение загружено в App Engine?

0 голосов
/ 27 января 2011

если вам специально нужно использовать jabber (xmpp), вы можете использовать XMPP API * для движка приложения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...