AWS Cognito - Change User Password Programmatically using Java

  • Last updated Apr 25, 2024

To programmatically change a user password in Amazon Cognito using Java, follow these steps:

  1. Add AWS Java SDK For Amazon Cognito Identity Provider Service dependency to your project.
  2. Java Sample Code:
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.cognitoidp.AWSCognitoIdentityProvider;
import com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClientBuilder;
import com.amazonaws.services.cognitoidp.model.AdminSetUserPasswordRequest;

public class CognitoExample {

  public static void main(String args) {
    // AWS credentials
    String ACCESS_KEY = "AKIASI5XVTY2KVH46OND";
    String SECRET_KEY = "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";

    // Cognito credentials
    String userPoolId = "us-east-1_c174bztKi";

    // Test user data
    String email = "testbuddy@example.com";
    String newPassword = "Test123$";
    // New password is only required if the user status is FORCED_CHANGE_PASSWORD

    BasicAWSCredentials awsCreds = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);

    AWSCognitoIdentityProvider cognitoClient = AWSCognitoIdentityProviderClientBuilder.standard()
        .withCredentials(new AWSStaticCredentialsProvider(awsCreds)).withRegion("us-east-1")
        .build();

    AdminSetUserPasswordRequest adminSetUserPasswordRequest =
        new AdminSetUserPasswordRequest().withUsername(email).withUserPoolId(userPoolId)
            .withPassword(newPassword).withPermanent(true);
    cognitoClient.adminSetUserPassword(adminSetUserPasswordRequest);
  }

}