簡體   English   中英

如何檢索 AWS Secrets Manager 密鑰的特定值?

[英]How do retrieve the specific value of an AWS Secrets Manager secret?

我有這個 java 代碼,可以從秘密中檢索值:

public class fetchSecrets {
    public static void main(String[] args) {
        String secretId = "test";
        SecretsManagerClient secretsClient = SecretsManagerClient.builder()
                .region(Region.EU_WEST_1)
                .build();
        fetchPassword(secretsClient, secretId);
        secretsClient.close();
    }

    public static void fetchPassword(SecretsManagerClient secretsClient, String secretId) {
        try {
            GetSecretValueRequest valueRequest = GetSecretValueRequest.builder()
                .secretId(secretId)
                .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);
        }
    }
}

當我運行這段代碼時,我得到:

{"username":"test","password":"password123456"}

我如何 output只有密碼或用戶名密鑰的值?

所以預期 output 是例如password123456

我建議執行以下操作:首先,創建一個名為 User 的 class,如下所示:

public class User {

    private String username;
    private String  password;

    //setter
    void setUsername(String username) {
        this.username = username;
    }

    void setPassword(String password) {
        this.password = password;
    }

    //getter
    String getUsername(){
        return this.username;
    }

    String getPassword(){
        return this.password;
    }
}

然后你可以像這樣找回密碼:

User user = gson.fromJson(secret , User.class);
System.out.println(user.getPassword());

結果我必須創建一個 json object 並傳入字符串以提取其值:

try {
    GetSecretValueRequest request = GetSecretValueRequest.builder()
           .secretId(secretId)
           .build();

    GetSecretValueResponse valueResponse = secretsClient.getSecretValue(request);
    String secret = valueResponse.secretString();

    //defining a JSON string     
    Object obj = JSONValue.parse(secret); 
   
    //creating an object of JSONObject class
    //and casting the object into JSONObject type  
    JSONObject jsonObject = (JSONObject) obj;   
 
    //getting values form the JSONObject
    //and casting that values into corresponding types  
    String username = (String) jsonObject.get("username");    

    //printing the values   
    System.out.println(username); 

} catch (SecretsManagerException e) {
    System.err.println(e.awsErrorDetails().errorMessage());
    System.exit(1);
}

Output: password123456 123456

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM