public record ResolvedOAuthConnection()

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()));

    }

}