From 46034222b2a63d0e06b5590a1bc5e6e903477501 Mon Sep 17 00:00:00 2001 From: dyma solovei Date: Wed, 6 Aug 2025 17:09:18 +0200 Subject: [PATCH 01/31] feat: implement BearerToken OIDC flow This is a large chagne that requester modifying some internals: - Extended Endpoint interface with requesturl overload that takes RestTransportOptions and builds a full request URL instead of leaving it up to DefaultRestTrasport - Added ExternalEndpoint that allows sending REST requests to arbitrary URIs. - Added a thin wrapper around Nimbus OAuth2 SDK to refresh tokens. - Made Authorization an interface that can getTokenProvider(). --- pom.xml | 1 + .../client6/v1/api/Authorization.java | 19 ++- .../io/weaviate/client6/v1/api/Config.java | 28 +++-- .../client6/v1/api/WeaviateClient.java | 16 ++- .../io/weaviate/client6/v1/internal/Flow.java | 3 + .../v1/internal/ReuseTokenProvider.java | 20 ++++ .../client6/v1/internal/TokenProvider.java | 28 ++++- .../client6/v1/internal/oidc/OidcConfig.java | 18 +++ .../client6/v1/internal/oidc/OidcUtils.java | 57 +++++++++ .../internal/oidc/nimbus/BearerTokenFlow.java | 27 +++++ .../client6/v1/internal/oidc/nimbus/Flow.java | 14 +++ .../oidc/nimbus/NimbusTokenProvider.java | 108 ++++++++++++++++++ .../internal/rest/DefaultRestTransport.java | 11 +- .../client6/v1/internal/rest/Endpoint.java | 4 + .../v1/internal/rest/EndpointBase.java | 2 +- .../v1/internal/rest/ExternalEndpoint.java | 23 ++++ .../v1/internal/rest/RestTransport.java | 2 + .../v1/internal/rest/SimpleEndpoint.java | 14 +++ .../client6/v1/api/AuthorizationTest.java | 23 +++- 19 files changed, 392 insertions(+), 26 deletions(-) create mode 100644 src/main/java/io/weaviate/client6/v1/internal/Flow.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/ReuseTokenProvider.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/oidc/OidcConfig.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/oidc/OidcUtils.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/BearerTokenFlow.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/Flow.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/oidc/nimbus/NimbusTokenProvider.java create mode 100644 src/main/java/io/weaviate/client6/v1/internal/rest/ExternalEndpoint.java diff --git a/pom.xml b/pom.xml index bc4980990..c3175b555 100644 --- a/pom.xml +++ b/pom.xml @@ -244,6 +244,7 @@ maven-surefire-plugin 2.22.2 + false