diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java index 88b269125baf..89a2b8b5cb8c 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java @@ -102,6 +102,8 @@ protected boolean removeEldestEntry(Map.Entry> eldes static final String OAUTH_REFRESH_TOKEN_PROPERTY_NAME = "OAuthRefreshToken"; static final String OAUTH_CLIENT_ID_PROPERTY_NAME = "OAuthClientId"; static final String OAUTH_CLIENT_SECRET_PROPERTY_NAME = "OAuthClientSecret"; + static final String DEFAULT_OAUTH_CLIENT_ID = "977385342095.apps.googleusercontent.com"; + static final String DEFAULT_OAUTH_CLIENT_SECRET = "wbER7576mc_1YOII0dGk7jEE"; static final String ENABLE_HTAPI_PROPERTY_NAME = "EnableHighThroughputAPI"; static final String PROXY_HOST_PROPERTY_NAME = "ProxyHost"; static final String PROXY_PORT_PROPERTY_NAME = "ProxyPort"; diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java index 9b38f2fed498..1c3344b9b6d1 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java @@ -960,7 +960,9 @@ public void setDestinationDatasetExpirationTime(long destinationDatasetExpiratio } public String getOAuthClientId() { - return oAuthClientId; + return oAuthClientId != null && !oAuthClientId.trim().isEmpty() + ? oAuthClientId + : BigQueryJdbcUrlUtility.DEFAULT_OAUTH_CLIENT_ID; } public void setOAuthClientId(String oAuthClientId) { @@ -968,7 +970,9 @@ public void setOAuthClientId(String oAuthClientId) { } public String getOAuthClientSecret() { - return oAuthClientSecret; + return oAuthClientSecret != null && !oAuthClientSecret.trim().isEmpty() + ? oAuthClientSecret + : BigQueryJdbcUrlUtility.DEFAULT_OAUTH_CLIENT_SECRET; } public void setOAuthClientSecret(String oAuthClientSecret) { diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java index adb7526cf6a5..f785173c00c1 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java @@ -218,6 +218,22 @@ public void testParseOAuthPropsForUserAuth() { assertThat(authProperties.get("OAuthClientSecret")).isEqualTo("secret"); } + @Test + public void testParseOAuthPropsForUserAuthDefault() { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + DataSource.fromUrl( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=1;ProjectId=MyBigQueryProject;"), + null); + + assertThat(authProperties.get("OAuthType")).isEqualTo("GOOGLE_USER_ACCOUNT"); + assertThat(authProperties.get("OAuthClientId")) + .isEqualTo(BigQueryJdbcUrlUtility.DEFAULT_OAUTH_CLIENT_ID); + assertThat(authProperties.get("OAuthClientSecret")) + .isEqualTo(BigQueryJdbcUrlUtility.DEFAULT_OAUTH_CLIENT_SECRET); + } + @Test public void testGenerateUserAuthURL() { try {