我在我的环境中的某个位置有一个html文件,我需要限制从所有用户访问。所以我只是想添加一个过滤器并限制html页面或将其重定向到另一个页面。这是我正在使用的代码,
<filter>
<filter-name>PageCheckFilter</filter-name>
<filter-class>com.src.filter.PageCheckFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PageCheckFilter</filter-name>
<url-pattern>/app?asset=test&path=/xyz-0.1.2/page.html</url-pattern>
</filter-mapping>
我尝试过很多网址模式来匹配这个网址,但都是徒劳的。请建议我,以便限制此页面访问。
答案 0 :(得分:1)
您不能在过滤器映射中包含查询参数!根据{{3}},用于映射的URL路径是请求URL减去上下文路径和参数(请参阅第12.1节 - 使用或URL路径)。因此,在将映射到您的模式之前,会从URL中删除查询字符串。
即使您的映射中可能有查询字符串,它也只能在查询参数未重新排序时才有效(例如/app?path=/xyz-0.1.2/page.html&asset=test
)。
相反,您应该将过滤器映射到/app
的所有请求,并自行分析过滤器中的查询参数!
答案 1 :(得分:0)
你正在做的事情不是正确的实现方式。
你可以做些什么来编写一个过滤器,用于对正确认证的页面进行服务。编写身份验证过滤器并将您的所有请求映射到该过滤器。
当且仅当有效用户/客户端请求特定页面时,过滤器才会转发请求。
例如:在会话中检查已登录的用户。
查看过滤器标签信息,您可以找到一个以过滤器开头的好例子。