From b17687190c316b26b8aeca19fb5f10cb1d1a324e Mon Sep 17 00:00:00 2001 From: mike Date: Sat, 13 Feb 2016 11:07:09 -0800 Subject: [PATCH] Simple extension of the github sample to show how to enable Google OAuth2. --- .../java/com/example/SocialApplication.java | 21 +++++++++++++------ github/src/main/resources/application.yml | 13 ++++++++++++ github/src/main/resources/static/index.html | 3 +++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/github/src/main/java/com/example/SocialApplication.java b/github/src/main/java/com/example/SocialApplication.java index 9187ddf..ae07454 100644 --- a/github/src/main/java/com/example/SocialApplication.java +++ b/github/src/main/java/com/example/SocialApplication.java @@ -134,24 +134,33 @@ ClientResources facebook() { return new ClientResources(); } + @Bean + @ConfigurationProperties("google") + ClientResources google() { + return new ClientResources(); + } + private Filter ssoFilter() { CompositeFilter filter = new CompositeFilter(); List filters = new ArrayList<>(); filters.add(ssoFilter(facebook(), "/login/facebook")); filters.add(ssoFilter(github(), "/login/github")); + filters.add(ssoFilter(google(), "/login/google")); filter.setFilters(filters); return filter; } private Filter ssoFilter(ClientResources client, String path) { - OAuth2ClientAuthenticationProcessingFilter facebookFilter = new OAuth2ClientAuthenticationProcessingFilter( + OAuth2ClientAuthenticationProcessingFilter oAuth2Filter = new OAuth2ClientAuthenticationProcessingFilter( path); - OAuth2RestTemplate facebookTemplate = new OAuth2RestTemplate(client.getClient(), + OAuth2RestTemplate oAuth2RestTemplate = new OAuth2RestTemplate(client.getClient(), oauth2ClientContext); - facebookFilter.setRestTemplate(facebookTemplate); - facebookFilter.setTokenServices(new UserInfoTokenServices( - client.getResource().getUserInfoUri(), client.getClient().getClientId())); - return facebookFilter; + oAuth2Filter.setRestTemplate(oAuth2RestTemplate); + UserInfoTokenServices userInfoTokenServices = new UserInfoTokenServices( + client.getResource().getUserInfoUri(), client.getClient().getClientId()); + userInfoTokenServices.setRestTemplate(oAuth2RestTemplate); + oAuth2Filter.setTokenServices(userInfoTokenServices); + return oAuth2Filter; } private Filter csrfHeaderFilter() { diff --git a/github/src/main/resources/application.yml b/github/src/main/resources/application.yml index 6e32c81..202306d 100644 --- a/github/src/main/resources/application.yml +++ b/github/src/main/resources/application.yml @@ -27,6 +27,19 @@ github: resource: userInfoUri: https://api.github.com/user +google: + client: + clientId: 1071160065194-3556m2cmnlacgqo9qfjb2089f0aetb31.apps.googleusercontent.com + clientSecret: Hmw1APyVk7tLVcTTONh3pOhm + accessTokenUri: https://www.googleapis.com/oauth2/v3/token + userAuthorizationUri: https://accounts.google.com/o/oauth2/auth + authenticationScheme: query + scope: + - email + - profile + resource: + userInfoUri: https://www.googleapis.com/oauth2/v2/userinfo + logging: level: org.springframework.security: DEBUG diff --git a/github/src/main/resources/static/index.html b/github/src/main/resources/static/index.html index bd553bc..d6f7504 100644 --- a/github/src/main/resources/static/index.html +++ b/github/src/main/resources/static/index.html @@ -22,6 +22,9 @@

Login

With Github: click here
+
+ With Google: click here +
Logged in as: