Domanda

Quindi, ci sono in esecuzione un'applicazione web che è stato testato su Tomcat, Glassfish, WebLogic e WebSphere. Tutti gestita correttamente, tranne WebSphere. Il problema è che i filtri non vengono elaborati per i file in una determinata directory.

Per esempio io ho un filtro che controlla lanuage dell'utente dal cookie del browser e un altro che ottenere il nome utente dell'utente, nel web.xml ci sono configurati in questo modo:

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

Entrambi i filtri impostare una variabile ThreadLocal statica a cui si accede da un getter statico, ma quando lo stesso file 'test.jsp' invoca i getter, in ' contextroot / js' ritornano il default valori (come se non impostato), mentre sotto ' contextroot / pagine' che siano corrette.

Tutte le idee?

Grazie in anticipo.

È stato utile?

Soluzione

ho scoperto quale fosse il problema!

Nel mio web.xml, più in basso ho questo:

    <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 cambio il pattern URL '/ *' in modo che ogni pagina sotto la root del contesto richiede un account di accesso, tutti i filtri sono eseguiti correttamente, per tutto il tempo. Ciò significa, tuttavia, che la mia pagina di login non ha accesso a qualsiasi file css ma questo è un altro problema!

Saluti.

Altri suggerimenti

Definizione della pagina di login come la forma-login-page potrebbe farne a ottenere risorse CSS come segue <form-login-config> <form-login-page>/Login.jsp</form-login-page>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top