Я пытаюсь использовать Tomcat Security Manager с моим веб-приложением, но получаю следующее сообщение об ошибке:
java.security.policy: error adding Entry:
java.net.MalformedURLException: unknown protocol: war
Для расследования я создал чистую установку последней версии Tomcat. Затем я упаковал приложение "examples" в файл военных действий. Файл Tomcat catalina.policy поставляется с закомментированной конфигурацией примера для examples.war, поэтому я удалил ее закомментировал и дал разрешение java.security.AllPermission.
Когда я запускаю «bin \ startup.bat -security», сообщения об ошибке нет, но когда я протестировал его, добавив jsp в приложение «examples» и .war, который открывает файл, он завершается с ошибкой AccessControlException, поэтому Я не думаю, что настройки домена защиты вступили в силу.
Когда я запускаю как службу, файл stderr показывает исключение MalformedURLException, показанное выше, а тестовая JSP по-прежнему приводит к AccessControlException.
Так что мне кажется, что по какой-то причине парсер файла catalina.policy не знает, как обращаться с доменами защиты для военных файлов, даже если в Security Manager HOW-TO четко указано, что он должен и Файл catalina.policy показывает примеры того, как он должен выглядеть.
Соответствующая часть моего файла catalina.policy выглядит следующим образом:
// To grant permissions for web applications using packed WAR files, use the
// Tomcat specific WAR url scheme.
//
// The permissions granted to the entire web application
grant codeBase "war:file:${catalina.base}/webapps/examples.war*/-" {
permission java.security.AllPermission;
};
Следующий фрагмент из журнала stderr показывает сообщение об ошибке и соответствующую конфигурацию Tomcat:
2019-04-15 14:35:59 Commons Daemon procrun stderr initialized
java.security.policy: error adding Entry:
java.net.MalformedURLException: unknown protocol: war
15-Apr-2019 14:36:00.500 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.40
15-Apr-2019 14:36:00.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 10 2019 14:31:19 UTC
15-Apr-2019 14:36:00.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.40.0
15-Apr-2019 14:36:00.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 7
15-Apr-2019 14:36:00.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.1
15-Apr-2019 14:36:00.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
15-Apr-2019 14:36:00.505 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk1.8.0_202\jre
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_202-b08
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-8.5.40
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-8.5.40
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-8.5.40
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-8.5.40
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=C:\apache-tomcat-8.5.40\endorsed
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-8.5.40\temp
15-Apr-2019 14:36:00.506 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
15-Apr-2019 14:36:00.507 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-8.5.40\conf\logging.properties
15-Apr-2019 14:36:00.507 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.security.manager
15-Apr-2019 14:36:00.507 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.security.policy=C:\apache-tomcat-8.5.40\conf\catalina.policy
15-Apr-2019 14:36:00.507 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: exit
15-Apr-2019 14:36:00.507 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: abort
15-Apr-2019 14:36:00.507 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512m
15-Apr-2019 14:36:00.508 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024m
Заранее благодарим за любые идеи, которые вы можете предоставить.