in src/main/java/com/amazonaws/lambda/oracle/starter/SecretsManagerUtil.java [36:71]
public String getSecretUsingSecretsManager(String region, String secretName) {
String secret = null;
GetSecretValueResult getSecretValueResult = null;
AWSSecretsManager client = AWSSecretsManagerClientBuilder.standard().withRegion(region).build();
GetSecretValueRequest getSecretValueRequest = new GetSecretValueRequest().withSecretId(secretName);
try {
getSecretValueResult = client.getSecretValue(getSecretValueRequest);
// Decrypts secret using the associated KMS CMK. Depending on whether the secret
// is a string or binary, one of these fields will be populated.
if (getSecretValueResult.getSecretString() != null) {
secret = getSecretValueResult.getSecretString();
} else {
secret = new String(Base64.getDecoder().decode(getSecretValueResult.getSecretBinary()).array());
}
} catch (DecryptionFailureException e) {
// Secrets Manager can't decrypt the protected secret text using the provided
// KMS key.
e.printStackTrace();
} catch (InternalServiceErrorException e) {
// An error occurred on the server side.
e.printStackTrace();
} catch (InvalidParameterException e) {
// You provided an invalid value for a parameter.
e.printStackTrace();
} catch (InvalidRequestException e) {
// You provided a parameter value that is not valid for the current state of the
// resource.
e.printStackTrace();
} catch (ResourceNotFoundException e) {
// We can't find the resource that you asked for.
e.printStackTrace();
System.out.println("No database credentials found with the provided secret name which is: " + secretName);
}
return secret;
}