#java #tomcat #tomcat6
#java #tomcat #tomcat6
Вопрос:
В настоящее время, когда я развертываю файл war в Tomcat, его можно загрузить с URL-адреса с помощью чего-то вроде foo.com/myapp.war .
В большинстве мест рекомендуется поместить запись в файл .htaccess, чтобы предотвратить публичный доступ к любым файлам war, или, в противном случае, эквивалентную запись в вашей конфигурации Apache.
К сожалению, мой хост не предоставляет доступ к конфигурации Apache (хотя я могу получить доступ к Tomcat confs), а файлы .htaccess работают не во всех средах хостинга, связанных с Tomcat / Java. Довольно разочаровывающий. Они были довольно бесполезны в этом отношении.
Не прибегая к чему-то вроде «поиска другого хоста» (кроме этой проблемы, с ними все в порядке — я бы предпочел остаться здесь, пока мое приложение не станет слишком большим), могу ли я что-нибудь еще сделать, чтобы запретить общедоступным пользователям доступ к моим файлам war, но при этом разрешить Tomcat развертывать приложения при их сканировании?
Например, возможно ли указать один каталог для Tomcat для сканирования файлов war, но при этом развернуть war в общедоступных каталогах?
Спасибо.
Комментарии:
1. Какой хост вы используете? Какая версия Tomcat? Предполагается, что файлы WAR в папке deploy недоступны.
2. dailyrazor.com, Tomcat v6. Что касается того, что сказал toomasr — я не думаю, что моя настройка Tomcat является стандартной. В моем домашнем каталоге tomcat есть /conf, /logs, /server, / temp и / work. Нет каталога / webapp, который я вижу на своем локальном компьютере. Похоже, что Wars должны быть размещены в / public_html, чтобы быть подобранными Tomcat … возможно, это лучший вопрос для serverfault…
3. Я бы предпочел связаться со службой поддержки этого хостинга. Если это неразрешимо, я бы поискал другой хост.
Ответ №1:
Вероятно, лучше спросить уhttps://serverfault.com . Все сводится к тому, как настроен Tomcat.
Ванильная настройка будет иметь папку под названием webapps в CATALINE_HOME. Вы помещаете туда свои архивы WAR (они автоматически извлекаются и развертываются). Эти папки не будут доступны по HTTP (вы не можете загрузить архивы WAR с некоторых URL, таких как /webapps/my-test.war). Эти приложения в папке webapps развернуты в некоторых корневых контекстах. Например, приложение my-test.war по умолчанию будет развернут как yourhost.com/my-test /.
Если вы можете загрузить свои архивы WAR с foo.com/myapp.war может быть, вы можете проверить, что делает приложение CATALINA_HOME / webapp / ROOT. По умолчанию это развернуто под foo.com . Запросите у хоста файлы конфигурации Tomcat, чтобы выяснить, какие пользовательские конфигурации они используют.
Ответ №2:
Вы можете разместить свои .war
файлы в любом месте, к которому у Tomcat есть доступ. Но вам придется сообщить Tomcat об этом, чтобы он их обнаружил. Вы можете сделать это, поместив конфигурационный XML-файл в
<CATALINA_HOME>/conf/Catalina/localhost/myWebapp.xml
Есть примеры того, что поместить в этот файл myWebapp.xml
, например, здесь, шаг «4)». И, конечно, официальная документация.