我认为存在某种配置问题。我需要保护我实际的tomcat应用程序中的一个文件夹,以防止从某个IP范围进行访问。
我认为这是serverfault,所以我张贴的问题存在。现在我不确定这是SO还是SF …
不过,我一直尝试自己动手做,发现我需要设置
org.apache.catalina.valves.RemoteAddrValve
为我的那个文件夹。可悲的是,我只是无法到达进行该设置的位置。web.xml,server.xml?两者都尝试过,没有成功。任何人都可以帮我这个忙。
tia
ķ
它应该放在<Context>server.xml中的元素中:
<Context>
<Context path="/tcadmin" docBase="${catalina.home}/server/webapps/admin" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" /> </Context>
请记住,字符串值是正则表达式模式,因此特殊的正则表达式字符(例如dot(。))必须以反斜杠转义。
编辑 :回复OP的评论。我认为您需要在Web应用程序中实现FILTER并将其配置为根据其远程地址IP接受或拒绝请求。可以从ServletRequest传递给doFilter方法的对象中检索远程地址。
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复制代码。