From 813921ed0b8e163353e2726d9e172f1cd5c07063 Mon Sep 17 00:00:00 2001 From: Dmitriy Dubson Date: Mon, 17 Apr 2023 15:23:09 -0400 Subject: [PATCH] Add logout success page to default client sample Sample client (located in 'samples/messages-client' directory) is configured with a custom logout success page where the end-user is redirected to upon successful logout action. Fixes gh-1142 --- .../config/AuthorizationServerConfig.java | 2 +- .../config/AuthorizationServerConfig.java | 3 ++- .../config/AuthorizationServerConfig.java | 2 +- .../java/sample/config/SecurityConfig.java | 7 ++++-- .../java/sample/web/DefaultController.java | 9 +++++++- .../main/resources/templates/logged-out.html | 22 +++++++++++++++++++ 6 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 samples/messages-client/src/main/resources/templates/logged-out.html diff --git a/samples/custom-consent-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java b/samples/custom-consent-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java index c22151d2..85b177b1 100644 --- a/samples/custom-consent-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java +++ b/samples/custom-consent-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java @@ -94,7 +94,7 @@ public class AuthorizationServerConfig { .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc") .redirectUri("http://127.0.0.1:8080/authorized") - .postLogoutRedirectUri("http://127.0.0.1:8080/index") + .postLogoutRedirectUri("http://127.0.0.1:8080/logged-out") .scope(OidcScopes.OPENID) .scope(OidcScopes.PROFILE) .scope("message.read") diff --git a/samples/default-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java b/samples/default-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java index 9abaa8e7..ad6bdb27 100644 --- a/samples/default-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java +++ b/samples/default-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java @@ -54,6 +54,7 @@ import org.springframework.security.web.authentication.LoginUrlAuthenticationEnt /** * @author Joe Grandja + * @author Dmitriy Dubson * @since 0.0.1 */ @Configuration(proxyBeanMethods = false) @@ -88,7 +89,7 @@ public class AuthorizationServerConfig { .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc") .redirectUri("http://127.0.0.1:8080/authorized") - .postLogoutRedirectUri("http://127.0.0.1:8080/index") + .postLogoutRedirectUri("http://127.0.0.1:8080/logged-out") .scope(OidcScopes.OPENID) .scope(OidcScopes.PROFILE) .scope("message.read") diff --git a/samples/federated-identity-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java b/samples/federated-identity-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java index 2dd895ed..cdc1bfa1 100644 --- a/samples/federated-identity-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java +++ b/samples/federated-identity-authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java @@ -90,7 +90,7 @@ public class AuthorizationServerConfig { .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc") .redirectUri("http://127.0.0.1:8080/authorized") - .postLogoutRedirectUri("http://127.0.0.1:8080/index") + .postLogoutRedirectUri("http://127.0.0.1:8080/logged-out") .scope(OidcScopes.OPENID) .scope(OidcScopes.PROFILE) .scope("message.read") diff --git a/samples/messages-client/src/main/java/sample/config/SecurityConfig.java b/samples/messages-client/src/main/java/sample/config/SecurityConfig.java index 29ec525f..7ab8a457 100644 --- a/samples/messages-client/src/main/java/sample/config/SecurityConfig.java +++ b/samples/messages-client/src/main/java/sample/config/SecurityConfig.java @@ -30,6 +30,7 @@ import static org.springframework.security.config.Customizer.withDefaults; /** * @author Joe Grandja + * @author Dmitriy Dubson * @since 0.0.1 */ @EnableWebSecurity @@ -49,7 +50,9 @@ public class SecurityConfig { SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(authorize -> - authorize.anyRequest().authenticated() + authorize + .requestMatchers("/logged-out").permitAll() + .anyRequest().authenticated() ) .oauth2Login(oauth2Login -> oauth2Login.loginPage("/oauth2/authorization/messaging-client-oidc")) @@ -66,7 +69,7 @@ public class SecurityConfig { // Set the location that the End-User's User Agent will be redirected to // after the logout has been performed at the Provider - oidcLogoutSuccessHandler.setPostLogoutRedirectUri("{baseUrl}/index"); + oidcLogoutSuccessHandler.setPostLogoutRedirectUri("{baseUrl}/logged-out"); return oidcLogoutSuccessHandler; } diff --git a/samples/messages-client/src/main/java/sample/web/DefaultController.java b/samples/messages-client/src/main/java/sample/web/DefaultController.java index 5661a75d..88e242a7 100644 --- a/samples/messages-client/src/main/java/sample/web/DefaultController.java +++ b/samples/messages-client/src/main/java/sample/web/DefaultController.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.GetMapping; /** * @author Joe Grandja + * @author Dmitriy Dubson * @since 0.0.1 */ @Controller @@ -34,4 +35,10 @@ public class DefaultController { public String index() { return "index"; } + + @GetMapping("/logged-out") + public String loggedOut() { + return "logged-out"; + } + } diff --git a/samples/messages-client/src/main/resources/templates/logged-out.html b/samples/messages-client/src/main/resources/templates/logged-out.html new file mode 100644 index 00000000..3c8ec0a5 --- /dev/null +++ b/samples/messages-client/src/main/resources/templates/logged-out.html @@ -0,0 +1,22 @@ + + + + Spring Security OAuth 2.0 Sample + + + + + + +
+ +
+
+

You are now logged out.

+ Go back home +
+ + + +