Skip to content

Commit

Permalink
0004892: NPE from checking parameter meta data
Browse files Browse the repository at this point in the history
  • Loading branch information
erilong committed Mar 15, 2021
1 parent 745e9de commit 754ca32
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 13 deletions.
Expand Up @@ -13,7 +13,6 @@
import org.jumpmind.db.model.Table;
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.db.util.BinaryEncoding;
import org.jumpmind.properties.DefaultParameterParser.ParameterMetaData;
import org.jumpmind.security.ISecurityService;
import org.jumpmind.security.SecurityConstants;
import org.jumpmind.symmetric.SymmetricException;
Expand Down Expand Up @@ -101,10 +100,8 @@ public CloudBulkDatabaseWriter(IDatabasePlatform symmetricPlatform,
this.s3Bucket = parameterService.getString(ParameterConstants.CLOUD_BULK_LOAD_S3_BUCKET);
this.s3AccessKey = parameterService.getString(ParameterConstants.CLOUD_BULK_LOAD_S3_ACCESS_KEY);

Map<String, ParameterMetaData> metaDataMap = ParameterConstants.getParameterMetaData();
ParameterMetaData secretKeyMetaData = metaDataMap.get(ParameterConstants.CLOUD_BULK_LOAD_S3_SECRET_KEY);
String secretKey = parameterService.getString(ParameterConstants.CLOUD_BULK_LOAD_S3_SECRET_KEY);
if (secretKeyMetaData.isEncryptedType() && secretKey.startsWith(SecurityConstants.PREFIX_ENC)) {
if (secretKey != null && secretKey.startsWith(SecurityConstants.PREFIX_ENC)) {
secretKey = securityService.decrypt(secretKey.substring(SecurityConstants.PREFIX_ENC.length()));
}
this.s3SecretKey = secretKey;
Expand All @@ -116,9 +113,8 @@ public CloudBulkDatabaseWriter(IDatabasePlatform symmetricPlatform,
this.azureAccountKey = parameterService.getString(ParameterConstants.CLOUD_BULK_LOAD_AZURE_ACCOUNT_KEY);
this.azureBlobContainer = parameterService.getString(ParameterConstants.CLOUD_BULK_LOAD_AZURE_BLOB_CONTAINER, "symmetricds");

ParameterMetaData tokenMetaData = metaDataMap.get(ParameterConstants.CLOUD_BULK_LOAD_AZURE_SAS_TOKEN);
String token = parameterService.getString(ParameterConstants.CLOUD_BULK_LOAD_AZURE_SAS_TOKEN);
if (tokenMetaData.isEncryptedType() && token.startsWith(SecurityConstants.PREFIX_ENC)) {
if (token != null && token.startsWith(SecurityConstants.PREFIX_ENC)) {
token = securityService.decrypt(token.substring(SecurityConstants.PREFIX_ENC.length()));
}
this.azureSasToken = token;
Expand Down
Expand Up @@ -31,7 +31,6 @@
import org.jumpmind.db.model.Table;
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.db.sql.JdbcSqlTransaction;
import org.jumpmind.properties.DefaultParameterParser.ParameterMetaData;
import org.jumpmind.security.ISecurityService;
import org.jumpmind.security.SecurityConstants;
import org.jumpmind.symmetric.common.ParameterConstants;
Expand Down Expand Up @@ -78,10 +77,8 @@ public RedshiftBulkDatabaseWriter(IDatabasePlatform symmetricPlatform, IDatabase
super.s3AccessKey = parameterService.getString(ParameterConstants.REDSHIFT_BULK_LOAD_S3_ACCESS_KEY);
}

ParameterMetaData secretKeyMetaData = ParameterConstants.getParameterMetaData()
.get(ParameterConstants.REDSHIFT_BULK_LOAD_S3_SECRET_KEY);
String secretKey = parameterService.getString(ParameterConstants.REDSHIFT_BULK_LOAD_S3_SECRET_KEY);
if (secretKeyMetaData.isEncryptedType() && secretKey.startsWith(SecurityConstants.PREFIX_ENC)) {
if (secretKey != null && secretKey.startsWith(SecurityConstants.PREFIX_ENC)) {
secretKey = securityService.decrypt(secretKey.substring(SecurityConstants.PREFIX_ENC.length()));
}
if (StringUtils.isNotBlank(secretKey)) {
Expand Down
Expand Up @@ -35,7 +35,6 @@

import org.apache.commons.lang3.StringUtils;
import org.jumpmind.properties.TypedProperties;
import org.jumpmind.properties.DefaultParameterParser.ParameterMetaData;
import org.jumpmind.security.ISecurityService;
import org.jumpmind.security.SecurityConstants;
import org.jumpmind.symmetric.common.ParameterConstants;
Expand Down Expand Up @@ -67,9 +66,8 @@ public String sendEmail(String subject, String text, String toRecipients) {
}

public String sendEmail(String subject, String text, String toRecipients, String ccRecipients, String bccRecipients) {
ParameterMetaData passwordMetaData = ParameterConstants.getParameterMetaData().get(ParameterConstants.SMTP_PASSWORD);
String password = parameterService.getString(ParameterConstants.SMTP_PASSWORD);
if (passwordMetaData.isEncryptedType() && password.startsWith(SecurityConstants.PREFIX_ENC)) {
if (password != null && password.startsWith(SecurityConstants.PREFIX_ENC)) {
password = securityService.decrypt(password.substring(SecurityConstants.PREFIX_ENC.length()));
}
return sendEmail(subject, text, toRecipients, ccRecipients, bccRecipients, getJavaMailProperties(),
Expand Down

0 comments on commit 754ca32

Please sign in to comment.