From c1948fddd83b3693362845e43414637ce2bfa0e4 Mon Sep 17 00:00:00 2001 From: Gerardo Roza Date: Thu, 19 Dec 2019 14:58:09 -0300 Subject: [PATCH 1/2] Added changes for improvement/ refactor of the code using the new spring-security stack --- .../spring-security-openid/README.md | 7 +- .../spring-security-openid/pom.xml | 34 +----- .../SpringOidcDiscoveryApplication.java | 20 ++++ .../web/controllers/UserRestController.java | 17 +++ .../login/SpringOidcLoginApplication.java | 20 ++++ .../config/OAuth2LoginSecurityConfig.java | 28 +++++ .../oidc/login/service/UserService.java | 23 ++++ .../web/controllers/UserRestController.java | 32 ++++++ ...pringOidcSessionManagementApplication.java | 20 ++++ ...OAuth2SessionManagementSecurityConfig.java | 37 +++++++ .../web/controllers/HomeRestController.java | 14 +++ .../web/controllers/UserRestController.java | 17 +++ .../oidc/utils/YamlLoaderInitializer.java | 48 ++++++++ .../config/GoogleOpenIdConnectConfig.java | 51 --------- .../org/baeldung/config/HomeController.java | 22 ---- .../org/baeldung/config/SecurityConfig.java | 49 --------- .../config/SpringOpenidApplication.java | 14 --- .../security/OpenIdConnectFilter.java | 103 ------------------ .../security/OpenIdConnectUserDetails.java | 81 -------------- .../src/main/resources/application.properties | 8 -- .../src/main/resources/application.yml | 7 ++ .../main/resources/discovery-application.yml | 11 ++ .../src/main/resources/logback.xml | 13 --- .../src/main/resources/login-application.yml | 8 ++ .../sessionmanagement-application.yml | 16 +++ .../oidc/discovery/SpringContextTest.java | 19 ++++ .../openid/oidc/login/SpringContextTest.java | 16 +++ .../sessionmanagement/SpringContextTest.java | 19 ++++ .../java/org/baeldung/SpringContextTest.java | 16 --- 29 files changed, 380 insertions(+), 390 deletions(-) create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java create mode 100644 spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/GoogleOpenIdConnectConfig.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/HomeController.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SecurityConfig.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SpringOpenidApplication.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectFilter.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectUserDetails.java delete mode 100644 spring-security-modules/spring-security-openid/src/main/resources/application.properties create mode 100644 spring-security-modules/spring-security-openid/src/main/resources/application.yml create mode 100644 spring-security-modules/spring-security-openid/src/main/resources/discovery-application.yml delete mode 100644 spring-security-modules/spring-security-openid/src/main/resources/logback.xml create mode 100644 spring-security-modules/spring-security-openid/src/main/resources/login-application.yml create mode 100644 spring-security-modules/spring-security-openid/src/main/resources/sessionmanagement-application.yml create mode 100644 spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java create mode 100644 spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java create mode 100644 spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java delete mode 100644 spring-security-modules/spring-security-openid/src/test/java/org/baeldung/SpringContextTest.java diff --git a/spring-security-modules/spring-security-openid/README.md b/spring-security-modules/spring-security-openid/README.md index 1f856fe191..92ba60cad9 100644 --- a/spring-security-modules/spring-security-openid/README.md +++ b/spring-security-modules/spring-security-openid/README.md @@ -16,9 +16,8 @@ mvn spring-boot:run ### Obtain Google App - Client ID, Secret -- You need to get client id and client secret by creating a new project at [Google Developer Console](https://console.developers.google.com/project/_/apiui/credential?pli=1) -- Make sure to add OAuth2 credentials by selecting Add credentials > OAuth 2.0 client ID -- Make sure you set redirect URI to http://localhost:8081/google-login +- We need to get client id and client secret by creating a new project at [Google Developer Console](https://console.developers.google.com/project/_/apiui/credential?pli=1) +- We can follow these instructions to register our client application on their platform -- Once you have your client id and secret, make sure you add them to the `application.properties` of the project +- Once we have the client id and secret, we have to make sure we add them to the YAML files of the project diff --git a/spring-security-modules/spring-security-openid/pom.xml b/spring-security-modules/spring-security-openid/pom.xml index 970182dc3b..a8637df865 100644 --- a/spring-security-modules/spring-security-openid/pom.xml +++ b/spring-security-modules/spring-security-openid/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 spring-security-openid spring-security-openid @@ -15,43 +16,18 @@ - - org.springframework.boot - spring-boot-starter-security - org.springframework.boot spring-boot-starter-web - org.springframework.boot - spring-boot-starter-tomcat - - - - org.springframework.security.oauth - spring-security-oauth2 - ${spring-security-oauth2.version} - - - - org.springframework.security - spring-security-jwt - ${spring-security-jwt.version} - - - - com.auth0 - jwks-rsa - ${jwks-rsa.version} + spring-boot-starter-oauth2-client - 2.2.1.RELEASE - 1.0.9.RELEASE - 0.3.0 + 2.2.1.RELEASE diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java new file mode 100644 index 0000000000..895fe676e1 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java @@ -0,0 +1,20 @@ +package com.baeldung.openid.oidc.discovery; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; + +import com.baeldung.openid.oidc.utils.YamlLoaderInitializer; + +@SpringBootApplication +public class SpringOidcDiscoveryApplication { + + public static void main(String[] args) { + SpringApplication application = new SpringApplication(SpringOidcDiscoveryApplication.class); + ApplicationContextInitializer yamlInitializer = new YamlLoaderInitializer("discovery-application.yml"); + application.addInitializers(yamlInitializer); + application.run(args); + } + +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java new file mode 100644 index 0000000000..984a23fea3 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java @@ -0,0 +1,17 @@ +package com.baeldung.openid.oidc.discovery.web.controllers; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.security.oauth2.core.oidc.user.OidcUser; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/user") +public class UserRestController { + + @GetMapping("/oidc-principal") + public OidcUser getOidcUserPrincipal(@AuthenticationPrincipal OidcUser principal) { + return principal; + } +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java new file mode 100644 index 0000000000..6ec87c4406 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java @@ -0,0 +1,20 @@ +package com.baeldung.openid.oidc.login; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; + +import com.baeldung.openid.oidc.utils.YamlLoaderInitializer; + +@SpringBootApplication +public class SpringOidcLoginApplication { + + public static void main(String[] args) { + SpringApplication application = new SpringApplication(SpringOidcLoginApplication.class); + ApplicationContextInitializer yamlInitializer = new YamlLoaderInitializer("login-application.yml"); + application.addInitializers(yamlInitializer); + application.run(args); + } + +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java new file mode 100644 index 0000000000..5bb5cef58c --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java @@ -0,0 +1,28 @@ +package com.baeldung.openid.oidc.login.config; + +import java.util.HashSet; +import java.util.Set; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserService; + +@Configuration +public class OAuth2LoginSecurityConfig extends WebSecurityConfigurerAdapter {// @formatter:off + + @Override + protected void configure(HttpSecurity http) throws Exception { + Set googleScopes = new HashSet<>(); + googleScopes.add("https://www.googleapis.com/auth/userinfo.email"); + googleScopes.add("https://www.googleapis.com/auth/userinfo.profile"); + + OidcUserService googleUserService = new OidcUserService(); + googleUserService.setAccessibleScopes(googleScopes); + + http.authorizeRequests(authorizeRequests -> authorizeRequests.anyRequest() + .authenticated()) + .oauth2Login(oauthLogin -> oauthLogin.userInfoEndpoint() + .oidcUserService(googleUserService)); + }// @formatter:on +} \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java new file mode 100644 index 0000000000..b6e35bd139 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java @@ -0,0 +1,23 @@ +package com.baeldung.openid.oidc.login.service; + +import java.util.Collections; +import java.util.Map; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.core.oidc.user.OidcUser; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + + public Map getUserClaims() { + Authentication authentication = SecurityContextHolder.getContext() + .getAuthentication(); + if (authentication.getPrincipal() instanceof OidcUser) { + OidcUser principal = ((OidcUser) authentication.getPrincipal()); + return principal.getClaims(); + } + return Collections.emptyMap(); + } +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java new file mode 100644 index 0000000000..a4715c9310 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java @@ -0,0 +1,32 @@ +package com.baeldung.openid.oidc.login.web.controllers; + +import java.util.Map; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.security.oauth2.core.oidc.user.OidcUser; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.baeldung.openid.oidc.login.service.UserService; + +@RestController +@RequestMapping("/user") +public class UserRestController { + + private UserService service; + + public UserRestController(UserService service) { + this.service = service; + } + + @GetMapping("/oidc-principal") + public OidcUser getOidcUserPrincipal(@AuthenticationPrincipal OidcUser principal) { + return principal; + } + + @GetMapping("/oidc-claims") + public Map getClaimsFromBean() { + return service.getUserClaims(); + } +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java new file mode 100644 index 0000000000..700fc7fbe7 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java @@ -0,0 +1,20 @@ +package com.baeldung.openid.oidc.sessionmanagement; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; + +import com.baeldung.openid.oidc.utils.YamlLoaderInitializer; + +@SpringBootApplication +public class SpringOidcSessionManagementApplication { + + public static void main(String[] args) { + SpringApplication application = new SpringApplication(SpringOidcSessionManagementApplication.class); + ApplicationContextInitializer yamlInitializer = new YamlLoaderInitializer("sessionmanagement-application.yml"); + application.addInitializers(yamlInitializer); + application.run(args); + } + +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java new file mode 100644 index 0000000000..5a55c89b05 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java @@ -0,0 +1,37 @@ +package com.baeldung.openid.oidc.sessionmanagement.config; + +import java.net.URI; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.oauth2.client.oidc.web.logout.OidcClientInitiatedLogoutSuccessHandler; +import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; +import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; + +@Configuration +public class OAuth2SessionManagementSecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + private ClientRegistrationRepository clientRegistrationRepository; + + @Override + protected void configure(HttpSecurity http) throws Exception { // @formatter:off + http.authorizeRequests(authorizeRequests -> authorizeRequests.mvcMatchers("/home") + .permitAll() + .anyRequest() + .authenticated()) + .oauth2Login(oauthLogin -> oauthLogin.permitAll()) + .logout(logout -> logout.logoutSuccessHandler(oidcLogoutSuccessHandler())); + } // @formatter:on + + + private LogoutSuccessHandler oidcLogoutSuccessHandler() { + OidcClientInitiatedLogoutSuccessHandler oidcLogoutSuccessHandler = new OidcClientInitiatedLogoutSuccessHandler(this.clientRegistrationRepository); + + oidcLogoutSuccessHandler.setPostLogoutRedirectUri(URI.create("http://localhost:8081/home")); + + return oidcLogoutSuccessHandler; + } +} \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java new file mode 100644 index 0000000000..88becc2456 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java @@ -0,0 +1,14 @@ +package com.baeldung.openid.oidc.sessionmanagement.web.controllers; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HomeRestController { + + @GetMapping("/home") + public String simpleHomepage() { + return "Welcome to this simple homepage!"; + } + +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java new file mode 100644 index 0000000000..256d4bc389 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java @@ -0,0 +1,17 @@ +package com.baeldung.openid.oidc.sessionmanagement.web.controllers; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.security.oauth2.core.oidc.user.OidcUser; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/user") +public class UserRestController { + + @GetMapping("/oidc-principal") + public OidcUser getOidcUserPrincipal(@AuthenticationPrincipal OidcUser principal) { + return principal; + } +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java new file mode 100644 index 0000000000..4d51dcb9a8 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java @@ -0,0 +1,48 @@ +package com.baeldung.openid.oidc.utils; + +import java.io.IOException; + +import org.springframework.boot.env.YamlPropertySourceLoader; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.PropertySource; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; + +public class YamlLoaderInitializer implements ApplicationContextInitializer { + + private final YamlPropertySourceLoader loader = new YamlPropertySourceLoader(); + private final String file; + + public YamlLoaderInitializer() { + this.file = null; + } + + public YamlLoaderInitializer(String file) { + this.file = file; + } + + @Override + public void initialize(ConfigurableApplicationContext applicationContext) { + String yamlFile = (this.file == null) ? applicationContext.getEnvironment() + .getProperty("custom.configyaml.file") : this.file; + Resource path = new ClassPathResource(yamlFile); + PropertySource propertySource = loadYaml(path); + applicationContext.getEnvironment() + .getPropertySources() + .addLast(propertySource); + } + + private PropertySource loadYaml(Resource path) { + if (!path.exists()) { + throw new IllegalArgumentException("Resource " + path + " does not exist"); + } + try { + return this.loader.load("custom-resource", path) + .get(0); + } catch (IOException ex) { + throw new IllegalStateException("Failed to load yaml configuration from" + path, ex); + } + } + +} diff --git a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/GoogleOpenIdConnectConfig.java b/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/GoogleOpenIdConnectConfig.java deleted file mode 100644 index 8e9c6e974e..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/GoogleOpenIdConnectConfig.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.baeldung.config; - -import java.util.Arrays; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.oauth2.client.OAuth2ClientContext; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails; -import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableOAuth2Client; - -@Configuration -@EnableOAuth2Client -public class GoogleOpenIdConnectConfig { - @Value("${google.clientId}") - private String clientId; - - @Value("${google.clientSecret}") - private String clientSecret; - - @Value("${google.accessTokenUri}") - private String accessTokenUri; - - @Value("${google.userAuthorizationUri}") - private String userAuthorizationUri; - - @Value("${google.redirectUri}") - private String redirectUri; - - @Bean - public OAuth2ProtectedResourceDetails googleOpenId() { - final AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails(); - details.setClientId(clientId); - details.setClientSecret(clientSecret); - details.setAccessTokenUri(accessTokenUri); - details.setUserAuthorizationUri(userAuthorizationUri); - details.setScope(Arrays.asList("openid", "email")); - details.setPreEstablishedRedirectUri(redirectUri); - details.setUseCurrentUri(false); - return details; - } - - @Bean - public OAuth2RestTemplate googleOpenIdTemplate(final OAuth2ClientContext clientContext) { - final OAuth2RestTemplate template = new OAuth2RestTemplate(googleOpenId(), clientContext); - return template; - } - -} diff --git a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/HomeController.java b/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/HomeController.java deleted file mode 100644 index f0a5378019..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/HomeController.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.baeldung.config; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class HomeController { - private final Logger logger = LoggerFactory.getLogger(getClass()); - - @RequestMapping("/") - @ResponseBody - public final String home() { - final String username = SecurityContextHolder.getContext().getAuthentication().getName(); - logger.info(username); - return "Welcome, " + username; - } - -} diff --git a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SecurityConfig.java b/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SecurityConfig.java deleted file mode 100644 index d929bfd631..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SecurityConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.baeldung.config; - -import org.baeldung.security.OpenIdConnectFilter; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.client.filter.OAuth2ClientContextFilter; -import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; -import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter; - -@Configuration -@EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private OAuth2RestTemplate restTemplate; - - @Override - public void configure(WebSecurity web) throws Exception { - web.ignoring().antMatchers("/resources/**"); - } - - @Bean - public OpenIdConnectFilter myFilter() { - final OpenIdConnectFilter filter = new OpenIdConnectFilter("/google-login"); - filter.setRestTemplate(restTemplate); - return filter; - } - - @Override - protected void configure(HttpSecurity http) throws Exception { - // @formatter:off - http - .addFilterAfter(new OAuth2ClientContextFilter(), AbstractPreAuthenticatedProcessingFilter.class) - .addFilterAfter(myFilter(), OAuth2ClientContextFilter.class) - .httpBasic().authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/google-login")) - .and() - .authorizeRequests() - // .antMatchers("/","/index*").permitAll() - .anyRequest().authenticated() - ; - - // @formatter:on - } -} \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SpringOpenidApplication.java b/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SpringOpenidApplication.java deleted file mode 100644 index 1acdba0623..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/config/SpringOpenidApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.baeldung.config; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; - -@SpringBootApplication -public class SpringOpenidApplication extends SpringBootServletInitializer { - - public static void main(String[] args) { - SpringApplication.run(SpringOpenidApplication.class, args); - } - -} diff --git a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectFilter.java b/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectFilter.java deleted file mode 100644 index f12169cb27..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectFilter.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.baeldung.security; - -import java.io.IOException; -import java.net.URL; -import java.security.interfaces.RSAPublicKey; -import java.util.Date; -import java.util.Map; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.jwt.Jwt; -import org.springframework.security.jwt.JwtHelper; -import org.springframework.security.jwt.crypto.sign.RsaVerifier; -import org.springframework.security.oauth2.client.OAuth2RestOperations; -import org.springframework.security.oauth2.client.OAuth2RestTemplate; -import org.springframework.security.oauth2.common.OAuth2AccessToken; -import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; -import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter; - -import com.auth0.jwk.Jwk; -import com.auth0.jwk.JwkProvider; -import com.auth0.jwk.UrlJwkProvider; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class OpenIdConnectFilter extends AbstractAuthenticationProcessingFilter { - @Value("${google.clientId}") - private String clientId; - - @Value("${google.issuer}") - private String issuer; - - @Value("${google.jwkUrl}") - private String jwkUrl; - - public OAuth2RestOperations restTemplate; - - public OpenIdConnectFilter(String defaultFilterProcessesUrl) { - super(defaultFilterProcessesUrl); - setAuthenticationManager(new NoopAuthenticationManager()); - } - - @Override - public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException { - - OAuth2AccessToken accessToken; - try { - accessToken = restTemplate.getAccessToken(); - } catch (final OAuth2Exception e) { - throw new BadCredentialsException("Could not obtain access token", e); - } - try { - final String idToken = accessToken.getAdditionalInformation().get("id_token").toString(); - String kid = JwtHelper.headers(idToken) - .get("kid"); - final Jwt tokenDecoded = JwtHelper.decodeAndVerify(idToken, verifier(kid)); - final Map authInfo = new ObjectMapper().readValue(tokenDecoded.getClaims(), Map.class); - verifyClaims(authInfo); - final OpenIdConnectUserDetails user = new OpenIdConnectUserDetails(authInfo, accessToken); - return new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities()); - } catch (final Exception e) { - throw new BadCredentialsException("Could not obtain user details from token", e); - } - - } - - public void verifyClaims(Map claims) { - int exp = (int) claims.get("exp"); - Date expireDate = new Date(exp * 1000L); - Date now = new Date(); - if (expireDate.before(now) || !claims.get("iss").equals(issuer) || !claims.get("aud").equals(clientId)) { - throw new RuntimeException("Invalid claims"); - } - } - - - private RsaVerifier verifier(String kid) throws Exception { - JwkProvider provider = new UrlJwkProvider(new URL(jwkUrl)); - Jwk jwk = provider.get(kid); - return new RsaVerifier((RSAPublicKey) jwk.getPublicKey()); - } - - public void setRestTemplate(OAuth2RestTemplate restTemplate2) { - restTemplate = restTemplate2; - - } - - private static class NoopAuthenticationManager implements AuthenticationManager { - - @Override - public Authentication authenticate(Authentication authentication) throws AuthenticationException { - throw new UnsupportedOperationException("No authentication should be done with this AuthenticationManager"); - } - - } -} diff --git a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectUserDetails.java b/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectUserDetails.java deleted file mode 100644 index f0d91fdc27..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/java/org/baeldung/security/OpenIdConnectUserDetails.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.baeldung.security; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Map; - -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.oauth2.common.OAuth2AccessToken; - -public class OpenIdConnectUserDetails implements UserDetails { - - private static final long serialVersionUID = 1L; - - private String userId; - private String username; - private OAuth2AccessToken token; - - public OpenIdConnectUserDetails(Map userInfo, OAuth2AccessToken token) { - this.userId = userInfo.get("sub"); - this.username = userInfo.get("email"); - this.token = token; - } - - @Override - public String getUsername() { - return username; - } - - @Override - public Collection getAuthorities() { - return Arrays.asList(new SimpleGrantedAuthority("ROLE_USER")); - } - - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } - - public OAuth2AccessToken getToken() { - return token; - } - - public void setToken(OAuth2AccessToken token) { - this.token = token; - } - - public void setUsername(String username) { - this.username = username; - } - - @Override - public String getPassword() { - return null; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } - -} diff --git a/spring-security-modules/spring-security-openid/src/main/resources/application.properties b/spring-security-modules/spring-security-openid/src/main/resources/application.properties deleted file mode 100644 index 49022bf280..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/resources/application.properties +++ /dev/null @@ -1,8 +0,0 @@ -server.port=8081 -google.clientId=TODO -google.clientSecret=TODO -google.accessTokenUri=https://www.googleapis.com/oauth2/v3/token -google.userAuthorizationUri=https://accounts.google.com/o/oauth2/auth -google.redirectUri=http://localhost:8081/google-login -google.issuer=accounts.google.com -google.jwkUrl=https://www.googleapis.com/oauth2/v2/certs \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/resources/application.yml b/spring-security-modules/spring-security-openid/src/main/resources/application.yml new file mode 100644 index 0000000000..f303fcecd1 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/resources/application.yml @@ -0,0 +1,7 @@ +server: + port: 8081 + +logging: + level: + org.springframework.web.client.RestTemplate: DEBUG + \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/resources/discovery-application.yml b/spring-security-modules/spring-security-openid/src/main/resources/discovery-application.yml new file mode 100644 index 0000000000..1cbebbcb7b --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/resources/discovery-application.yml @@ -0,0 +1,11 @@ +spring: + security: + oauth2: + client: + registration: + custom-google: + client-id: + client-secret: + provider: + custom-google: + issuer-uri: https://accounts.google.com \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/resources/logback.xml b/spring-security-modules/spring-security-openid/src/main/resources/logback.xml deleted file mode 100644 index 7d900d8ea8..0000000000 --- a/spring-security-modules/spring-security-openid/src/main/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/resources/login-application.yml b/spring-security-modules/spring-security-openid/src/main/resources/login-application.yml new file mode 100644 index 0000000000..b3220a0550 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/resources/login-application.yml @@ -0,0 +1,8 @@ +spring: + security: + oauth2: + client: + registration: + google: + client-id: + client-secret: \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/main/resources/sessionmanagement-application.yml b/spring-security-modules/spring-security-openid/src/main/resources/sessionmanagement-application.yml new file mode 100644 index 0000000000..d7dd5e6ec7 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/main/resources/sessionmanagement-application.yml @@ -0,0 +1,16 @@ +spring: + security: + oauth2: + client: + registration: + okta: + client-id: + client-secret: + provider: + okta: + issuer-uri: https://dev-123.okta.com + # Or, optionally: + #authorization-uri https://dev-123-admin.okta.com/oauth2/v1/authorize + #token-uri: https://dev-123-admin.okta.com/oauth2/v1/token + #user-info-uri: https://dev-123-admin.okta.com/oauth2/v1/userinfo + #jwk-set-uri: https://dev-123-admin.okta.com/oauth2/v1/keys \ No newline at end of file diff --git a/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java b/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java new file mode 100644 index 0000000000..25c87cdc6f --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java @@ -0,0 +1,19 @@ +package com.baeldung.openid.oidc.discovery; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ContextConfiguration; + +import com.baeldung.openid.oidc.utils.YamlLoaderInitializer; + +//We'll ignore this test, as we don't want to depend on Google's OIDC-configuration endpoint to be available +@Disabled +@SpringBootTest(classes = SpringOidcDiscoveryApplication.class, properties = "custom.configyaml.file=discovery-application.yml") +@ContextConfiguration(initializers = YamlLoaderInitializer.class) +public class SpringContextTest { + + @Test + public void whenSpringContextIsBootstrapped_thenNoExceptions() { + } +} diff --git a/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java b/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java new file mode 100644 index 0000000000..675dcd8727 --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java @@ -0,0 +1,16 @@ +package com.baeldung.openid.oidc.login; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ContextConfiguration; + +import com.baeldung.openid.oidc.utils.YamlLoaderInitializer; + +@SpringBootTest(classes = SpringOidcLoginApplication.class, properties = "custom.configyaml.file=login-application.yml") +@ContextConfiguration(initializers = YamlLoaderInitializer.class) +public class SpringContextTest { + + @Test + public void whenSpringContextIsBootstrapped_thenNoExceptions() { + } +} diff --git a/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java b/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java new file mode 100644 index 0000000000..91ed11fbaf --- /dev/null +++ b/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java @@ -0,0 +1,19 @@ +package com.baeldung.openid.oidc.sessionmanagement; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ContextConfiguration; + +import com.baeldung.openid.oidc.utils.YamlLoaderInitializer; + +//We'll ignore this test, as we don't want to depend on the Okta instance OIDC-configuration endpoint to be available +@Disabled +@SpringBootTest(classes = SpringOidcSessionManagementApplication.class, properties = "custom.configyaml.file=sessionmanagement-application.yml") +@ContextConfiguration(initializers = YamlLoaderInitializer.class) +public class SpringContextTest { + + @Test + public void whenSpringContextIsBootstrapped_thenNoExceptions() { + } +} diff --git a/spring-security-modules/spring-security-openid/src/test/java/org/baeldung/SpringContextTest.java b/spring-security-modules/spring-security-openid/src/test/java/org/baeldung/SpringContextTest.java deleted file mode 100644 index fa346b2b31..0000000000 --- a/spring-security-modules/spring-security-openid/src/test/java/org/baeldung/SpringContextTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.baeldung; - -import org.baeldung.config.SpringOpenidApplication; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = SpringOpenidApplication.class) -public class SpringContextTest { - - @Test - public void whenSpringContextIsBootstrapped_thenNoExceptions() { - } -} From 04f9c4888e8857077cf2714280bae943bd89ce63 Mon Sep 17 00:00:00 2001 From: Gerardo Roza Date: Thu, 26 Dec 2019 12:06:02 -0300 Subject: [PATCH 2/2] renamed spring-security-modules/spring-security-openid to spring-security-modules/spring-security-oidc --- .gitignore | 1 - pom.xml | 2 +- .../README.md | 0 .../pom.xml | 6 +++--- .../oidc/discovery/SpringOidcDiscoveryApplication.java | 0 .../oidc/discovery/web/controllers/UserRestController.java | 0 .../openid/oidc/login/SpringOidcLoginApplication.java | 0 .../openid/oidc/login/config/OAuth2LoginSecurityConfig.java | 0 .../com/baeldung/openid/oidc/login/service/UserService.java | 0 .../oidc/login/web/controllers/UserRestController.java | 0 .../SpringOidcSessionManagementApplication.java | 0 .../config/OAuth2SessionManagementSecurityConfig.java | 0 .../web/controllers/HomeRestController.java | 0 .../web/controllers/UserRestController.java | 0 .../baeldung/openid/oidc/utils/YamlLoaderInitializer.java | 0 .../src/main/resources/application.yml | 0 .../src/main/resources/discovery-application.yml | 0 .../src/main/resources/login-application.yml | 0 .../src/main/resources/sessionmanagement-application.yml | 0 .../baeldung/openid/oidc/discovery/SpringContextTest.java | 0 .../com/baeldung/openid/oidc/login/SpringContextTest.java | 0 .../openid/oidc/sessionmanagement/SpringContextTest.java | 0 22 files changed, 4 insertions(+), 5 deletions(-) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/README.md (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/pom.xml (86%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/resources/application.yml (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/resources/discovery-application.yml (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/resources/login-application.yml (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/main/resources/sessionmanagement-application.yml (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java (100%) rename spring-security-modules/{spring-security-openid => spring-security-oidc}/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java (100%) diff --git a/.gitignore b/.gitignore index 349efbcb67..9c100eaded 100644 --- a/.gitignore +++ b/.gitignore @@ -39,7 +39,6 @@ target/ spring-openid/src/main/resources/application.properties .recommenders/ /spring-hibernate4/nbproject/ -spring-security-openid/src/main/resources/application.properties spring-all/*.log diff --git a/pom.xml b/pom.xml index cfb3fe1889..1ee50933db 100644 --- a/pom.xml +++ b/pom.xml @@ -830,7 +830,7 @@ spring-security-modules/spring-security-mvc-login spring-security-modules/spring-security-mvc-persisted-remember-me spring-security-modules/spring-security-mvc-socket - spring-security-modules/spring-security-openid + spring-security-modules/spring-security-oidc spring-security-modules/spring-security-rest spring-security-modules/spring-security-rest-basic-auth diff --git a/spring-security-modules/spring-security-openid/README.md b/spring-security-modules/spring-security-oidc/README.md similarity index 100% rename from spring-security-modules/spring-security-openid/README.md rename to spring-security-modules/spring-security-oidc/README.md diff --git a/spring-security-modules/spring-security-openid/pom.xml b/spring-security-modules/spring-security-oidc/pom.xml similarity index 86% rename from spring-security-modules/spring-security-openid/pom.xml rename to spring-security-modules/spring-security-oidc/pom.xml index a8637df865..91e4641450 100644 --- a/spring-security-modules/spring-security-openid/pom.xml +++ b/spring-security-modules/spring-security-oidc/pom.xml @@ -3,10 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-security-openid - spring-security-openid + spring-security-oidc + spring-security-oidc war - Spring OpenID sample project + Spring OpenID Connect sample project com.baeldung diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/discovery/SpringOidcDiscoveryApplication.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/discovery/web/controllers/UserRestController.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/SpringOidcLoginApplication.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/config/OAuth2LoginSecurityConfig.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/service/UserService.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/login/web/controllers/UserRestController.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/SpringOidcSessionManagementApplication.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/config/OAuth2SessionManagementSecurityConfig.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/HomeRestController.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/sessionmanagement/web/controllers/UserRestController.java diff --git a/spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java b/spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java rename to spring-security-modules/spring-security-oidc/src/main/java/com/baeldung/openid/oidc/utils/YamlLoaderInitializer.java diff --git a/spring-security-modules/spring-security-openid/src/main/resources/application.yml b/spring-security-modules/spring-security-oidc/src/main/resources/application.yml similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/resources/application.yml rename to spring-security-modules/spring-security-oidc/src/main/resources/application.yml diff --git a/spring-security-modules/spring-security-openid/src/main/resources/discovery-application.yml b/spring-security-modules/spring-security-oidc/src/main/resources/discovery-application.yml similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/resources/discovery-application.yml rename to spring-security-modules/spring-security-oidc/src/main/resources/discovery-application.yml diff --git a/spring-security-modules/spring-security-openid/src/main/resources/login-application.yml b/spring-security-modules/spring-security-oidc/src/main/resources/login-application.yml similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/resources/login-application.yml rename to spring-security-modules/spring-security-oidc/src/main/resources/login-application.yml diff --git a/spring-security-modules/spring-security-openid/src/main/resources/sessionmanagement-application.yml b/spring-security-modules/spring-security-oidc/src/main/resources/sessionmanagement-application.yml similarity index 100% rename from spring-security-modules/spring-security-openid/src/main/resources/sessionmanagement-application.yml rename to spring-security-modules/spring-security-oidc/src/main/resources/sessionmanagement-application.yml diff --git a/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java b/spring-security-modules/spring-security-oidc/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java rename to spring-security-modules/spring-security-oidc/src/test/java/com/baeldung/openid/oidc/discovery/SpringContextTest.java diff --git a/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java b/spring-security-modules/spring-security-oidc/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java rename to spring-security-modules/spring-security-oidc/src/test/java/com/baeldung/openid/oidc/login/SpringContextTest.java diff --git a/spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java b/spring-security-modules/spring-security-oidc/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java similarity index 100% rename from spring-security-modules/spring-security-openid/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java rename to spring-security-modules/spring-security-oidc/src/test/java/com/baeldung/openid/oidc/sessionmanagement/SpringContextTest.java