#java #amazon-web-services #amazon-cognito
#java #amazon-веб-сервисы #amazon-cognito
Вопрос:
Я пытаюсь получить атрибуты пользователя из cognito с помощью AdminGetUserRequest, ниже приведен мой код:
public class getUserDetails {
public static void main(String[] args) {
String app_client_id ="xxxxxxxxxxxx";
String app_client_secret ="xxxxxxxxxxx";
String user_pool_id ="xxxxxxxxx";
String region = "xxxxxxxxxx";
String AWS_ACCESS_KEY = "xxxxxxxxxx";
String AWS_SECRET_KEY = "xxxxxxxxxx";
AWSCredentials awsCreds = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY);
AWSCognitoIdentityProvider client = AWSCognitoIdentityProviderClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withRegion(region)
.build();
AdminGetUserRequest adminGetUserRequest = new AdminGetUserRequest()
.withUserPoolId(user_pool_id)
.withUsername("testUser");
try {
AdminGetUserResult adminGetUserResult = client.adminGetUser(adminGetUserRequest);
System.out.println(adminGetUserResult.getUserAttributes());
}catch (UserNotFoundException e) {
System.out.println("User not found");
}
}
}
Код работает нормально, и я получаю пользователя, но значения атрибутов указаны как отредактированные конфиденциальные данные. Результат, который я получаю, следующий
[{Name: sub,Value: ***Sensitive Data Redacted***}, {Name: email_verified,Value: ***Sensitive Data Redacted***}, {Name: email,Value: ***Sensitive Data Redacted***}]
Как мне отредактировать значения, перечисленные как конфиденциальные данные. У меня нет никаких токенов доступа, у меня просто есть имя пользователя для получения этих значений.
Ответ №1:
Я действительно считаю, что это просто реализация toString
метода по умолчанию https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/cognitoidp/model/AttributeType.html чтобы предотвратить непреднамеренное занесение конфиденциальных данных в журнал.
Попробуйте явно запросить getValue
, и я верю, что вы получите свое значение.