public boolean isRefreshToken(OAuth2AccessToken token) { return token.getAdditionalInformation().containsKey(ACCESS_TOKEN_ID); }
Map<String, Object> additionalInformation = token.getAdditionalInformation(); for (String key : additionalInformation.keySet()) { jgen.writeObjectField(key, additionalInformation.get(key));
vars.put("scope", OAuth2Utils.formatParameterList(accessToken.getScope())); Map<String, Object> additionalInformation = accessToken.getAdditionalInformation(); for (String key : additionalInformation.keySet()) { Object value = additionalInformation.get(key);
response.put(scopeAttribute, token.getScope()); if (token.getAdditionalInformation().containsKey(JTI)) { response.put(JTI, token.getAdditionalInformation().get(JTI)); response.putAll(token.getAdditionalInformation());
claims.put(JTI, token.getAdditionalInformation().get(JTI)); claims.putAll(token.getAdditionalInformation());
Map<String, Object> additionalInformation = token.getAdditionalInformation(); for (String key : additionalInformation.keySet()) { jgen.writeObjectField(key, additionalInformation.get(key));
Map<String, Object> additionalInformation = accessToken.getAdditionalInformation(); for (String key : additionalInformation.keySet()) { Object value = additionalInformation.get(key);
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) { DefaultOAuth2AccessToken result = new DefaultOAuth2AccessToken(accessToken); Map<String, Object> info = new LinkedHashMap<String, Object>(accessToken.getAdditionalInformation()); String tokenId = result.getValue(); if (!info.containsKey(TOKEN_ID)) { accessToken.getAdditionalInformation()); refreshTokenInfo.put(TOKEN_ID, encodedRefreshToken.getValue()); refreshTokenInfo.put(ACCESS_TOKEN_ID, tokenId);
@SuppressWarnings({"unchecked", "rawtypes"}) private void validateExternalAttributes(OAuth2AccessToken accessToken) { Map<String, String> extendedAttributes = (Map<String, String>) accessToken.getAdditionalInformation().get(ClaimConstants.EXTERNAL_ATTR); if (tokenEnhancer != null) { String atValue = accessToken.getValue().length() < 40 ? tokenSupport.tokens.get(accessToken.getValue()).getValue() : accessToken.getValue(); Map<String, Object> claims = JsonUtils.readValue(JwtHelper.decode(atValue).getClaims(), new TypeReference<Map<String, Object>>() { }); assertNotNull(claims.get("ext_attr")); assertEquals("test", ((Map) claims.get("ext_attr")).get("purpose")); assertNotNull(claims.get("ex_prop")); assertEquals("nz", ((Map) claims.get("ex_prop")).get("country")); assertThat((List<String>) claims.get("ex_groups"), containsInAnyOrder("admin", "editor")); } else { assertNull("External attributes should not exist", extendedAttributes); } }
/** * Copy constructor for access token. * * @param accessToken */ public DefaultOAuth2AccessToken(OAuth2AccessToken accessToken) { this(accessToken.getValue()); setAdditionalInformation(accessToken.getAdditionalInformation()); setRefreshToken(accessToken.getRefreshToken()); setExpiration(accessToken.getExpiration()); setScope(accessToken.getScope()); setTokenType(accessToken.getTokenType()); }
@Test public void testCreateAccessTokenAuthcodeGrantAdditionalAuthorizationAttributes() { AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, tokenSupport.requestedAuthScopes); authorizationRequest.setResourceIds(new HashSet<>(tokenSupport.resourceIds)); Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters()); azParameters.put(GRANT_TYPE, GRANT_TYPE_AUTHORIZATION_CODE); azParameters.put("authorities", "{\"az_attr\":{\"external_group\":\"domain\\\\group1\", \"external_id\":\"abcd1234\"}}"); authorizationRequest.setRequestParameters(azParameters); Authentication userAuthentication = tokenSupport.defaultUserAuthentication; OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(), userAuthentication); OAuth2AccessToken token = tokenServices.createAccessToken(authentication); this.assertCommonUserAccessTokenProperties(token, CLIENT_ID); assertThat(token, issuerUri(is(ISSUER_URI))); assertThat(token, scope(is(tokenSupport.requestedAuthScopes))); assertThat(token, validFor(is(60 * 60 * 12))); OAuth2RefreshToken refreshToken = token.getRefreshToken(); this.assertCommonUserRefreshTokenProperties(refreshToken); assertThat(refreshToken, OAuth2RefreshTokenMatchers.issuerUri(is(ISSUER_URI))); assertThat(refreshToken, OAuth2RefreshTokenMatchers.validFor(is(60 * 60 * 24 * 30))); this.assertCommonEventProperties(token, tokenSupport.userId, buildJsonString(tokenSupport.requestedAuthScopes)); Map<String, String> azMap = new LinkedHashMap<>(); azMap.put("external_group", "domain\\group1"); azMap.put("external_id", "abcd1234"); assertEquals(azMap, token.getAdditionalInformation().get("az_attr")); }
@Override public Map<String, Object> getAdditionalInformation() { return oAuth2AccessToken.getAdditionalInformation(); }
@Override public Map<String, Object> getAdditionalInformation() { return oAuth2AccessToken.getAdditionalInformation(); }
@SuppressWarnings("unchecked") private static <T> T getTokenProperty(OAuth2AccessToken token, String key) { Map<String, Object> additionalInformation = token.getAdditionalInformation(); return (T) additionalInformation.get(key); }
@SuppressWarnings("unchecked") private static <T> T getTokenProperty(OAuth2AccessToken token, String key) { Map<String, Object> additionalInformation = token.getAdditionalInformation(); return (T) additionalInformation.get(key); }
protected Response getResponse(OAuth2AccessToken accessToken) { if(accessToken != null && accessToken.getAdditionalInformation() != null) { if(accessToken.getAdditionalInformation().containsKey(OrcidOauth2Constants.TOKEN_VERSION)) accessToken.getAdditionalInformation().remove(OrcidOauth2Constants.TOKEN_VERSION); if(accessToken.getAdditionalInformation().containsKey(OrcidOauth2Constants.PERSISTENT)) accessToken.getAdditionalInformation().remove(OrcidOauth2Constants.PERSISTENT); if(accessToken.getAdditionalInformation().containsKey(OrcidOauth2Constants.DATE_CREATED)) accessToken.getAdditionalInformation().remove(OrcidOauth2Constants.DATE_CREATED); if(accessToken.getAdditionalInformation().containsKey(OrcidOauth2Constants.TOKEN_ID)) accessToken.getAdditionalInformation().remove(OrcidOauth2Constants.TOKEN_ID); } return Response.ok((DefaultOAuth2AccessToken)accessToken).header("Cache-Control", "no-store").header("Pragma", "no-cache").build(); }
public static Claims createFrom(ObjectMapper jsonMapper, OAuth2AccessToken accessToken) { try { String idToken = accessToken.getAdditionalInformation().get("id_token").toString(); Jwt decodedToken = JwtHelper.decode(idToken); return jsonMapper.readValue(decodedToken.getClaims(), Claims.class); } catch (IOException e) { throw new RuntimeException(e); } }
public static Claims createFrom(ObjectMapper jsonMapper, OAuth2AccessToken accessToken) { try { String idToken = accessToken.getAdditionalInformation().get("id_token").toString(); Jwt decodedToken = JwtHelper.decode(idToken); return jsonMapper.readValue(decodedToken.getClaims(), Claims.class); } catch (IOException e) { throw new RuntimeException(e); } }
@Override public OAuth2AccessToken createAccessToken(OAuth2Authentication authentication) throws AuthenticationException { OAuth2AccessToken token = super.createAccessToken(authentication); Account account = (Account) authentication.getPrincipal(); String jti = (String) token.getAdditionalInformation().get("jti"); blackListService.addToEnabledList( account.getId(), jti, token.getExpiration().getTime() ); return token; }
/** * Copy constructor for access token. * * @param accessToken */ public DefaultOAuth2AccessToken(OAuth2AccessToken accessToken) { this(accessToken.getValue()); setAdditionalInformation(accessToken.getAdditionalInformation()); setRefreshToken(accessToken.getRefreshToken()); setExpiration(accessToken.getExpiration()); setScope(accessToken.getScope()); setTokenType(accessToken.getTokenType()); }