Похоже, это уже поднято здесь: https://github.com/codecentric/spring-boot-admin/issues/804
Я провел намного больше времени, исследуя это и нашел решение, которое решает случайное удаление файлов контекста. Я нашел эту выборку на веб-сайте Apache под разделом конфигурации хоста:
Можно вложить один или несколько элементов Контекста в этом элементе Хоста, каждый представляющий различное веб-приложение, связанное с этим виртуальным хостом.
Виртуальные хосты хранятся в файле server.xml, расположенном в CATALINA_HOME\conf. Tomcat прибывает настроенный с localhost как хост по умолчанию. Так, если мы добавляем содержание attachments.xml из первого сообщения, мы получаем следующее:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/attachments"
docBase="e:\uploads\attachments"
reloadable="true"
crossContext="true" />
</Host>
Это настолько близко, как можно добраться до определения псевдонимов, подобных серверу HTTP Apache, я думаю.
Существует несколько опций.
у каждого есть некоторые недостатки и некоторые преимущества. Я сильно предпочитаю первое решение по нескольким причинам:
О сервлете загрузки:
Таким образом, у Вас был бы сервлет, служащий Вашим статическим ресурсам, которые Вы могли бы связать с URL "/загрузку /*" (например, в приложении, которое также обрабатывает загрузки файла), Вы получили бы:
Третья опция имеет некоторые серьезные недостатки и открывает Вас для нападений, если Вы не проявляете специальную заботу о них:
<% System.exit(0); %>
или более злонамеренное содержание. Одна дополнительная мысль: Вам не нужно дополнительное crosscontext="true"
. Это подразумевало бы, что webapplication, который Вы развертываете только для обслуживания файлов, имеет доступ к другому webapplications, например, может управлять ими или получить доступ к их частным данным. Обычно Вам не нужно это вообще, в случае Вашего вопроса, Вы определенно не хотите это.