因此,我们正在运行已在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>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top