|
|
|
@ -41,7 +41,6 @@ import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.io.IOException; |
|
|
|
import java.net.URI; |
|
|
|
import java.net.URI; |
|
|
|
import java.util.Collections; |
|
|
|
|
|
|
|
import java.util.LinkedHashMap; |
|
|
|
import java.util.LinkedHashMap; |
|
|
|
import java.util.LinkedHashSet; |
|
|
|
import java.util.LinkedHashSet; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
@ -122,10 +121,20 @@ public class NimbusAuthorizationCodeTokenExchanger implements AuthorizationGrant |
|
|
|
accessTokenType = AccessToken.TokenType.BEARER; |
|
|
|
accessTokenType = AccessToken.TokenType.BEARER; |
|
|
|
} |
|
|
|
} |
|
|
|
long expiresIn = accessTokenResponse.getTokens().getAccessToken().getLifetime(); |
|
|
|
long expiresIn = accessTokenResponse.getTokens().getAccessToken().getLifetime(); |
|
|
|
Set<String> scopes = Collections.emptySet(); |
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(accessTokenResponse.getTokens().getAccessToken().getScope())) { |
|
|
|
// As per spec, in section 5.1 Successful Access Token Response
|
|
|
|
scopes = new LinkedHashSet<>(accessTokenResponse.getTokens().getAccessToken().getScope().toStringList()); |
|
|
|
// https://tools.ietf.org/html/rfc6749#section-5.1
|
|
|
|
|
|
|
|
// If AccessTokenResponse.scope is empty, then default to the scope
|
|
|
|
|
|
|
|
// originally requested by the client in the Authorization Request
|
|
|
|
|
|
|
|
Set<String> scopes; |
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(accessTokenResponse.getTokens().getAccessToken().getScope())) { |
|
|
|
|
|
|
|
scopes = new LinkedHashSet<>( |
|
|
|
|
|
|
|
authorizationCodeAuthentication.getAuthorizationExchange().getAuthorizationRequest().getScopes()); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
scopes = new LinkedHashSet<>( |
|
|
|
|
|
|
|
accessTokenResponse.getTokens().getAccessToken().getScope().toStringList()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> additionalParameters = new LinkedHashMap<>(accessTokenResponse.getCustomParameters()); |
|
|
|
Map<String, Object> additionalParameters = new LinkedHashMap<>(accessTokenResponse.getCustomParameters()); |
|
|
|
|
|
|
|
|
|
|
|
return TokenResponse.withToken(accessToken) |
|
|
|
return TokenResponse.withToken(accessToken) |
|
|
|
|