Example usage for org.springframework.security.oauth2.client DefaultOAuth2ClientContext setAccessToken

List of usage examples for org.springframework.security.oauth2.client DefaultOAuth2ClientContext setAccessToken

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.client DefaultOAuth2ClientContext setAccessToken.

Prototype

public void setAccessToken(OAuth2AccessToken accessToken) 

Source Link

Usage

From source file:org.glytoucan.admin.service.AuthService.java

/**
 * @param auth/*  ww  w.j  a  v  a  2  s. c om*/
 * @return
 * @throws UserException
 */
@Transactional
public ResponseMessage authenticate(Authentication auth) {
    System.out.println("user:>" + auth.getId());
    System.out.println("key:>" + auth.getApiKey());
    //    String id = auth.getId();

    ResponseMessage rm = new ResponseMessage();
    rm.setErrorCode(ErrorCode.AUTHENTICATION_SUCCESS.toString());
    try {
        //      if (StringUtils.contains(id, "@")) {
        //        id = userProcedure.getIdByEmail(id);
        //      }
        if (!userProcedure.checkApiKey(auth.getId(), auth.getApiKey())) {
            DefaultOAuth2AccessToken defToken = new DefaultOAuth2AccessToken(auth.getApiKey());
            DefaultOAuth2ClientContext defaultContext = new DefaultOAuth2ClientContext();
            defaultContext.setAccessToken(defToken);
            OAuth2RestOperations rest = new OAuth2RestTemplate(googleOAuth2Details(), defaultContext);
            UserInfo user = null;
            try {
                final ResponseEntity<UserInfo> userInfoResponseEntity = rest
                        .getForEntity("https://www.googleapis.com/oauth2/v2/userinfo", UserInfo.class);
                logger.debug("userInfo:>" + userInfoResponseEntity.toString());
                user = userInfoResponseEntity.getBody();
            } catch (HttpClientErrorException e) {
                logger.debug("oauth failed:>" + e.getMessage());
                rm.setErrorCode(ErrorCode.AUTHENTICATION_FAILURE.toString());
                rm.setMessage("oauth failed:>" + e.getMessage());
                return rm;
            }
            //        String idFromEmail = userProcedure.getIdByEmail(user.getEmail());
            if (!StringUtils.equals(user.getEmail(), auth.getId())) {
                rm.setErrorCode(ErrorCode.AUTHENTICATION_FAILURE.toString());
                rm.setMessage("id do not equal:>" + user.getEmail() + "<> " + auth.getId());
                return rm;
            }
        } else {
            return rm;
        }
    } catch (UserException e1) {
        rm.setErrorCode(ErrorCode.AUTHENTICATION_FAILURE.toString());
        rm.setMessage("rdf checks failed:>" + e1.getMessage());
        return rm;
    }

    return rm;
}