Use OAuth2Token in OAuth2Authorization
Closes gh-364
This commit is contained in:
@@ -25,12 +25,12 @@ import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.security.oauth2.core.Version;
|
||||
import org.springframework.security.oauth2.core.AbstractOAuth2Token;
|
||||
import org.springframework.security.oauth2.core.AuthorizationGrantType;
|
||||
import org.springframework.security.oauth2.core.OAuth2AccessToken;
|
||||
import org.springframework.security.oauth2.core.OAuth2RefreshToken;
|
||||
import org.springframework.security.oauth2.core.OAuth2RefreshToken2;
|
||||
import org.springframework.security.oauth2.core.OAuth2Token;
|
||||
import org.springframework.security.oauth2.core.Version;
|
||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -46,7 +46,7 @@ import org.springframework.util.StringUtils;
|
||||
* @since 0.0.1
|
||||
* @see RegisteredClient
|
||||
* @see AuthorizationGrantType
|
||||
* @see AbstractOAuth2Token
|
||||
* @see OAuth2Token
|
||||
* @see OAuth2AccessToken
|
||||
* @see OAuth2RefreshToken
|
||||
*/
|
||||
@@ -64,7 +64,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
private String registeredClientId;
|
||||
private String principalName;
|
||||
private AuthorizationGrantType authorizationGrantType;
|
||||
private Map<Class<? extends AbstractOAuth2Token>, Token<?>> tokens;
|
||||
private Map<Class<? extends OAuth2Token>, Token<?>> tokens;
|
||||
private Map<String, Object> attributes;
|
||||
|
||||
protected OAuth2Authorization() {
|
||||
@@ -134,7 +134,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
*/
|
||||
@Nullable
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends AbstractOAuth2Token> Token<T> getToken(Class<T> tokenType) {
|
||||
public <T extends OAuth2Token> Token<T> getToken(Class<T> tokenType) {
|
||||
Assert.notNull(tokenType, "tokenType cannot be null");
|
||||
Token<?> token = this.tokens.get(tokenType);
|
||||
return token != null ? (Token<T>) token : null;
|
||||
@@ -149,7 +149,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
*/
|
||||
@Nullable
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends AbstractOAuth2Token> Token<T> getToken(String tokenValue) {
|
||||
public <T extends OAuth2Token> Token<T> getToken(String tokenValue) {
|
||||
Assert.hasText(tokenValue, "tokenValue cannot be empty");
|
||||
Token<?> token = this.tokens.values().stream()
|
||||
.filter(t -> t.getToken().getTokenValue().equals(tokenValue))
|
||||
@@ -237,7 +237,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
* @author Joe Grandja
|
||||
* @since 0.1.0
|
||||
*/
|
||||
public static class Token<T extends AbstractOAuth2Token> implements Serializable {
|
||||
public static class Token<T extends OAuth2Token> implements Serializable {
|
||||
private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
|
||||
protected static final String TOKEN_METADATA_BASE = "metadata.token.";
|
||||
|
||||
@@ -264,9 +264,9 @@ public class OAuth2Authorization implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the token of type {@link AbstractOAuth2Token}.
|
||||
* Returns the token of type {@link OAuth2Token}.
|
||||
*
|
||||
* @return the token of type {@link AbstractOAuth2Token}
|
||||
* @return the token of type {@link OAuth2Token}
|
||||
*/
|
||||
public T getToken() {
|
||||
return this.token;
|
||||
@@ -380,7 +380,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
private final String registeredClientId;
|
||||
private String principalName;
|
||||
private AuthorizationGrantType authorizationGrantType;
|
||||
private Map<Class<? extends AbstractOAuth2Token>, Token<?>> tokens = new HashMap<>();
|
||||
private Map<Class<? extends OAuth2Token>, Token<?>> tokens = new HashMap<>();
|
||||
private final Map<String, Object> attributes = new HashMap<>();
|
||||
|
||||
protected Builder(String registeredClientId) {
|
||||
@@ -441,25 +441,25 @@ public class OAuth2Authorization implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the {@link AbstractOAuth2Token token}.
|
||||
* Sets the {@link OAuth2Token token}.
|
||||
*
|
||||
* @param token the token
|
||||
* @param <T> the type of the token
|
||||
* @return the {@link Builder}
|
||||
*/
|
||||
public <T extends AbstractOAuth2Token> Builder token(T token) {
|
||||
public <T extends OAuth2Token> Builder token(T token) {
|
||||
return token(token, (metadata) -> {});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the {@link AbstractOAuth2Token token} and associated metadata.
|
||||
* Sets the {@link OAuth2Token token} and associated metadata.
|
||||
*
|
||||
* @param token the token
|
||||
* @param metadataConsumer a {@code Consumer} of the metadata {@code Map}
|
||||
* @param <T> the type of the token
|
||||
* @return the {@link Builder}
|
||||
*/
|
||||
public <T extends AbstractOAuth2Token> Builder token(T token,
|
||||
public <T extends OAuth2Token> Builder token(T token,
|
||||
Consumer<Map<String, Object>> metadataConsumer) {
|
||||
|
||||
Assert.notNull(token, "token cannot be null");
|
||||
@@ -469,7 +469,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
metadata.putAll(existingToken.getMetadata());
|
||||
}
|
||||
metadataConsumer.accept(metadata);
|
||||
Class<? extends AbstractOAuth2Token> tokenClass = token.getClass();
|
||||
Class<? extends OAuth2Token> tokenClass = token.getClass();
|
||||
if (tokenClass.equals(OAuth2RefreshToken2.class)) {
|
||||
tokenClass = OAuth2RefreshToken.class;
|
||||
}
|
||||
@@ -477,7 +477,7 @@ public class OAuth2Authorization implements Serializable {
|
||||
return this;
|
||||
}
|
||||
|
||||
protected final Builder tokens(Map<Class<? extends AbstractOAuth2Token>, Token<?>> tokens) {
|
||||
protected final Builder tokens(Map<Class<? extends OAuth2Token>, Token<?>> tokens) {
|
||||
this.tokens = new HashMap<>(tokens);
|
||||
return this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user