From 3b4e6d886efaf9fdedf7de2a5d356ea7eea18617 Mon Sep 17 00:00:00 2001 From: Hector Castejon Diaz Date: Wed, 25 Feb 2026 10:17:21 +0000 Subject: [PATCH] Add tests for discoveryUrl OIDC endpoint resolution Adds tests covering: - DATABRICKS_DISCOVERY_URL env var is loaded into Config - getDatabricksOidcEndpoints() short-circuits to discoveryUrl when set The underlying implementation (discoveryUrl config field and getDatabricksOidcEndpoints() short-circuit) was already present in the Java SDK. Mirrors the Python SDK's get_endpoints_from_url() addition. --- .../sdk/core/DatabricksConfigTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/DatabricksConfigTest.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/DatabricksConfigTest.java index 7f8998008..f7b2d247b 100644 --- a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/DatabricksConfigTest.java +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/DatabricksConfigTest.java @@ -479,4 +479,36 @@ public void testGetHostMetadataRaisesOnHttpError() throws IOException { assertTrue(ex.getMessage().contains("Failed to fetch host metadata")); } } + + // --- discoveryUrl / OIDC endpoint tests --- + + @Test + public void testDiscoveryUrlFromEnv() { + Map env = new HashMap<>(); + env.put("DATABRICKS_DISCOVERY_URL", "https://custom.idp.example.com/oidc"); + DatabricksConfig config = new DatabricksConfig(); + config.resolve(new Environment(env, new ArrayList<>(), System.getProperty("os.name"))); + assertEquals("https://custom.idp.example.com/oidc", config.getDiscoveryUrl()); + } + + @Test + public void testDatabricksOidcEndpointsUsesDiscoveryUrl() throws IOException { + String discoveryUrlSuffix = "/oidc"; + String discoveryUrlResponse = + "{\"authorization_endpoint\":\"https://ws.databricks.com/oidc/v1/authorize\"," + + "\"token_endpoint\":\"https://ws.databricks.com/oidc/v1/token\"}"; + try (FixtureServer server = + new FixtureServer().with("GET", discoveryUrlSuffix, discoveryUrlResponse, 200)) { + String discoveryUrl = server.getUrl() + discoveryUrlSuffix; + OpenIDConnectEndpoints endpoints = + new DatabricksConfig() + .setHost(server.getUrl()) + .setDiscoveryUrl(discoveryUrl) + .setHttpClient(new CommonsHttpClient.Builder().withTimeoutSeconds(30).build()) + .getDatabricksOidcEndpoints(); + assertEquals( + "https://ws.databricks.com/oidc/v1/authorize", endpoints.getAuthorizationEndpoint()); + assertEquals("https://ws.databricks.com/oidc/v1/token", endpoints.getTokenEndpoint()); + } + } }