![](/img/trans.png)
[英]Fetch specific Secret value for a specific key in AWS Secrets Manager via Powershell
[英]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.