Frage

So sind wir eine Web-Anwendung ausgeführt wird, die auf Tomcat, Glassfish, WebLogic und WebSphere getestet wurde. Alle laufen richtig außer WebSphere. Das Problem ist, dass die Filter sind nicht für Dateien in einem bestimmten Verzeichnis verarbeitet werden.

Zum Beispiel hat ich einen Filter, den die Benutzer lanuage von Browser-Cookies und andere überprüft, die die Benutzername des Benutzer zu erhalten, in dem web.xml dort sind so konfiguriert, etwa so:

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

Beiden Filter einen statischen Thread Variable, die von einem statischen Getter zugegriffen werden können, aber wenn die gleiche Datei ‚test.jsp‘ die Getter aufruft, unter ‚ ContextRoot / js‘ kehren sie den Standard Werte (als ob nicht gesetzt), während unter ' ContextRoot / pages' sie korrekt sind.

Irgendwelche Ideen?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich habe entdeckt, was das Problem war!

In meinem web.xml weiter unten Ich habe diese:

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

Wenn ich die URL-Muster ändern, um ‚/ *‘, so dass jede Seite im Kontext root eine Anmeldung erforderlich ist, werden alle Filter ordnungsgemäß ausgeführt, die ganzen Zeit. Dies schließt jedoch bedeutet, dass meine Login-Seite hat keinen Zugriff auf CSS-Dateien, aber das ist ein anderes Problem!

Prost.

Andere Tipps

Definieren der Login-Seite als Formular-Login-Seite könnte helfen, es CSS Ressourcen zu erhalten wie folgt <form-login-config> <form-login-page>/Login.jsp</form-login-page>

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top