private void uncacheRevokedToken(Map<String, Object> data) { String token = data.get(OAuthTokenRevocationAttempt.TOKEN.getName()).toString(); int signatureIndex = token.lastIndexOf('.'); if (signatureIndex <= 0) { return; } Object typeObject = data.get(OAuthTokenRevocationAttempt.TOKEN_TYPE_HINT.getName()); String tokenTypeHint = null; if (typeObject instanceof String) { tokenTypeHint = typeObject.toString(); } try { String nonSignedToken = token.substring(0, signatureIndex + 1); Jwt<Header, Claims> jwt = Jwts.parser().parseClaimsJwt(nonSignedToken); Object stt = jwt.getHeader().get("stt"); String rti = null; Claims body = jwt.getBody(); if ("refresh".equals(stt) || "refresh_token".equals(tokenTypeHint)) { rti = body.getId(); } else if ("access".equals(stt) || "access_token".equals(tokenTypeHint)) { rti = body.get("rti", String.class); } if (rti != null) { String href = baseUrlResolver.getBaseUrl() + "/refreshTokens/" + rti; uncache(href, RefreshToken.class); } } catch (Exception e) {//ignored } }
private void uncacheRevokedToken(Map<String, Object> data) { String token = data.get(OAuthTokenRevocationAttempt.TOKEN.getName()).toString(); int signatureIndex = token.lastIndexOf('.'); if (signatureIndex <= 0) { return; } Object typeObject = data.get(OAuthTokenRevocationAttempt.TOKEN_TYPE_HINT.getName()); String tokenTypeHint = null; if (typeObject instanceof String) { tokenTypeHint = typeObject.toString(); } try { String nonSignedToken = token.substring(0, signatureIndex + 1); Jwt<Header, Claims> jwt = Jwts.parser().parseClaimsJwt(nonSignedToken); Object stt = jwt.getHeader().get("stt"); String rti = null; Claims body = jwt.getBody(); if ("refresh".equals(stt) || "refresh_token".equals(tokenTypeHint)) { rti = body.getId(); } else if ("access".equals(stt) || "access_token".equals(tokenTypeHint)) { rti = body.get("rti", String.class); } if (rti != null) { String href = baseUrlResolver.getBaseUrl() + "/refreshTokens/" + rti; uncache(href, RefreshToken.class); } } catch (Exception e) {//ignored } }