Конфигурирование домена защиты для файла .war в catalina.policy приводит к ошибке MalformedURLException - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь использовать 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

Заранее благодарим за любые идеи, которые вы можете предоставить.

...