|
|
|
@ -67,7 +67,7 @@ public final class OidcClientInitiatedLogoutSuccessHandler extends SimpleUrlLogo |
|
|
|
URI endSessionEndpoint = this.endSessionEndpoint(clientRegistration); |
|
|
|
URI endSessionEndpoint = this.endSessionEndpoint(clientRegistration); |
|
|
|
if (endSessionEndpoint != null) { |
|
|
|
if (endSessionEndpoint != null) { |
|
|
|
String idToken = idToken(authentication); |
|
|
|
String idToken = idToken(authentication); |
|
|
|
URI postLogoutRedirectUri = postLogoutRedirectUri(request); |
|
|
|
String postLogoutRedirectUri = postLogoutRedirectUri(request); |
|
|
|
targetUrl = endpointUri(endSessionEndpoint, idToken, postLogoutRedirectUri); |
|
|
|
targetUrl = endpointUri(endSessionEndpoint, idToken, postLogoutRedirectUri); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -89,7 +89,7 @@ public final class OidcClientInitiatedLogoutSuccessHandler extends SimpleUrlLogo |
|
|
|
return ((OidcUser) authentication.getPrincipal()).getIdToken().getTokenValue(); |
|
|
|
return ((OidcUser) authentication.getPrincipal()).getIdToken().getTokenValue(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private URI postLogoutRedirectUri(HttpServletRequest request) { |
|
|
|
private String postLogoutRedirectUri(HttpServletRequest request) { |
|
|
|
if (this.postLogoutRedirectUri == null) { |
|
|
|
if (this.postLogoutRedirectUri == null) { |
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -100,13 +100,13 @@ public final class OidcClientInitiatedLogoutSuccessHandler extends SimpleUrlLogo |
|
|
|
.replaceQuery(null) |
|
|
|
.replaceQuery(null) |
|
|
|
.fragment(null) |
|
|
|
.fragment(null) |
|
|
|
.build(); |
|
|
|
.build(); |
|
|
|
return URI.create (UriComponentsBuilder.fromUriString(this.postLogoutRedirectUri) |
|
|
|
return UriComponentsBuilder.fromUriString(this.postLogoutRedirectUri) |
|
|
|
.buildAndExpand(Collections.singletonMap("baseUrl", uriComponents.toUriString())) |
|
|
|
.buildAndExpand(Collections.singletonMap("baseUrl", uriComponents.toUriString())) |
|
|
|
.toUriString()); |
|
|
|
.toUriString(); |
|
|
|
// @formatter:on
|
|
|
|
// @formatter:on
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String endpointUri(URI endSessionEndpoint, String idToken, URI postLogoutRedirectUri) { |
|
|
|
private String endpointUri(URI endSessionEndpoint, String idToken, String postLogoutRedirectUri) { |
|
|
|
UriComponentsBuilder builder = UriComponentsBuilder.fromUri(endSessionEndpoint); |
|
|
|
UriComponentsBuilder builder = UriComponentsBuilder.fromUri(endSessionEndpoint); |
|
|
|
builder.queryParam("id_token_hint", idToken); |
|
|
|
builder.queryParam("id_token_hint", idToken); |
|
|
|
if (postLogoutRedirectUri != null) { |
|
|
|
if (postLogoutRedirectUri != null) { |
|
|
|
|