java - Tomcat 阀门设置

标签 java configuration tomcat

我认为我遇到了某种配置问题。我需要保护 我实际的 tomcat 应用程序中的一个文件夹,可以从 一定的IP范围。

我以为这是 serverfault ,所以我发布了问题 there . 现在我不确定这是 SO 还是 SF...

尽管如此,我还是继续尝试自己完成它,并认为 我需要设置

org.apache.catalina.valves.RemoteAddrValve

对于我的那个文件夹。可悲的是我无法到达我需要做的地方 环境。 web.xml, server.xml ?两者都试过了,没有成功。谁能请 帮我解决这个问题。

蒂亚

K

最佳答案

它应该放在你的 <Context> 里面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>

请记住,字符串值是正则表达式模式,因此特殊的正则表达式字符(例如点 (.))必须使用反斜杠进行转义。

编辑:回复 OP 的评论。 我认为你需要实现 FILTER在您的网络应用程序中并将其配置为根据其远程地址 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 复制代码。

关于java - Tomcat 阀门设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1839618/

相关文章:

java - 使用 Path 2d 检测坐标

jsf - 从 Tomcat 中的不可用资源重定向

php - 将 XML 用于 PHP 配置时的最佳实践?

python - 如何使用 IPython 作为我的 Emacs Python 解释器?

web-services - Tomcat,JAX-RS( Jersey ),@PathParam : how to pass two variables containing slashes

java - 设置 javascript 文件的版本。 Java EE + Tomcat

java - 为什么我的 GC 日志中的某些行只显示堆大小的一个值?

java - 使用 UTF-16 编码和 BOM 在 Ant 中编写文本文件

java - 使用列表参数将 HQL 查询转换为可执行的 SQL 查询

python-3.x - Python3 日志 yaml 配置