From 4400abefda18f0380256367e251e0827cdcff3e7 Mon Sep 17 00:00:00 2001 From: dng Date: Fri, 10 May 2019 15:50:02 +0200 Subject: [PATCH 1/3] apply read timeout and connection timeout configuration --- .../oauth2/SpringSecurityOauth2BaseService.groovy | 10 +++++++++- .../service/OAuth2AbstractProviderService.groovy | 2 ++ .../oauth2/util/OAuth2ProviderConfiguration.groovy | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/grails-app/services/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2BaseService.groovy b/grails-app/services/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2BaseService.groovy index 322ae02..95cdbd9 100644 --- a/grails-app/services/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2BaseService.groovy +++ b/grails-app/services/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2BaseService.groovy @@ -149,6 +149,12 @@ class SpringSecurityOauth2BaseService { if (apiSecret == null || apiSecret.isEmpty()) { throw new OAuth2Exception("API Secret for provider '" + providerService.providerID + "' is missing") } + + def connectTimeout = getConfigValue(providerService.providerID, "connectTimeout") as Integer + def readTimeout = getConfigValue(providerService.providerID, "readTimeout") as Integer + + log.debug("connectTimeout: $connectTimeout, readTimeout: $readTimeout") + _providerConfigurationMap.put(providerService.providerID, new OAuth2ProviderConfiguration( apiKey: apiKey, apiSecret: apiSecret, @@ -156,7 +162,9 @@ class SpringSecurityOauth2BaseService { successUrl: successUrl, failureUrl: failureUrl, scope: scopes ? providerService.getScopes() + providerService.scopeSeparator + scopes : providerService.getScopes(), - debug: grailsApplication.config.getProperty('oauth2.debug') ? grailsApplication.config.getProperty('oauth2.debug') : false + debug: grailsApplication.config.getProperty('oauth2.debug') ? grailsApplication.config.getProperty('oauth2.debug') : false, + connectTimeout:connectTimeout, + readTimeout:readTimeout )) providerService.init(_providerConfigurationMap.get(providerService.providerID)) providerServiceMap.put(providerService.providerID, providerService) diff --git a/src/main/groovy/grails/plugin/springsecurity/oauth2/service/OAuth2AbstractProviderService.groovy b/src/main/groovy/grails/plugin/springsecurity/oauth2/service/OAuth2AbstractProviderService.groovy index 0e98cc5..8077c9d 100644 --- a/src/main/groovy/grails/plugin/springsecurity/oauth2/service/OAuth2AbstractProviderService.groovy +++ b/src/main/groovy/grails/plugin/springsecurity/oauth2/service/OAuth2AbstractProviderService.groovy @@ -110,6 +110,8 @@ abstract class OAuth2AbstractProviderService implements OAuth2ProviderService { .apiKey(providerConfiguration.apiKey) .apiSecret(providerConfiguration.apiSecret) .state(secretState) + .connectTimeout(providerConfiguration.connectTimeout).readTimeout(providerConfiguration.readTimeout) + if (providerConfiguration.callbackUrl) { serviceBuilder.callback(providerConfiguration.callbackUrl) } diff --git a/src/main/groovy/grails/plugin/springsecurity/oauth2/util/OAuth2ProviderConfiguration.groovy b/src/main/groovy/grails/plugin/springsecurity/oauth2/util/OAuth2ProviderConfiguration.groovy index 7233fa6..0e4388f 100644 --- a/src/main/groovy/grails/plugin/springsecurity/oauth2/util/OAuth2ProviderConfiguration.groovy +++ b/src/main/groovy/grails/plugin/springsecurity/oauth2/util/OAuth2ProviderConfiguration.groovy @@ -41,4 +41,8 @@ class OAuth2ProviderConfiguration { String successUrl String failureUrl + + Integer connectTimeout + + Integer readTimeout } From ab302484b6afe7e597a793a9733b93d0c481e840 Mon Sep 17 00:00:00 2001 From: dng Date: Fri, 10 May 2019 15:52:23 +0200 Subject: [PATCH 2/3] new links --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4632aab..4b5e6fa 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,8 @@ Extensions List of known extension * [Google](https://github.com/grails-plugins/grails-spring-security-oauth2-google) * [Facebook](https://github.com/MatrixCrawler/grails-spring-security-oauth2-facebook) -* [Github] (https://github.com/rpalcolea/grails-spring-security-oauth2-github) +* [Github](https://github.com/rpalcolea/grails-spring-security-oauth2-github) +* [Outlook](https://github.com/andreperegrina/grails-spring-security-oauth2-outlook) How to create a new provider plugin From 754472153b494f59a199d4fe4f92cebbef69ee06 Mon Sep 17 00:00:00 2001 From: dng Date: Fri, 10 May 2019 16:22:18 +0200 Subject: [PATCH 3/3] new links --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4b5e6fa..874a283 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,8 @@ List of known extension * [Facebook](https://github.com/MatrixCrawler/grails-spring-security-oauth2-facebook) * [Github](https://github.com/rpalcolea/grails-spring-security-oauth2-github) * [Outlook](https://github.com/andreperegrina/grails-spring-security-oauth2-outlook) +* [VK](https://github.com/purpleraven/grails-spring-security-oauth2-vk) +* [Odnoklassniki](https://github.com/purpleraven/grails-spring-security-oauth2-ok) How to create a new provider plugin