Может ли веб-приложение получить доступ к файлу конфигурации, который я определил и поместил на уровне Tomcat-> Conf, или я ограничен только переменными среды web.xml?
Вы можете разместить конфигурационные файлы где угодно. Вам просто нужно знать его точное местоположение, тогда вы можете использовать один из миллиардов способов в Java для чтения ресурсов. Канонический подход заключается в том, чтобы поместить его в путь к классам или добавить его путь к пути к классам, чтобы вы могли просто прочитать его из пути к классам с помощью загрузчика классов. Подробнее см. Также этот ответ .
Я подозреваю, что ответ отрицательный, поскольку для веб-приложения было бы довольно опасно получить доступ к чему-либо вне каталога веб-приложения.
Это опасно, только если клиент может контролировать / изменять это поведение, соответствующим образом манипулируя HTTP-запросами. С правильно разработанными сервлетами это не должно быть возможным.
Я не хочу использовать web.xml, поскольку не хочу, чтобы эта конфигурация попала в производственную среду.
Я не уверен, понимаю ли я вашу озабоченность. По умолчанию клиенты не смогут видеть файл web.xml
(на самом деле, целые папки /WEB-INF
и /META-INF
защищены от прямого доступа клиентов). Только если у вас плохо настроенный / написанный сервлет по умолчанию, есть вероятность, что клиенты смогут загрузить и увидеть файл web.xml
.
Он должен находиться исключительно в моем экземпляре dev tomcat. (Это просто флаг, позволяющий мне обойти определенные функции, которые в dev чрезвычайно медленные и не критичные)
Я думаю, что скачивать файлы конфигурации из удаленного места - плохая идея. Таким образом, все остальные могут видеть ваши файлы конфигурации. Вам нужно будет обслужить его по HTTPS и наложить ограничение доступа на основе входа в систему. Это все просто неуклюже.