DRILL-8207: Fix Username Typo and password @JsonIgnore in JDBC SerDe (#2531)
diff --git a/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStorageConfig.java b/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStorageConfig.java
index 55753a2..0de6912 100644
--- a/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStorageConfig.java
+++ b/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStorageConfig.java
@@ -51,7 +51,7 @@
private final String driver;
private final String url;
private final boolean caseInsensitiveTableNames;
- private final Boolean writable;
+ private final boolean writable;
private final Map<String, Object> sourceParameters;
private final int writerBatchSize;
@@ -62,7 +62,7 @@
@JsonProperty("username") String username,
@JsonProperty("password") String password,
@JsonProperty("caseInsensitiveTableNames") boolean caseInsensitiveTableNames,
- @JsonProperty("writable") Boolean writable,
+ @JsonProperty("writable") boolean writable,
@JsonProperty("sourceParameters") Map<String, Object> sourceParameters,
@JsonProperty("credentialsProvider") CredentialsProvider credentialsProvider,
@JsonProperty("authMode") String authMode,
@@ -101,7 +101,6 @@
.orElse(null);
}
- @JsonIgnore
@JsonProperty("password")
public String getPassword() {
if (!directCredentials) {
@@ -163,7 +162,10 @@
@Override
public int hashCode() {
- return Objects.hash(driver, url, caseInsensitiveTableNames, sourceParameters, credentialsProvider, writable, writerBatchSize);
+ return Objects.hash(
+ driver, url, caseInsensitiveTableNames, sourceParameters,
+ credentialsProvider, writable, writerBatchSize, authMode
+ );
}
@Override
@@ -181,7 +183,8 @@
Objects.equals(writable, that.writable) &&
Objects.equals(sourceParameters, that.sourceParameters) &&
Objects.equals(credentialsProvider, that.credentialsProvider) &&
- Objects.equals(writerBatchSize, that.writerBatchSize);
+ Objects.equals(writerBatchSize, that.writerBatchSize) &&
+ Objects.equals(authMode, that.authMode);
}
@Override
@@ -194,6 +197,7 @@
.field("sourceParameters", sourceParameters)
.field("caseInsensitiveTableNames", caseInsensitiveTableNames)
.field("credentialProvider", credentialsProvider)
+ .field("authMode", authMode)
.toString();
}
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/security/CredentialProviderUtils.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/security/CredentialProviderUtils.java
index 33a4757..f42f057 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/security/CredentialProviderUtils.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/security/CredentialProviderUtils.java
@@ -35,13 +35,14 @@
if (credentialsProvider != null) {
return credentialsProvider;
}
- if (username == null) {
- return PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER;
- }
ImmutableMap.Builder<String, String> mapBuilder = ImmutableMap.builder();
- mapBuilder.put(UsernamePasswordCredentials.USERNAME, username);
- mapBuilder.put(UsernamePasswordCredentials.PASSWORD, password);
+ if (username != null) {
+ mapBuilder.put(UsernamePasswordCredentials.USERNAME, username);
+ }
+ if (password != null) {
+ mapBuilder.put(UsernamePasswordCredentials.PASSWORD, password);
+ }
return new PlainCredentialsProvider(mapBuilder.build());
}