Tomcat AccessControlException, несмотря на использование AllPermission

Я пытаюсь развернуть WAR в Tomcat и столкнулся с проблемами с Java Security Manager. Это Tomcat 7.0.55, работающий на Java 1.8.0, и Tomcat запускается с такими параметрами:

-Dcatalina.base="/path/to/apache-tomcat-7.0.55"
-Dcatalina.home="/path/to/apache-tomcat-7.0.55"
-Djava.endorsed.dirs="/path/to/apache-tomcat-7.0.55\endorsed"
-Djava.security.manager
-Djava.security.policy="/path/to/config/custom_catalina.policy"

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

grant {
    permission java.security.AllPermission;
};

Похоже, что это должно привести к довольно бессмысленной настройке активации диспетчера безопасности, а затем сказать ему просто разрешить все (я не запускаю сервер, поэтому не вините меня!). Тем не менее, когда я развертываю свою WAR, она завершается с несколькими трассировками стека, содержащими такие вещи, как

Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.version" "read")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457) ~[?:1.8.0_51]
    at java.security.AccessController.checkPermission(AccessController.java:884) ~[?:1.8.0_51]
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) ~[?:1.8.0_51]
    at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1294) ~[?:1.8.0_51]
    at java.lang.System.getProperty(System.java:753) ~[?:1.8.0_51]
    at org.apache.commons.lang3.JavaVersion.maxVersion(JavaVersion.java:196) ~[commons-lang3-3.4.jar:3.4]

Я пытался явно предоставить AllPermission в моем собственном приложении с чем-то вроде:

grant codeBase "file:${catalina.home}/webapps/myApp/-" {
    permission java.security.AllPermission;
};

и даже явно предоставляя PropertyPermission читать java.version, Ничего из этого не имеет значения. Такой же AccessControlExceptionS все еще брошены и предотвращают развертывание.

Что здесь происходит? Как я могу устранить это?

0 ответов

Наш был не во время развертывания, а во время тяжелого нагрузочного тестирования.

Мы изменили коннектор в server.xml с Nio2 на Nio, и это решило проблему для нас org.apache.coyote.http11.Http11NioProtocol (первая версия NIO вместо NIO2).

Мы не отключили Tomcat Security Manager, это противоречит политике нашей фирмы.

Другие вопросы по тегам