Reputation: 1680
I use Spring Authorization Server 1.4.0 with React Client. By default I have end_session_endpoint param set to "end_session_endpoint":"http://host/connect/logout"
in http://host/.well-known/openid-configuration
I need to set it to "end_session_endpoint":"http://host/logout"
.
I tried to add into SecurityFilterChain:
.logout(logout -> logout
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.addLogoutHandler(new SecurityContextLogoutHandler())
.logoutSuccessUrl("/")
);
But it's not working. Do you know what is the proper way to override this param?
Upvotes: 0
Views: 82
Reputation: 6954
In my previous project I configured in this way (I put only the main code)
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public SecurityFilterChain authorizationServerSecurityFilterChain(
HttpSecurity http, OAuthAuthorizationService authorizationService) throws Exception {
OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
http.getConfigurer(OAuth2AuthorizationServerConfigurer.class)
.oidc(
oidc ->
oidc.providerConfigurationEndpoint(
providerConfigurationEndpoint ->
providerConfigurationEndpoint.providerConfigurationCustomizer(
providerConfigurationCustomizer -> {
AuthorizationServerContext authorizationServerContext =
AuthorizationServerContextHolder.getContext();
String issuer = authorizationServerContext.getIssuer();
providerConfigurationCustomizer.claim(
"backchannel_logout_session_supported", "true");
providerConfigurationCustomizer.claim(
"end_session_endpoint",
UriComponentsBuilder.fromUriString(issuer)
.path("/logout")
.build()
.toUriString());
/*providerConfigurationCustomizer.claim(
"check_session_iframe",
UriComponentsBuilder.fromUriString(issuer)
.path("/checksession/check")
.build()
.toUriString());*/
List<String> scopes = new ArrayList<>();
scopes.add("openid");
scopes.add("address");
scopes.add("phone");
scopes.add("profile");
scopes.add("email");
providerConfigurationCustomizer.claim("scopes_supported", scopes);
})))
.authorizationService(authorizationService)
Upvotes: 1