Pregunta

Así que estamos ejecutando una aplicación web que ha sido probado en Tomcat, Glassfish, WebLogic y WebSphere. Todo funcionar correctamente a excepción de WebSphere. La cuestión es que los filtros no se procesan para archivos bajo un directorio determinado.

Por ejemplo, tengo un filtro que comprueba lanuage del usuario de las cookies del navegador y otra que reciben el nombre de usuario, en el web.xml no están configurados de esta manera:

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

Los dos filtros de establecer una variable ThreadLocal estática que se puede acceder desde un captador estática, pero cuando el mismo archivo 'test.jsp' invoca a los captadores, bajo ' contextroot / js' regresan el valor por defecto los valores (como si se ha establecido), mientras que bajo ' contextroot / páginas' que son correctos.

¿Alguna idea?

Gracias de antemano.

¿Fue útil?

Solución

He descubierto cuál era el problema!

En mi web.xml más abajo tengo esto:

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

Si cambio el patrón de URL a '/ *' para que cada página, debajo de la raíz de contexto requiere un inicio de sesión, todos los filtros se ejecutan correctamente, todo el tiempo. Esto significa sin embargo que mi página de inicio de sesión no tiene acceso a los archivos CSS, pero eso es otro problema!

Saludos.

Otros consejos

La definición de su página de inicio de sesión como la forma-página de acceso podría ayudar a que entre los recursos css como sigue <form-login-config> <form-login-page>/Login.jsp</form-login-page>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top