У меня есть приложение 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 использовать мой файл политики вместо того, чтобы вручную заменять его на файл-заглушку (что угодно) в банке?