Alexander Bishop
Alexander Bishop

Reputation: 109

Java not finding secretmanager with aws sdk installed?

So I have installed AWS into my project with Gradle. When I go to import it in my Java project i get to import com.amazonaws.services. and the IDE then shows a list of options but secretmanager is not on that list. If I add it then it doesn't work as well, just giving me an error that it doesn't exist.

This is how I installed it in gradle as well:

dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile('com.amazonaws:aws-java-sdk:1.11.717') }

Upvotes: 2

Views: 4160

Answers (1)

smac2020
smac2020

Reputation: 10704

You can find SecretManager V2 examples in the Github repo [0]. If you are using SecretManager Java API, its highly recommended that you move to V2.

0 - https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/example_code/secretsmanager/src/main/java/com/example/secrets

I am using Maven and setting the POM and there is no issues.

For example, the following code shows how to get the secret value.

package com.example.secrets;

//snippet-start:[secretsmanager.java2.get_secret.import]
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
//snippet-end:[secretsmanager.java2.get_secret.import]

public class GetSecretValue {

    public static void main(String[] args) {

        final String USAGE = "\n" +
                "To run this example, supply the name of the secret (for example, tutorials/MyFirstSecret).  \n" +
                "\n" +
                "Example: GetSecretValue <secretName>\n";

        if (args.length < 1) {
            System.out.println(USAGE);
            System.exit(1);
        }

        /* Read the name from command args */
        String secretName = args[0];

        Region region = Region.US_EAST_1;
        SecretsManagerClient secretsClient = SecretsManagerClient.builder()
                .region(region)
                .build();

        getValue(secretsClient, secretName);
    }

    //snippet-start:[secretsmanager.java2.get_secret.main]
    public static void getValue(SecretsManagerClient secretsClient,String secretName) {

        try {
            GetSecretValueRequest valueRequest = GetSecretValueRequest.builder()
                .secretId(secretName)
                .build();

            GetSecretValueResponse valueResponse = secretsClient.getSecretValue(valueRequest);
            String secret = valueResponse.secretString();
            System.out.println(secret);

        } catch (SecretsManagerException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
    //snippet-end:[secretsmanager.java2.get_secret.main]
}

Upvotes: 2

Related Questions