diff --git a/gateway-ha/src/main/java/io/trino/gateway/ha/security/LbOAuthManager.java b/gateway-ha/src/main/java/io/trino/gateway/ha/security/LbOAuthManager.java index e3cce668b..93a7f79ff 100644 --- a/gateway-ha/src/main/java/io/trino/gateway/ha/security/LbOAuthManager.java +++ b/gateway-ha/src/main/java/io/trino/gateway/ha/security/LbOAuthManager.java @@ -7,6 +7,7 @@ import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import io.trino.gateway.ha.config.OAuthConfiguration; @@ -132,7 +133,8 @@ public Optional> getClaimsFromIdToken(String idToken) { } @Data - private static final class OidcTokens { + @JsonIgnoreProperties(ignoreUnknown = true) + static final class OidcTokens { @JsonProperty private final String accessToken; diff --git a/gateway-ha/src/test/java/io/trino/gateway/ha/security/TestOidcToken.java b/gateway-ha/src/test/java/io/trino/gateway/ha/security/TestOidcToken.java new file mode 100644 index 000000000..213c492c7 --- /dev/null +++ b/gateway-ha/src/test/java/io/trino/gateway/ha/security/TestOidcToken.java @@ -0,0 +1,39 @@ +package io.trino.gateway.ha.security; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.trino.gateway.ha.security.LbOAuthManager.OidcTokens; +import lombok.extern.slf4j.Slf4j; +import org.testng.Assert; +import org.testng.annotations.Test; + +@Slf4j +public class TestOidcToken { + @Test + public void testOidcTokenParams() { + OidcTokens oidcTokens = null; + try { + ObjectMapper objectMapper = new ObjectMapper(); + + String jsonStr = "{\"id_token\" : \"ABC235234\", " + + "\"access_token\" : \"AcessABCD123\", " + + "\"refresh_token\" : \"RefreshTKN\", " + + "\"token_type\" : \"TOKENType\", " + + "\"expires_in\" : \"123456\", " + + "\"to_be_ignored\" : \"XYX123456\", " + + "\"scope\" : \"global\" " + + "}"; + + oidcTokens = objectMapper.readValue(jsonStr, OidcTokens.class); + } catch (JsonProcessingException ex) { + log.error(ex.getMessage()); + Assert.assertTrue(false); + } + + Assert.assertTrue(oidcTokens.getIdToken().equals("ABC235234")); + Assert.assertTrue(oidcTokens.getAccessToken().equals("AcessABCD123")); + Assert.assertTrue(oidcTokens.getRefreshToken().equals("RefreshTKN")); + Assert.assertTrue(oidcTokens.getExpiresIn().equals("123456")); + Assert.assertTrue(oidcTokens.getScope().equals("global")); + } +}