Spring Security – nie wracaj na stronę po logowaniu

Posted on Posted in Spring

Praktycznie w każdej aplikacji zdarzają się strony na które nie chcemy żeby użytkownik mógł wrócić jeśli np wygaśnie mu sesja. Pojawia się tu pewien problem ponieważ domyślnie spring zapamiętuje adres na który użytkownik chciał wejść i po poprawnym zalogowaniu jest on przekierowywany z powrotem na stronę którą próbował odwiedzić ostatnio. Można oczywiście wyłączyć całą funkcjonalność, ale zazwyczaj nie jest to rozwiązanie optymalne.

Modyfikacja mechanizmu zapamiętywania

Jest bardzo prosty sposób na zmodyfikowanie mechanizmu odpowiedzialnego za zapamiętywanie requestów tak żeby odpowiadał on naszym potrzebom. Wystarczy nadpisać domyślny mechanizm.

W tym przypadku pomijamy requesty AJAX oraz adresy url występujące na liście ignorowanych.

Konfiguracja spring

Pozostaje jeszcze skonfigurować spring security i podmienić oryginalny mechanizm na nasz zmodyfikowany. W tym celu potrzebna jest tak naprawdę tylko jedna linijka, reszta przedstawionego kodu jest tylko standardowym fragmentem konfiguracji spring security.

W ten sposób wymuszamy użycie naszej implementacji obiektu RequestCache, dzięki czemu możemy wykluczyć określone adresy z listy zapamiętywanych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *