Example usage for com.amazonaws.services.cognitoidp.model GetUserResult getUsername

List of usage examples for com.amazonaws.services.cognitoidp.model GetUserResult getUsername

Introduction

In this page you can find the example usage for com.amazonaws.services.cognitoidp.model GetUserResult getUsername.

Prototype


public String getUsername() 

Source Link

Document

The user name of the user you wish to retrieve from the get user request.

Usage

From source file:com.kdgregory.example.cognito.servlets.ValidatedAction.java

License:Apache License

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String accessToken = null;/* w ww  . jav a2  s  . c  o  m*/
    String refreshToken = null;

    logger.debug("attempting validation");

    Cookie[] cookies = request.getCookies();
    if (cookies == null) {
        logger.warn("request from {} did not have cookies", request.getRemoteAddr());
        reportResult(response, Constants.ResponseMessages.NOT_LOGGED_IN);
        return;
    }

    for (Cookie cookie : cookies) {
        if (cookie.getName().equals(Constants.CookieNames.ACCESS_TOKEN))
            accessToken = cookie.getValue();
        if (cookie.getName().equals(Constants.CookieNames.REFRESH_TOKEN))
            refreshToken = cookie.getValue();
    }

    if (tokenCache.checkToken(accessToken)) {
        logger.debug("token was found in cache, not going to AWS");
        reportResult(response, Constants.ResponseMessages.LOGGED_IN);
        return;
    }

    try {
        GetUserRequest authRequest = new GetUserRequest().withAccessToken(accessToken);
        GetUserResult authResponse = cognitoClient.getUser(authRequest);

        logger.debug("successful validation for {}", authResponse.getUsername());
        tokenCache.addToken(accessToken);
        reportResult(response, Constants.ResponseMessages.LOGGED_IN);
    } catch (NotAuthorizedException ex) {
        if (ex.getErrorMessage().equals("Access Token has expired")) {
            attemptRefresh(refreshToken, response);
        } else {
            logger.warn("exception during validation: {}", ex.getMessage());
            reportResult(response, Constants.ResponseMessages.NOT_LOGGED_IN);
        }
    } catch (TooManyRequestsException ex) {
        logger.warn("caught TooManyRequestsException, delaying then retrying");
        ThreadUtil.sleepQuietly(250);
        doPost(request, response);
    }
}