Example usage for com.amazonaws.services.identitymanagement AmazonIdentityManagementClient deleteUser

List of usage examples for com.amazonaws.services.identitymanagement AmazonIdentityManagementClient deleteUser

Introduction

In this page you can find the example usage for com.amazonaws.services.identitymanagement AmazonIdentityManagementClient deleteUser.

Prototype

@Override
public DeleteUserResult deleteUser(DeleteUserRequest request) 

Source Link

Document

Deletes the specified IAM user.

Usage

From source file:ch.cyberduck.core.iam.AmazonIdentityConfiguration.java

License:Open Source License

@Override
public void delete(final String username, final LoginCallback prompt) throws BackgroundException {
    if (log.isInfoEnabled()) {
        log.info(String.format("Delete user %s", username));
    }//from   ww  w.ja va 2s. com
    this.authenticated(new Authenticated<Void>() {
        @Override
        public Void call() throws BackgroundException {
            PreferencesFactory.get().deleteProperty(String.format("%s%s", prefix, username));
            // Create new IAM credentials
            final AmazonIdentityManagementClient client = new AmazonIdentityManagementClient(
                    new com.amazonaws.auth.AWSCredentials() {
                        @Override
                        public String getAWSAccessKeyId() {
                            return host.getCredentials().getUsername();
                        }

                        @Override
                        public String getAWSSecretKey() {
                            return host.getCredentials().getPassword();
                        }
                    }, configuration);
            try {
                final ListAccessKeysResult keys = client
                        .listAccessKeys(new ListAccessKeysRequest().withUserName(username));

                for (AccessKeyMetadata key : keys.getAccessKeyMetadata()) {
                    if (log.isDebugEnabled()) {
                        log.debug(String.format("Delete access key %s for user %s", key, username));
                    }
                    client.deleteAccessKey(new DeleteAccessKeyRequest(username, key.getAccessKeyId()));
                }

                final ListUserPoliciesResult policies = client
                        .listUserPolicies(new ListUserPoliciesRequest(username));
                for (String policy : policies.getPolicyNames()) {
                    if (log.isDebugEnabled()) {
                        log.debug(String.format("Delete policy %s for user %s", policy, username));
                    }
                    client.deleteUserPolicy(new DeleteUserPolicyRequest(username, policy));
                }
                client.deleteUser(new DeleteUserRequest(username));
            } catch (NoSuchEntityException e) {
                log.warn(String.format("User %s already removed", username));
            } catch (AmazonClientException e) {
                throw new AmazonServiceExceptionMappingService().map("Cannot write user configuration", e);
            } finally {
                client.shutdown();
            }
            return null;
        }
    }, prompt);
}

From source file:org.applicationMigrator.userManagement.UserManagementWorker.java

License:Apache License

private void createUser(String ANDROID_ID) throws FileNotFoundException, IllegalArgumentException, IOException {
    Random randomizer = new Random(System.currentTimeMillis());
    String userName = "User" + randomizer.nextDouble();
    CreateUserRequest user = new CreateUserRequest();
    user.setUserName(userName);//from w w w . ja  v a 2  s .  c  o  m
    AWSCredentials credentials = new PropertiesCredentials(
            new File("C:\\AndroidMigration\\Credentials\\AwsCredentials.properties"));
    AmazonIdentityManagementClient client = new AmazonIdentityManagementClient(credentials);
    CreateUserResult result = null;
    AccessKey accessKey = null;
    try {

        boolean userCreatedSuccessfully = false;
        while (!userCreatedSuccessfully) {
            try {
                result = client.createUser(user);
                userCreatedSuccessfully = true;
            } catch (EntityAlreadyExistsException exception) {
                user.setUserName(userName + randomizer.nextDouble());
                userCreatedSuccessfully = false;
            }
        }

        CreateAccessKeyRequest accessKeyRequest = new CreateAccessKeyRequest();
        accessKeyRequest.setUserName(result.getUser().getUserName());
        CreateAccessKeyResult accessKeyResult = client.createAccessKey(accessKeyRequest);
        accessKey = accessKeyResult.getAccessKey();

        grantPermissions(user, client);

        File userList = new File(USER_LIST_FILEPATH);
        BufferedWriter userListFileWriter = new BufferedWriter(new FileWriter(userList));

        // Concurrency ?
        userListFileWriter.write(ANDROID_ID + " ");
        userListFileWriter.write(accessKey.getAccessKeyId() + " ");
        userListFileWriter.write(accessKey.getSecretAccessKey() + " ");
        userListFileWriter.write(user.getUserName() + " ");
        userListFileWriter.close();
    } catch (Exception e) {
        if (accessKey != null) {
            DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest(
                    accessKey.getAccessKeyId());
            deleteAccessKeyRequest.setUserName(user.getUserName());
            client.deleteAccessKey(deleteAccessKeyRequest);
            DeleteUserRequest deleteUserRequest = new DeleteUserRequest(user.getUserName());

            client.deleteUser(deleteUserRequest);
        }
        throw e;
    }
}