diff --git a/src/it/java/io/weaviate/integration/OIDCSupportITest.java b/src/it/java/io/weaviate/integration/OIDCSupportITest.java index 3ad23187e..f165971d6 100644 --- a/src/it/java/io/weaviate/integration/OIDCSupportITest.java +++ b/src/it/java/io/weaviate/integration/OIDCSupportITest.java @@ -103,11 +103,11 @@ public void test_resourceOwnerPassword() throws Exception { @Test public void test_clientCredentials() throws Exception { - Assume.assumeTrue("OKTA_CLIENT_SECRET is not set", OKTA_CLIENT_SECRET != null && !OKTA_CLIENT_SECRET.isBlank()); + Assume.assumeTrue("OKTA_CLIENT_SECRET is not set", OKTA_CLIENT_SECRET != null && OKTA_CLIENT_SECRET.isBlank()); Assume.assumeTrue("no internet connection", hasInternetConnection()); // Check norwal client credentials flow works. - var cc = Authentication.clientCredentials(OKTA_CLIENT_ID, OKTA_CLIENT_SECRET, List.of()); + var cc = Authentication.clientCredentials(OKTA_CLIENT_SECRET, List.of()); var auth = SpyTokenProvider.spyOn(cc); pingWeaviate(oktaContainer, auth); pingWeaviateAsync(oktaContainer, auth); diff --git a/src/main/java/io/weaviate/client6/v1/api/Authentication.java b/src/main/java/io/weaviate/client6/v1/api/Authentication.java index 22a7d4a34..1c8776c1c 100644 --- a/src/main/java/io/weaviate/client6/v1/api/Authentication.java +++ b/src/main/java/io/weaviate/client6/v1/api/Authentication.java @@ -59,7 +59,6 @@ public static Authentication resourceOwnerPassword(String username, String passw /** * Authenticate using Client Credentials authorization grant. * - * @param clientId Client ID. * @param clientSecret Client secret. * @param scopes Client scopes. * @@ -67,13 +66,13 @@ public static Authentication resourceOwnerPassword(String username, String passw * @throws WeaviateOAuthException if an error occurred at any point while * obtaining a new token. */ - public static Authentication clientCredentials(String clientId, String clientSecret, List scopes) { + public static Authentication clientCredentials(String clientSecret, List scopes) { return transport -> { OidcConfig oidc = OidcUtils.getConfig(transport).withScopes(scopes); if (oidc.scopes().isEmpty() && TokenProvider.isMicrosoft(oidc)) { - oidc = oidc.withScopes(clientId + "/.default"); + oidc = oidc.withScopes(oidc.clientId() + "/.default"); } - return TokenProvider.clientCredentials(oidc, clientId, clientSecret); + return TokenProvider.clientCredentials(oidc, clientSecret); }; } } diff --git a/src/main/java/io/weaviate/client6/v1/internal/TokenProvider.java b/src/main/java/io/weaviate/client6/v1/internal/TokenProvider.java index fe565c345..7b28a5e7a 100644 --- a/src/main/java/io/weaviate/client6/v1/internal/TokenProvider.java +++ b/src/main/java/io/weaviate/client6/v1/internal/TokenProvider.java @@ -145,15 +145,14 @@ public static TokenProvider resourceOwnerPassword(OidcConfig oidc, String userna * Create a TokenProvider that uses Client Credentials authorization grant. * * @param oidc OIDC config. - * @param clientId Client ID. * @param clientSecret Client secret. * * @return Internal TokenProvider implementation. * @throws WeaviateOAuthException if an error occurred at any point while * obtaining a new token. */ - public static TokenProvider clientCredentials(OidcConfig oidc, String clientId, String clientSecret) { - final var provider = NimbusTokenProvider.clientCredentials(oidc, clientId, clientSecret); + public static TokenProvider clientCredentials(OidcConfig oidc, String clientSecret) { + final var provider = NimbusTokenProvider.clientCredentials(oidc, clientSecret); return reuse(null, provider, DEFAULT_EARLY_EXPIRY); } diff --git a/src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/NimbusTokenProvider.java b/src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/NimbusTokenProvider.java index 5ae7bc3ac..4bef50e71 100644 --- a/src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/NimbusTokenProvider.java +++ b/src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/NimbusTokenProvider.java @@ -55,15 +55,14 @@ public static NimbusTokenProvider resourceOwnerPassword(OidcConfig oidc, String * Create a TokenProvider that uses Client Credentials authorization grant. * * @param oidc OIDC config. - * @param clientId Client ID. * @param clientSecret Client secret. * * @return A new instance of NimbusTokenProvider. Instances are never cached. * @throws WeaviateOAuthException if an error occured at any point of the * exchange process. */ - public static NimbusTokenProvider clientCredentials(OidcConfig oidc, String clientId, String clientSecret) { - return new NimbusTokenProvider(oidc, Flow.clientCredentials(clientId, clientSecret)); + public static NimbusTokenProvider clientCredentials(OidcConfig oidc, String clientSecret) { + return new NimbusTokenProvider(oidc, Flow.clientCredentials(oidc.clientId(), clientSecret)); } private NimbusTokenProvider(OidcConfig oidc, Flow flow) {