Apache Tomcat远程地址过滤器没有';行不通

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 因此,基于此: ,我试过这个

我似乎有一个问题,这似乎很容易,但我找不到解决办法,虽然类似的线程打开。 我想拒绝访问包含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/*/*/*