|
16 | 16 |
|
17 | 17 | package de.codecentric.boot.admin; |
18 | 18 |
|
| 19 | +import java.net.URI; |
| 20 | + |
19 | 21 | import org.springframework.boot.SpringApplication; |
20 | 22 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration; |
21 | 23 | import org.springframework.context.annotation.Bean; |
|
24 | 26 | import org.springframework.security.config.Customizer; |
25 | 27 | import org.springframework.security.config.web.server.ServerHttpSecurity; |
26 | 28 | import org.springframework.security.web.server.SecurityWebFilterChain; |
| 29 | +import org.springframework.security.web.server.authentication.logout.RedirectServerLogoutSuccessHandler; |
| 30 | +import org.springframework.security.web.server.authentication.logout.ServerLogoutSuccessHandler; |
27 | 31 |
|
28 | 32 | import de.codecentric.boot.admin.server.config.AdminServerProperties; |
29 | 33 | import de.codecentric.boot.admin.server.config.EnableAdminServer; |
@@ -61,10 +65,18 @@ public SecurityWebFilterChain securityWebFilterChainSecure(ServerHttpSecurity ht |
61 | 65 | .pathMatchers("/actuator/health/**").permitAll().pathMatchers(this.adminServer.path("/login")) |
62 | 66 | .permitAll().anyExchange().authenticated()) |
63 | 67 | .formLogin((formLogin) -> formLogin.loginPage(this.adminServer.path("/login"))) |
64 | | - .logout((logout) -> logout.logoutUrl(this.adminServer.path("/logout"))) |
| 68 | + .logout((logout) -> logout |
| 69 | + .logoutUrl(this.adminServer.path("/logout")) |
| 70 | + .logoutSuccessHandler(logoutSuccessHandler(this.adminServer.path("/login?logout")))) |
65 | 71 | .httpBasic(Customizer.withDefaults()).csrf(ServerHttpSecurity.CsrfSpec::disable).build(); |
66 | 72 | } |
67 | 73 |
|
| 74 | + public ServerLogoutSuccessHandler logoutSuccessHandler(String uri) { |
| 75 | + RedirectServerLogoutSuccessHandler successHandler = new RedirectServerLogoutSuccessHandler(); |
| 76 | + successHandler.setLogoutSuccessUrl(URI.create(uri)); |
| 77 | + return successHandler; |
| 78 | + } |
| 79 | + |
68 | 80 | @Bean |
69 | 81 | public LoggingNotifier loggerNotifier(InstanceRepository repository) { |
70 | 82 | return new LoggingNotifier(repository); |
|
0 commit comments