我有一个在 Server 2008 R2 机器上运行的网站,我想将特定 jsp 页面的访问限制为单个 IP 地址。在 Tomcat 的 context.xml 文件中,我弄清楚了如何使用 RemoteAddr Valve 限制对目录的访问,但我不知道如何对单个文件执行此操作。这可能吗?
答案1
我发现 context.xml 文件不是进行此类配置的正确位置。实际上,可以使用 Tomcat 的 RemoteAddrFilter 在 web.xml 文件中完成此操作。在下面给出的示例中,过滤器指定允许一个 IP(xxxx),所有其他 IP 都将被阻止。“filter”部分后面的“filter-mapping”标签指定要限制的 URL,在本例中为页面“something.jsp”。此页面对除允许的 IP 地址之外的所有人都是受限的,其他所有人都将收到 403 页面。
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>x.x.x.x</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Remote Address Filter</filter-name>
<url-pattern>/something.jsp</url-pattern>
</filter-mapping>