2013-10-02 122 views
1

我似乎有一个问题,它似乎很容易,但我找不到解决方案,虽然类似的线程打开听到。 嗯,我想拒绝访问其中包含了PDF的URL: attica.unipi.gr:8080/xmlui/bitstream/handle/123456789/5/a3iologisi%20genika.pdf?sequence=1Tomcat远程地址过滤器不起作用

请请注意,这不是一个可靠的url,但它的这部分 - > /123456789/5/a3iologisi%20genika.pdf?sequence=1是动态生成的,具体取决于用户点击哪个pdf来查看。

所以,在此基础上: http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter,我想这:

<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> 

但还是这么想的干活认为,这是一个url-pattern的问题,所以我想变着花样为

/xmlui/bitstream/handle/*/*/*pdf 

/attica.unipi.gr:8080/xmlui/bitstream/handle/*/*/* 

但仍没有运气。 它要么限制访问整个网站,要么什么也不做。

有什么建议吗?

谢谢!

回答

2

您需要阅读Servlet规范,了解构成有效URL模式的内容。简短的版本是,他们要么需要在一个外卡(例如<url-pattern>/foo/bar/*</url-pattern>)结束或一个(<url-pattern>*.jsp</url-pattern>

开始如果你想要做的就是配合一个pdf extexnsion任何文件,那么<url-pattern>*.pdf</url-pattern>是你所需要的。在进行URL模式匹配时,Tomcat(或任何其他Servlet容器)将忽略查询参数。

另外,协议,主机名,端口和上下文路径都不应出现在URL模式中。

+0

感谢您的回复。我也尝试了扩展模式 * .pdf但仍然没有发生任何事情.. –