in code/src/main/java/Config.java [125:207]
public void readSecretsFromSecretManager()
{
if (destination_name == null) {
System.out.println("Downloading config from AWS Secrets Manager: " + secret_key);
final com.amazonaws.services.secretsmanager.AWSSecretsManager client = AWSSecretsManagerClientBuilder.standard().build();
String secret = null;
final com.amazonaws.services.secretsmanager.model.GetSecretValueRequest getSecretValueRequest =
new com.amazonaws.services.secretsmanager.model.GetSecretValueRequest().withSecretId(secret_key);
com.amazonaws.services.secretsmanager.model.GetSecretValueResult getSecretValueResult = null;
try {
getSecretValueResult = client.getSecretValue(getSecretValueRequest);
if (getSecretValueResult.getSecretString() != null) {
secret = getSecretValueResult.getSecretString();
if(debug)
System.out.println(secret);
}
final org.json.JSONObject obj = new JSONObject(secret);
System.out.println();
System.out.println("Found destination " + obj.getString("name"));
System.out.println();
final Properties connectProperties = new Properties();
destination_name = obj.getString("name");
connectProperties.setProperty(DestinationDataProvider.JCO_DEST, obj.getString("name"));
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, obj.getString("client"));
connectProperties.setProperty(DestinationDataProvider.JCO_USER, obj.getString("user"));
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, obj.getString("password"));
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, obj.getString("language"));
if(obj.has("mshost") && obj.has("msport") && obj.has("group"))
{
System.out.println("Connect via SAP Message Server!");
connectProperties.setProperty(DestinationDataProvider.JCO_MSHOST, obj.getString("mshost"));
connectProperties.setProperty(DestinationDataProvider.JCO_MSSERV, obj.getString("msport"));
connectProperties.setProperty(DestinationDataProvider.JCO_GROUP, obj.getString("group"));
}
else
{
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, obj.getString("host"));
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, obj.getString("sys_id"));
}
username = obj.getString("user");
sdfmon_name = obj.getString("/SDF/SMON_DESC");
Integer sdfmon_schedule_tmp = obj.getInt("/SDF/SMON_SCHEDULE");
if (sdfmon_schedule_tmp == 0) {
sdfmon_schedule = false;
} else {
sdfmon_schedule = true;
}
if(obj.has("we02"))
{
Integer we02_tmp = obj.getInt("we02");
if (we02_tmp == 1)
we02 = true;
}
final PropertiesDestinationDataProvider pddp = new PropertiesDestinationDataProvider(connectProperties);
if (reset && com.sap.conn.jco.ext.Environment.isDestinationDataProviderRegistered() && pddp_old != null) {
com.sap.conn.jco.ext.Environment.unregisterDestinationDataProvider(pddp_old);
reset = false;
}
com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(pddp);
pddp_old = pddp;
} catch (final Exception e) {
throw new RuntimeException("Configuration '" + secret_key + "' not found or invalid! Please check AWS Secret Manager! "+e);
}
}
}