public void readSecretsFromSecretManager()

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);
            }
        }
    }