Skip to content

Commit d8913e8

Browse files
authored
Redirect to correct context on logout in Reactive security example (#2064)
1 parent 568d102 commit d8913e8

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplication.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package de.codecentric.boot.admin;
1818

19+
import java.net.URI;
20+
1921
import org.springframework.boot.SpringApplication;
2022
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2123
import org.springframework.context.annotation.Bean;
@@ -24,6 +26,8 @@
2426
import org.springframework.security.config.Customizer;
2527
import org.springframework.security.config.web.server.ServerHttpSecurity;
2628
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;
2731

2832
import de.codecentric.boot.admin.server.config.AdminServerProperties;
2933
import de.codecentric.boot.admin.server.config.EnableAdminServer;
@@ -61,10 +65,18 @@ public SecurityWebFilterChain securityWebFilterChainSecure(ServerHttpSecurity ht
6165
.pathMatchers("/actuator/health/**").permitAll().pathMatchers(this.adminServer.path("/login"))
6266
.permitAll().anyExchange().authenticated())
6367
.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"))))
6571
.httpBasic(Customizer.withDefaults()).csrf(ServerHttpSecurity.CsrfSpec::disable).build();
6672
}
6773

74+
public ServerLogoutSuccessHandler logoutSuccessHandler(String uri) {
75+
RedirectServerLogoutSuccessHandler successHandler = new RedirectServerLogoutSuccessHandler();
76+
successHandler.setLogoutSuccessUrl(URI.create(uri));
77+
return successHandler;
78+
}
79+
6880
@Bean
6981
public LoggingNotifier loggerNotifier(InstanceRepository repository) {
7082
return new LoggingNotifier(repository);

0 commit comments

Comments
 (0)