in src/main/java/org/apache/sling/auth/oauth_client/impl/ResolvedOAuthConnection.java [30:68]
public record ResolvedOAuthConnection(
String name,
String authorizationEndpoint,
String tokenEndpoint,
String clientId,
String clientSecret,
List<String> scopes,
List<String> additionalAuthorizationParameters) {
public static @NotNull ResolvedOAuthConnection resolve(@NotNull ClientConnection connection) {
if ( connection instanceof OidcConnectionImpl impl ) {
return new ResolvedOAuthConnection(
connection.name(),
impl.authorizationEndpoint(),
impl.tokenEndpoint(),
impl.clientId(),
impl.clientSecret(),
Arrays.asList(impl.scopes()),
Arrays.asList(impl.additionalAuthorizationParameters())
);
} else if ( connection instanceof OAuthConnectionImpl impl) {
return new ResolvedOAuthConnection(
connection.name(),
impl.authorizationEndpoint(),
impl.tokenEndpoint(),
impl.clientId(),
impl.clientSecret(),
Arrays.asList(impl.scopes()),
Arrays.asList(impl.additionalAuthorizationParameters())
);
}
throw new IllegalArgumentException(String.format("Unable to resolve %s (name=%s) of type %s",
ClientConnection.class.getSimpleName(), connection.name(), connection.getClass().getName()));
}
}