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