in plugin-oauth2/plugin/grails-app/services/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2BaseService.groovy [129:165]
void registerProvider(OAuth2ProviderService providerService) throws OAuth2Exception {
log.debug("Registering provider: " + providerService.getProviderID())
if (providerServiceMap.containsKey(providerService.getProviderID())) {
// There is already a provider under that name
log.warn("There is already a provider with the name " + providerService.getProviderID() + " registered")
} else {
String baseURL = getBaseUrl()
def callbackURL = getConfigValue(providerService.providerID, "callback") ? baseURL + getConfigValue(providerService.providerID, "callback") : baseURL + "/oauth2/" + providerService.getProviderID() + "/callback"
log.debug("Callback URL: " + callbackURL)
def successUrl = getConfigValue(providerService.providerID, "successUri") ? baseURL + getConfigValue(providerService.providerID, "successUri") : null
log.debug("Success URL: " + successUrl)
def failureUrl = getConfigValue(providerService.providerID, "failureUri") ? baseURL + getConfigValue(providerService.providerID, "failureUri") : null
log.debug("Failure URL: " + failureUrl)
def scopes = getConfigValue(providerService.providerID, "scopes") ?: null
log.debug("Additional Scopes: " + scopes)
def apiKey = System.getenv("${providerService.getProviderID().toUpperCase()}_API_KEY") ?: getConfigValue(providerService.providerID, "api_key")
def apiSecret = System.getenv("${providerService.getProviderID().toUpperCase()}_API_SECRET") ?: getConfigValue(providerService.providerID, "api_secret")
log.debug("API Key: " + apiKey + ", Secret: " + apiSecret)
if (apiKey == null || apiKey.isEmpty()) {
throw new OAuth2Exception("API Key for provider '" + providerService.providerID + "' is missing")
}
if (apiSecret == null || apiSecret.isEmpty()) {
throw new OAuth2Exception("API Secret for provider '" + providerService.providerID + "' is missing")
}
_providerConfigurationMap.put(providerService.providerID, new OAuth2ProviderConfiguration(
apiKey: apiKey,
apiSecret: apiSecret,
callbackUrl: callbackURL,
successUrl: successUrl,
failureUrl: failureUrl,
scope: scopes ? providerService.getScopes() + providerService.scopeSeparator + scopes : providerService.getScopes(),
debug: grailsApplication.config.getProperty('grails.plugin.springsecurity.oauth2.debug', Boolean, false)
))
providerService.init(_providerConfigurationMap.get(providerService.providerID))
providerServiceMap.put(providerService.providerID, providerService)
}
}