我认为我遇到了某种配置问题。我需要保护 我实际的 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/