web.xml - Java Servlet Filtros e WebSphere - questões padrão de URL
-
18-09-2019 - |
Pergunta
Por isso, estamos executando uma aplicação web que tem sido testado em Tomcat, Glassfish, WebLogic e WebSphere. Todos funcionar corretamente exceto WebSphere. A questão é que os filtros não são processados ??para arquivos em um determinado diretório.
Por exemplo, eu tenho um filtro que verifica lanuage do usuário a partir de cookies do navegador e outra que começa o nome do usuário, no web.xml não estão configurados assim:
<!-- ****************************** -->
<!-- * 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>
Ambos os filtros definir uma variável ThreadLocal estática que pode ser acessado a partir de um getter estático, mas quando o mesmo arquivo 'test.jsp' Chama o getters, sob ' contextroot / js' eles retornam o padrão valores (como se não definir), enquanto sob ' contextroot / pages' eles estão corretos.
Todas as idéias?
Agradecemos antecipadamente.
Solução
Eu descobri qual era o problema!
Na minha web.xml mais abaixo eu tenho este:
<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>
Se eu mudar o padrão de URL para '/ *' para que cada página sob a raiz de contexto requer um login, todos os filtros estão correctamente executado, o tempo todo. Isso significa, porém, que a minha página de login não tem acesso a quaisquer arquivos CSS, mas isso é outro problema!
Saúde.
Outras dicas
Definindo a página de login como a forma-login-page poderia ajudar ele conseguir recursos css
do seguinte modo
<form-login-config>
<form-login-page>/Login.jsp</form-login-page>