Skip to content

Commit 689761f

Browse files
authored
Fixing error messages to not leak sensitive info (#3008)
1 parent 73b25fe commit 689761f

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

athena-snowflake/src/main/java/com/amazonaws/athena/connectors/snowflake/SnowflakeCredentialsProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import com.amazonaws.athena.connector.credentials.CredentialsProvider;
2323
import com.amazonaws.athena.connector.credentials.DefaultCredentials;
24+
import com.amazonaws.athena.connector.lambda.exceptions.AthenaConnectorException;
2425
import com.amazonaws.athena.connector.lambda.security.CachableSecretsManager;
2526
import com.amazonaws.athena.connectors.snowflake.utils.SnowflakeAuthType;
2627
import com.amazonaws.athena.connectors.snowflake.utils.SnowflakeAuthUtils;
@@ -29,6 +30,8 @@
2930
import com.google.common.annotations.VisibleForTesting;
3031
import org.slf4j.Logger;
3132
import org.slf4j.LoggerFactory;
33+
import software.amazon.awssdk.services.glue.model.ErrorDetails;
34+
import software.amazon.awssdk.services.glue.model.FederationSourceErrorCode;
3235
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
3336
import software.amazon.awssdk.utils.Validate;
3437

@@ -261,7 +264,8 @@ private ObjectNode requestToken(String requestBody, String tokenEndpoint, String
261264
.reduce("", (acc, line) -> acc + line);
262265

263266
if (responseCode != 200) {
264-
throw new RuntimeException("Failed: " + responseCode + " - " + response);
267+
LOGGER.error("OAuth token request failed with status: {} - {}", responseCode, response);
268+
throw new AthenaConnectorException("OAuth authentication failed with status: " + responseCode, ErrorDetails.builder().errorCode(FederationSourceErrorCode.INVALID_RESPONSE_EXCEPTION.toString()).build());
265269
}
266270

267271
ObjectNode tokenJson = objectMapper.readValue(response, ObjectNode.class);

athena-snowflake/src/main/java/com/amazonaws/athena/connectors/snowflake/utils/SnowflakeAuthUtils.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package com.amazonaws.athena.connectors.snowflake.utils;
2121

22+
import com.amazonaws.athena.connector.lambda.exceptions.AthenaConnectorException;
2223
import com.amazonaws.athena.connectors.snowflake.SnowflakeConstants;
2324
import org.apache.commons.lang3.StringUtils;
2425
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
@@ -30,6 +31,8 @@
3031
import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo;
3132
import org.slf4j.Logger;
3233
import org.slf4j.LoggerFactory;
34+
import software.amazon.awssdk.services.glue.model.ErrorDetails;
35+
import software.amazon.awssdk.services.glue.model.FederationSourceErrorCode;
3336

3437
import java.io.StringReader;
3538
import java.security.PrivateKey;
@@ -105,8 +108,8 @@ public static PrivateKey createPrivateKey(String privateKeyString, String passph
105108
return converter.getPrivateKey(privateKeyInfo);
106109
}
107110
catch (Exception e) {
108-
LOGGER.error("Failed to create private key from string: ", e);
109-
throw new Exception("Invalid private key format: " + e.getMessage(), e);
111+
LOGGER.error("Private key parsing failed: {}", e.getMessage());
112+
throw new AthenaConnectorException("Invalid private key format", ErrorDetails.builder().errorCode(FederationSourceErrorCode.INVALID_INPUT_EXCEPTION.toString()).build());
110113
}
111114
}
112115

0 commit comments

Comments
 (0)