Настройки Tomcat Valve

Не забывайте, что компилятор делает большую работу для оптимизации всего при разрабатывании проекта. Используя это используется в большом количестве места, или 1 не должен делать различного, когда-то скомпилированного.

7
задан Community 13 April 2017 в 12:13
поделиться

4 ответа

Он должен находиться внутри вашего элемента в server.xml:

<Context
    path="/tcadmin"
    docBase="${catalina.home}/server/webapps/admin"
    privileged="true"
>
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="127\.0\.0\.1"
    />
</Context>

Просто помните, что строковые значения являются шаблонами регулярных выражений, поэтому специальные символы регулярных выражений (например, точка (.)) должна быть экранирована обратной косой чертой.

EDIT : в ответ на комментарий OP. Я думаю, вам нужно реализовать ФИЛЬТР в своем веб-приложении и настроить его для приема или отклонения запросов на основе их удаленных IP-адресов. Удаленный адрес можно получить из объекта ServletRequest , переданного в метод doFilter .

Вы объявляете фильтр в своем файле web.xml:

<filter>
  <filter-name>GatekeeperFilter</filter-name>
  <filter-class>your.package.GatekeeperFilter</filter-class>
  <init-param>
    <param-name>allowedNetwork</param-name>
    <param-value>192\.168\.2\.*</param-value>
  </init-param>
</filter>

<filter-mapping>
  <filter-name>GatekeeperFilter</filter-name>
  <url-pattern>/path/to/protected/folder</url-pattern>
</filter-mapping>

Прочтите связанную статью о том, что необходимо быть сделано, чтобы принять параметры инициализации. Думаю, для принятия решения вы можете без зазрения совести скопировать код из RequestDumperValve.

7
ответ дан 6 December 2019 в 12:52
поделиться

Вам необходимо поместить его в элемент , который определяет рассматриваемое веб-приложение.

Для Tomcat это может быть несколько мест, под каждым веб-приложением- специфический (и управляемый веб-приложением) /META-INF/context.xml или специфичный для сервера (и управляемый сервером) / conf / [enginename] / [hostname] /context.xml или зависящий от сервера глобальный /conf/context.xml или зависящий от хоста /conf/server.xml . См. Также документацию по контексту Tomcat .

4
ответ дан 6 December 2019 в 12:52
поделиться

Tomcat Valve может применяться ко всему движку, хосту или конкретному контексту (веб-приложение). Вы должны использовать его для всего приложения, а не для конкретного пути или каталогов.

Вы должны установить его в вашем META-INF / context.xml или во фрагменте контекста в каталоге conf / Catalina / [host]. Например,

<Context path="/myapp" ...>
  ...
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="10.1.2.*"/>
</Context>
2
ответ дан 6 December 2019 в 12:52
поделиться

На прошлой неделе возникла такая же потребность, что и у вас (но по другим причинам), и был создан клапан для блокировки запросов по пути. Он основан на org.apache.catalina.valves.RequestFilterValve .

Использование:

Клапан может использоваться в Engine, Host или Context так же, как любой клапан, и доступен на GitHub . http://github.com/xlson/tomcat-valves

Я бы предложил использовать в вашем приложении клапаны tomcat по умолчанию или фильтры сервлетов, если это решит вашу проблему. части приложения управления tomcat Psi-Probe «просочились», даже если мы использовали RemoteAddrValve в элементе приложения.

]
3
ответ дан 6 December 2019 в 12:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: