Hej.
Bawię się teraz security i buduję proste API RESTowe. Flow, redirecty itp. obsługiwane jest na froncie z jQuery i Ajaxem i jest w duchu SPA. Co ważne odnośnie pytania to nie używam JSP, a wysyłam html'a jednego i tam generowane jest wszystko co trza, jak to single page. Robię to na potrzeby przetestowania ochrony restowych endpointów względem ról user/admin, ochrony przed csrf i pracy z sesją. Id sesji jest przechowywane w cookiesie.

Obecnie wdrażam Tokeny CSRF, które przekazywane są ajaxem w nagłówkach, a potem umieszczane będą w metatagi na stronie. Tworze je przy użyciu Springowego Security. Nie wiem do końca jednak co się dzieje pod spodem z sesją, co uniemożliwia mi zaimplementowanie tych tokenów ze zrozumieniem, bo przechowywane są w sesji i są z nią powiązane. Wiem, że w JSP już pierwszy call po widok wywołuje getSession. Alee.... Jak to jest w przypadku kiedy sam wysyłam stronę i automatycznie następuje redirect (ajaxem u klienta) do strony logowania jeśli użytkownik nie jest zautentykowany.
Czy Spring Security z pierwszym Getem tworzy sesje wysyła ja w cookiesie, następnie przekierowuje na stronę logowania, a potem po zalogowaniu usuwa sesje, tworzy nową i wtedy tworzony jest Token Crsf ? Czy odbywa się to w innej kolejności? Próbuję podejrzeć to na przykładowej apce, ale security dopóki się nie zaloguje wszystko blokuje i jestem zdezorientowany czy tego nie wysyła czy po prostu nie pozwala podejrzeć.

EDIT: Nie mylę się, że token jest generowany podwójnie? Pierwszy get serwer odpowiad jsessionid + token ----> logowanie ----> nowe jsessionid + nowy token(dopóki sesja usera nie wygaśnie) ?