logout.adoc 976 B

12345678910111213141516171819202122232425262728
  1. [[reactive-logout]]
  2. = Logout
  3. Spring Security provides a logout endpoint by default.
  4. Once logged in, you can `GET /logout` to see a default logout confirmation page, or you can `POST /logout` to initiate logout.
  5. This will:
  6. - clear the `ServerCsrfTokenRepository`, `ServerSecurityContextRepository`, and
  7. - redirect back to the login page
  8. Often, you will want to also invalidate the session on logout.
  9. To achieve this, you can add the `WebSessionServerLogoutHandler` to your logout configuration, like so:
  10. [source,java]
  11. ----
  12. @Bean
  13. SecurityWebFilterChain http(ServerHttpSecurity http) throws Exception {
  14. DelegatingServerLogoutHandler logoutHandler = new DelegatingServerLogoutHandler(
  15. new WebSessionServerLogoutHandler(), new SecurityContextServerLogoutHandler()
  16. );
  17. http
  18. .authorizeExchange((exchange) -> exchange.anyExchange().authenticated())
  19. .logout((logout) -> logout.logoutHandler(logoutHandler));
  20. return http.build();
  21. }
  22. ----