繁体   English   中英

如何从 aws 秘密管理器在 spring mvc 项目中添加数据源属性

[英]How to add datasource properties in spring mvc project from aws secret manager

我一直在寻找从 aws 秘密管理器获取数据库配置属性的方法,但结果只显示了 spring boot。 我是 spring mvc 的新手,请建议我需要实施哪些步骤。

以下示例显示了如何从 aws 秘密管理器获取秘密值。 参考


添加以下依赖项:

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>secretsmanager</artifactId>
     <version>2.14.7</version>
 </dependency>

  <dependencyManagement>
            <dependencies>
                 <dependency>
                    <groupId>software.amazon.awssdk</groupId>
                    <artifactId>bom</artifactId>
                     <version>2.17.46</version>
                    <type>pom</type>
                </dependency>
    
            </dependencies>
    </dependencyManagement>

您可以在配置数据源时在 spring mvc 项目中使用以下组件。

config.properties

newSecretName= <Set the secret name>
secretValue= <Set the secret value>
modSecretValue= <Set an updated secret value>

演示

获取秘密值.java

 package com.example.secrets;
    
 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;

public class GetSecretValue {

    public static void main(String[] args) {

        final String USAGE = "\n" +
                "Usage:\n" +
                "    <secretName> \n\n" +
                "Where:\n" +
                "    secretName - the name of the secret (for example, tutorials/MyFirstSecret). \n";

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

        String secretName = args[0];
        Region region = Region.US_EAST_1;
        SecretsManagerClient secretsClient = SecretsManagerClient.builder()
                .region(region)
                .build();

        getValue(secretsClient, secretName);
        secretsClient.close();
    }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM