Вопрос или проблема
Я использую Tomcat 9 (tomcat-9.0.96-1.fc41.noarch
) и также установил пакет для административных веб-приложений Tomcat (tomcat-admin-webapps-9.0.96-1.fc41.noarch
).
Веб-приложение host-manager
поставляется с файлом host-manager/WEB-INF/manager.xml
. Этот файл объявляет фильтрацию по IP, среди прочего:
<Context docBase="${catalina.home}/webapps/manager"
privileged="true" antiResourceLocking="false" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
Это в основном то же самое, что и файл host-manager/META-INF/context.xml
того же веб-приложения, за исключением атрибутов корневого тега:
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
Файл host-manager/META-INF/context.xml
является официальным (Определение контекста).
Тем не менее, host-manager/WEB-INF/manager.xml
кажется бесполезным (он вообще читается кем-либо?), он даже не упоминается в Спецификации Jakarta Servlet, он просто существует по историческим причинам?
Ответ или решение
Вопрос о назначении файла "WEB-INF/manager.xml" в веб-приложении "host-manager" Tomcat 9 вызывает интерес у пользователей, стремящихся разобраться в структуре своей среды разработки и управления приложениями. Давайте рассмотрим этот вопрос детально.
1. Контекст и назначение файла
Файл "WEB-INF/manager.xml" в директории "host-manager" действительно выглядит как дублирующий файл "META-INF/context.xml" того же веб-приложения. Он содержит те же инструкции, такие как параметры конфигурации валидаторов и менеджеров сеансов, а также правила фильтрации по IP-адресам. Однако, следует отметить, что наличие обоих файлов не является стандартной практикой в Tomcat.
2. Чтение и использование файла
С точки зрения функциональности, файл "WEB-INF/manager.xml" неактивен и не используется напрямую веб-контейнером Tomcat для конфигурации веб-приложения. Согласно спецификации Jakarta Servlet, нет упоминаний о необходимости или обозначении данного файла. Следовательно, многие администраторы и разработчики могут просто игнорировать его.
3. Архивирование и версионная история
Скорее всего, основной причиной существования "manager.xml" является поддержание определенной совместимости с предыдущими версиями Tomcat или с другими инструментами, которые могли полагаться на эту конфигурацию в своих настройках. Вполне возможно, что его присутствие является наследием из более ранних версий, когда такая структура могла иметь значение.
4. Безопасность и процедуры
Файл "WEB-INF/manager.xml" содержит правила для управления доступом к "host-manager", которые берут свои истоки из конфигурации безопасного доступа (например, через RemoteAddrValve). Это свидетельствует о том, что при необходимости, этот файл может быть использован для управления или фильтрации доступа, даже если на практике его использование ограничено.
5. Заключение
Итак, в резюме, файл "WEB-INF/manager.xml" в веб-приложении "host-manager" Tomcat 9 действительно является избыточным, так как не используется для обычной конфигурации или функциональности и не упоминается в актуальной спецификации. Его существование больше связано с историей и возможной совместимостью с предшествующими версиями. Для большинства администраторов безопасность будет основным аспектом, и его радикальное удаление или замена не окажет влияния на функциональность "host-manager" при условии, что конфигурация осуществляется через основной файл "META-INF/context.xml".
Если ваши настройки Tomcat ориентированы на безопасность и оптимизацию, вы, возможно, захотите рассмотреть возможность полной проверки вашей конфигурации, исключив неиспользуемые и потенциально устаревшие файлы. Это позволит вам поддерживать вашу систему в актуальном состоянии, улучшая ее производительность и снижая риски.