Встроенное усиление Tomcat - как изменить / переопределить объявленную информацию о сервере при загрузке Spring?

Я копал, как сделать «упрочнение кота» на встроенном коте, и я не могу найти способ изменить эти 3 свойства информации о сервере каталины: server.info, server.built, server.number

Есть ли способ изменить эти 3 свойства в файле spring application.property? Или любым другим способом?

Конфигурация ниже представляет собой руководство по усилению защиты сервера tomcat специально для ServerInfo.properties, но НЕ для встроенного tomcat

Обоснование:
Изменение атрибута server.info может затруднить злоумышленникам определение уязвимостей, влияющих на платформу сервера.

Требуемая конфигурация:

Выполните следующие действия, чтобы изменить строку платформы сервера, которая отображается, когда клиенты подключаются к серверу tomcat.

  1. Извлеките файл ServerInfo.properties из файла catalina.jar: $ cd $ CATALINA_HOME / lib $ jar xf catalina.jar org / apache / catalina / util / ServerInfo.properties
  2. Перейдите в каталог util, который был создан cd org / apache / Catalina / util
  3. Откройте ServerInfo.properties в редакторе
  4. Обновите атрибут server.info в файле ServerInfo.properties. server.info =
  5. Обновите catalina.jar измененным файлом ServerInfo.properties. $ jar uf catalina.jar org / apache / catalina / util / ServerInfo.properties

ОБНОВИТЬ:

Я попытался изменить толстую банку приложения, перезаписав tomcat-embed-core-9.0.36 с измененными в нем ServerInfo.properties. Но когда я запускаю приложение через Java, у меня возникает такая ошибка:

Причина: java.lang.IllegalStateException: невозможно открыть вложенную запись «BOOT-INF / lib / tomcat-embed-core-9.0.36.jar». Он был сжат, и вложенные файлы jar должны храниться без сжатия. Пожалуйста, проверьте механизм, используемый для создания вашего исполняемого файла jar на org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry (JarFile.java:283) на org.springframework.boot.loader.jar.JarFile.createJarFileFileFileFileFileFile : 265) в org.springframework.boot.loader.jar.JarFile.getNestedJarFile (JarFile.java:254) ... еще 6


person Pory    schedule 18.08.2020    source источник


Ответы (1)


Придумал 2 решения:

  1. Подход Fat Jar - ›ServerInfo.properties в tomcat-embed-core.jar исправлен, а исполняемый файл fat jar упакован во время сборки. Но для того, чтобы это работало, требуется, чтобы исправленный tomcat-embed-core.jar находился в repo / artifactory.

  2. Подход Thin Jar - ›исполняемый файл jar отделен от внешних библиотек с помощью плагина spring-boot-thin-layout и spring-boot-thin-maven-plugin (для сборки). Это внешнее преобразование зависимостей, где вы можете локально исправить любой файл jar, не повреждая исполняемый тонкий файл jar.

На данный момент это 2 способа, которые я могу придумать, как укрепить встроенный tomcat в приложениях с весенней загрузкой.

Я отмечу это как ответ, пока кто-нибудь не предложит лучшее решение.

person Pory    schedule 31.08.2020