In meiner vorherigen Anstellung hatte ich das bekannte Problem, dass es mir nicht gelang, den Benutzer davon abzuhalten, nach dem Ausloggen die Seite mithilfe der Zurück-Taste zu navigieren. Meine Technologien umfassen Spring, JavaScript und potenziell das Mobile-Modul der Java AJAX-Bibliothek ZK. Abgesehen vom Navigieren mithilfe der Zurück-Taste funktionierte der autorisierte Zugriff ansonsten einwandfrei. Ich habe keinen Zugriff mehr auf den Anwendungscode. Die Anwendung war eine mobile Anwendung, deren ursprünglicher Autor ich nicht war.
Ich habe die folgenden gängigen Lösungen ausprobiert:
- Habe versucht, einen
WebContentInterceptor
hinzuzufügen (wie hier beschrieben) - Habe meinen eigenen Filter definiert, indem ich eine Kombination aus dieser Filterfrage und dieser Antwort zum Einfügen zusätzlicher Filter verwendet habe. Der Filtercode wird während des Debuggens nicht ausgeführt
- Habe
RequestMappingHandlerAdapter
hinzugefügt, umcacheSeconds
auf 0 zu setzen
In t2-spring-security-context.xml
haben wir folgende Definition:
Weitere Details zu unserer Implementierung:
- Java-Methoden werden mithilfe von
@RequestMapping
von JavaScript auf einer als@Controller
markierten Klasse aufgerufen (z.B. t2-metrics.jsp hat JS zum Feuern auf eine URL, die dem Request-Mapping entspricht) - Habe versucht,
security:global-method-security
zum Anwendungskontext hinzuzufügen und Rollenannotation zur Methode - Habe Skriptcode hinzugefügt, um das Caching auf den JSP-Seiten zu deaktivieren, was jedoch nichts bewirkte. Habe auch die Anwendung im Debug-Modus in IntelliJ gestartet und ein Debug-Punkt innerhalb meines Filter wird nicht erreicht.
- Sobald sie die Zurück-Taste benutzt haben, um in die Anwendung zurückzukehren, kann der Benutzer immer noch in der Anwendung navigieren.
Meine einzige verbleibende Idee war, dass das Problem möglicherweise in unserem Client-Code (JavaScript) oder in den Bibliotheken (Falsche Integration mit Spring Security) liegt, denn anhand des Debugs scheint die Spring Security Filterkette nicht erreicht zu werden.