From aa085f5dc24ecb73e289bd2d16704c83d67561c8 Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Wed, 23 Apr 2025 15:13:10 +0000 Subject: [PATCH 1/7] Add IDTokenSource interface --- .../databricks/sdk/core/oauth/IDToken.java | 22 +++++++++++++++++++ .../sdk/core/oauth/IDTokenSource.java | 14 ++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java new file mode 100644 index 000000000..528dd684f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java @@ -0,0 +1,22 @@ +package com.databricks.sdk.core.oauth; + +/** + * Represents an ID Token provided by an identity provider from an OAuth flow. + * IDToken is a token that can be exchanged for an access token. + */ +public class IDToken { + // The string value of the ID Token + private final String value; + + /** + * Constructs an IDToken with a value. + * @param value The ID Token string. + */ + public IDToken(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java new file mode 100644 index 000000000..c7e605f2f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java @@ -0,0 +1,14 @@ +package com.databricks.sdk.core.oauth; + +/** + * IDTokenSource is anything that returns an IDToken given an audience. + */ +public interface IDTokenSource { + /** + * Retrieves an ID Token for the specified audience. + * + * @param audience The intended recipient of the ID Token. + * @return An {@link IDToken} containing the token value. + */ + IDToken getIDToken(String audience); +} \ No newline at end of file From 84e343ce85e209431b333e17a426bfa3444fe0a0 Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Wed, 23 Apr 2025 15:30:37 +0000 Subject: [PATCH 2/7] Minor comment change --- .../src/main/java/com/databricks/sdk/core/oauth/IDToken.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java index 528dd684f..a70a23e9a 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java @@ -2,7 +2,7 @@ /** * Represents an ID Token provided by an identity provider from an OAuth flow. - * IDToken is a token that can be exchanged for an access token. + * This token can later be exchanged for an access token. */ public class IDToken { // The string value of the ID Token From cf96f3abf306108bfccf3fc33ebbb532d91ec327 Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Wed, 23 Apr 2025 15:50:47 +0000 Subject: [PATCH 3/7] Add unit tests --- .../databricks/sdk/core/oauth/IDTokenTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java new file mode 100644 index 000000000..0e24f6a44 --- /dev/null +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java @@ -0,0 +1,15 @@ +package com.databricks.sdk.core.oauth; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +public class IDTokenTest { + + private static final String accessToken = "testIdToken"; + + @Test + void createIDToken() { + IDToken idToken = new IDToken(accessToken); + assertEquals(accessToken, idToken.getValue()); + } +} From 04fbc476bc05e7f2bb55d16eed2da3e51f3b0dd2 Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Thu, 24 Apr 2025 09:01:22 +0000 Subject: [PATCH 4/7] Correct formatting --- .../databricks/sdk/core/oauth/IDToken.java | 31 ++++++++++--------- .../sdk/core/oauth/IDTokenSource.java | 20 ++++++------ .../sdk/core/oauth/IDTokenTest.java | 13 ++++---- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java index a70a23e9a..65cc0ae07 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java @@ -1,22 +1,23 @@ package com.databricks.sdk.core.oauth; /** - * Represents an ID Token provided by an identity provider from an OAuth flow. - * This token can later be exchanged for an access token. + * Represents an ID Token provided by an identity provider from an OAuth flow. This token can later + * be exchanged for an access token. */ public class IDToken { - // The string value of the ID Token - private final String value; + // The string value of the ID Token + private final String value; - /** - * Constructs an IDToken with a value. - * @param value The ID Token string. - */ - public IDToken(String value) { - this.value = value; - } + /** + * Constructs an IDToken with a value. + * + * @param value The ID Token string. + */ + public IDToken(String value) { + this.value = value; + } - public String getValue() { - return value; - } -} \ No newline at end of file + public String getValue() { + return value; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java index c7e605f2f..667c27c0e 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDTokenSource.java @@ -1,14 +1,12 @@ package com.databricks.sdk.core.oauth; -/** - * IDTokenSource is anything that returns an IDToken given an audience. - */ +/** IDTokenSource is anything that returns an IDToken given an audience. */ public interface IDTokenSource { - /** - * Retrieves an ID Token for the specified audience. - * - * @param audience The intended recipient of the ID Token. - * @return An {@link IDToken} containing the token value. - */ - IDToken getIDToken(String audience); -} \ No newline at end of file + /** + * Retrieves an ID Token for the specified audience. + * + * @param audience The intended recipient of the ID Token. + * @return An {@link IDToken} containing the token value. + */ + IDToken getIDToken(String audience); +} diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java index 0e24f6a44..60de36b7c 100644 --- a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java @@ -1,15 +1,16 @@ package com.databricks.sdk.core.oauth; import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Test; public class IDTokenTest { - private static final String accessToken = "testIdToken"; + private static final String accessToken = "testIdToken"; - @Test - void createIDToken() { - IDToken idToken = new IDToken(accessToken); - assertEquals(accessToken, idToken.getValue()); - } + @Test + void createIDToken() { + IDToken idToken = new IDToken(accessToken); + assertEquals(accessToken, idToken.getValue()); + } } From bb678feebd8b11986e7f3797733af09bbb2f52a8 Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Thu, 24 Apr 2025 09:10:07 +0000 Subject: [PATCH 5/7] Trigger CI From 2fa269710f709a02f8efb509df056b80d641039b Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Thu, 24 Apr 2025 14:01:35 +0200 Subject: [PATCH 6/7] Update databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java Co-authored-by: Parth Bansal --- .../src/main/java/com/databricks/sdk/core/oauth/IDToken.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java index 65cc0ae07..627370605 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java @@ -14,6 +14,9 @@ public class IDToken { * @param value The ID Token string. */ public IDToken(String value) { + if (value == null || value.isEmpty()) { + throw new IllegalArgumentException("ID Token value cannot be null or empty"); + } this.value = value; } From 45f4fc2c48a38b0fc0a7bce634c2ea687264e92c Mon Sep 17 00:00:00 2001 From: emmyzhou-db Date: Thu, 24 Apr 2025 12:56:11 +0000 Subject: [PATCH 7/7] Add test for null --- .../main/java/com/databricks/sdk/core/oauth/IDToken.java | 7 ++++++- .../java/com/databricks/sdk/core/oauth/IDTokenTest.java | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java index 627370605..e9c3f1ac6 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/oauth/IDToken.java @@ -15,11 +15,16 @@ public class IDToken { */ public IDToken(String value) { if (value == null || value.isEmpty()) { - throw new IllegalArgumentException("ID Token value cannot be null or empty"); + throw new IllegalArgumentException("ID Token value cannot be null or empty"); } this.value = value; } + /** + * Returns the value of the ID Token. + * + * @return The string representation of the ID Token. + */ public String getValue() { return value; } diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java index 60de36b7c..dcfa805de 100644 --- a/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/core/oauth/IDTokenTest.java @@ -1,6 +1,7 @@ package com.databricks.sdk.core.oauth; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; @@ -9,8 +10,13 @@ public class IDTokenTest { private static final String accessToken = "testIdToken"; @Test - void createIDToken() { + void testIDTokenWithValue() { IDToken idToken = new IDToken(accessToken); assertEquals(accessToken, idToken.getValue()); } + + @Test + void testIDTokenWithNullValue() { + assertThrows(IllegalArgumentException.class, () -> new IDToken(null)); + } }