Apache Tomcat远程地址过滤器没有';行不通
我似乎有一个问题,这似乎很容易,但我找不到解决办法,虽然类似的线程打开。 我想拒绝访问包含pdf的url: attica.unipi.gr:8080/xmlui/bitstream/handle/123456789/5/a3iologisi%20genika.pdf?序列=1 请记住,这不是一个可靠的url,但它的这一部分-->/123456789/5/a3iologisi%20genika.pdf?sequence=1是动态生成的,具体取决于用户单击要查看的pdf 因此,基于此: ,我试过这个:Apache Tomcat远程地址过滤器没有';行不通,apache,tomcat,web.xml,restrict,Apache,Tomcat,Web.xml,Restrict,我似乎有一个问题,这似乎很容易,但我找不到解决办法,虽然类似的线程打开。 我想拒绝访问包含pdf的url: attica.unipi.gr:8080/xmlui/bitstream/handle/123456789/5/a3iologisi%20genika.pdf?序列=1 请记住,这不是一个可靠的url,但它的这一部分-->/123456789/5/a3iologisi%20genika.pdf?sequence=1是动态生成的,具体取决于用户单击要查看的pdf 因此,基于此: ,我试过这个
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>deny</param-name>
<param-value>127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Remote Address Filter</filter-name>
<url-pattern>/xmlui/bitstream/handle/*/*/*</url-pattern>
</filter-mapping>
或
但还是没有运气。
它要么限制对整个网站的访问,要么什么都不做
有什么建议吗
谢谢 您需要阅读Servlet规范,了解什么构成了有效的URL模式。简而言之,它们要么以通配符结尾(例如
/foo/bar/*
),要么以通配符开头(*.jsp
)
如果您只想将任何文件与pdf extExsion匹配,那么您需要的就是*.pdf
。在进行URL模式匹配时,Tomcat(或任何其他Servlet容器)将忽略查询参数
另外,协议、主机名、端口或上下文路径都不应出现在URL模式中 谢谢你的回复。我还尝试了扩展模式*.pdf,但仍然没有任何结果。。
/xmlui/bitstream/handle/*/*/*pdf
/attica.unipi.gr:8080/xmlui/bitstream/handle/*/*/*