web.xml中 - Java Servlet的过滤器和WebSphere - URL模式问题
-
18-09-2019 - |
题
因此,我们正在运行已在Tomcat,Glassfish的,则WebLogic和WebSphere测试Web应用程序。除了所有的WebSphere正常运行。的问题是,过滤器不能在档案某个目录下进行处理。
例如我有一个过滤器,从浏览器cookie和另一个获取用户的用户名检查用户的lanuage,在web.xml有被配置像这样:
<!-- ****************************** -->
<!-- * Security context filtering * -->
<!-- ****************************** -->
<filter>
<filter-name>SetSecurityContextFilter</filter-name>
<filter-class>
com.test.security.SecurityContextServletFilter
</filter-class>
</filter>
<!-- ****************************** -->
<!-- ** Locale context filtering ** -->
<!-- ****************************** -->
<filter>
<filter-name>SetLocaleFilter</filter-name>
<filter-class>
com.test.locale.LocaleServletFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>SetSecurityContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetLocaleFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
两个滤波器设置可以从静态吸气剂被访问的静态ThreadLocal变量,但是当相同的文件“test.jsp的”调用吸气剂,在“上下文根 / JS”它们返回的默认值(如,如果取消设置),而下 '上下文根 /网页',它们是正确的。
任何想法?
预先感谢。
解决方案
我发现什么问题了!
在我的web.xml进一步向下我有这样的:
<security-constraint>
<web-resource-collection>
<web-resource-name>Test Application</web-resource-name>
<url-pattern>/pages/*</url-pattern>
</web-resource-collection>
<auth-constraint>
...
</auth-constraint>
</security-constraint>
如果我更改URL模式“/ *”,使得上下文根下的每个页面需要登录,所有过滤器正常运行中,所有的时间。该然而意味着我的登录页面没有访问任何CSS文件但这是另一个问题!
干杯。
其他提示
定义你的登录页面的表单登录页面可能会帮助它获得CSS资源
如下
<form-login-config>
<form-login-page>/Login.jsp</form-login-page>
不隶属于 StackOverflow