我在我的JSF应用程序中使用了一个Servlet过滤器。 我的应用程序有三组Web页面,我想在我的Servlet过滤器中检查这些页面的身份验证:
我的文件夹
/Admin/ *.xhtml
/Supervisor/*.xhtml
/Employee/*.xhtml
我正在编写web.xml
文件,内容如下:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ems.admin.servlet.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Employee/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Supervisor/*</url-pattern>
</filter-mapping>
但是类似于请求
http://localhost:8080/EMS2/faces/Html/Admin/Upload.xhtml
未进入筛选器。
我需要为这三个文件夹提供安全保障。
如何解决这个问题?
<url-pattern>
元素的支持是在Servlet 2.5中引入的(Java EE 5的一部分,发布了近7年)。也许你正在处理一只史前巨兽,或者你有严重的配置问题,导致你的容器以回退模式运行,匹配Servlet 2.4或更早版本,从而失去所有Servlet 2.5的功能。 - BalusC<filter-mapping>
匹配相同的资源,例如一个使用/*
,另一个使用/foo.xhtml
作为url-pattern
,则会执行相同的过滤器两次。我在JBoss AS 7.1上遇到了这种行为。 - Sebastian Hoffmann