@Override public IdToken verifyIdToken(OAuth2Params params, String token) throws TokenVerifyException { MacSigner signer = new MacSigner(config.getClientSecret()); Map<String, Object> claims = signer.verify(token); SimpleIdToken idToken = new SimpleIdToken(token); idToken.setClientId((String)claims.get(JWT.CLAIM_AUDIENCE)); idToken.setUserId((String)claims.get(JWT.CLAIM_SUBJECT)); SimpleUserPrincipal user = new SimpleUserPrincipal(); user.setId(idToken.getUserId()); user.setName((String)claims.remove("name")); user.setLoginName((String)claims.remove("login_name")); user.setProperties(claims); idToken.setUserInfo(user); idToken.setClaims(claims); return idToken; }
protected AccessToken fetchAccessToken(HttpRequest request) { if(null != config.getClientId()){ request.addHeader(Headers.AUTHORIZATION, "Basic " + Base64.encode(config.getClientId()+":"+config.getClientSecret())); } HttpResponse response = request.send(); if(ContentTypes.APPLICATION_JSON_TYPE.isCompatible(response.getContentType())){ String content = response.getString(); log.debug("Received response : {}", content); JsonValue json = JSON.parse(content); if(!json.isMap()) { throw new OAuth2InternalServerException("Invalid response from auth server : not a json map"); }else{ Map<String, Object> map = json.asMap(); String error = (String)map.get("error"); if(Strings.isEmpty(error)) { return createAccessToken(map); }else{ throw new OAuth2InternalServerException("Auth server response error '" + error + "' : " + map.get("error_description")); } } }else{ throw new OAuth2InternalServerException("Invalid response from auth server"); } }
Base64.encode(config.getClientId()+":"+config.getClientSecret()));
Base64.encode(config.getClientId()+":"+config.getClientSecret()));