@Override public RTResponse processRTRequest(RTRequest rtRequest) { AccessToken accessToken = rtRequest.getAccessToken(); RefreshToken refreshToken = rtRequest.getRefreshToken(); if (refreshToken == null) { throw new GeneralException("Error: There is no refresh token, so it is not possible to refresh it."); } String raw = getRTResponse(getAddress(), refreshToken, rtRequest.getClient()); JSONObject json = getAndCheckResponse(raw); String returnedAT = json.getString(OA2Constants.ACCESS_TOKEN); if (accessToken.getToken().equals(returnedAT)) { throw new IllegalArgumentException("Error: The returned access token from the server should not match the one in the request."); } String exp = json.getString(OA2Constants.EXPIRES_IN); if (exp == null || exp.length() == 0) { throw new IllegalArgumentException("Error: missing expires_in field from server"); } long expiresIn = Long.parseLong(exp) * 1000; JSONObject claims = getAndCheckIDToken(json, rtRequest); OA2RefreshTokenImpl refreshTokenImpl2 = new OA2RefreshTokenImpl(URI.create(json.getString(OA2Constants.REFRESH_TOKEN))); AccessToken newAT = new AccessTokenImpl(URI.create(returnedAT)); refreshTokenImpl2.setExpiresIn(expiresIn); RTResponse rtResponse = createResponse(newAT, refreshTokenImpl2); rtResponse.setParameters(claims); return rtResponse; }
public RefreshToken getRefreshToken(String... tokens) { switch (tokens.length) { case 0: return new OA2RefreshTokenImpl(getRefreshTokenProvider().get().getUri()); default: return new OA2RefreshTokenImpl(tokens[0] == null ? null : URI.create(tokens[0])); } }
@Override public Asset fromMap(ConversionMap<String, Object> map, Asset asset) { OA2Asset a = (OA2Asset) super.fromMap(map, asset); String rawCR = map.getString(getASK().certReq()); if (rawCR != null) { MyPKCS10CertRequest certReq = CertUtil.fromStringToCertReq(rawCR); a.setCertReq(certReq); } String at = map.getString(getASK().accessToken()); if (at != null) a.setAccessToken(new AccessTokenImpl(URI.create(at))); String rt = map.getString(getASK().refreshToken()); if (rt != null) { RefreshToken refreshToken = new OA2RefreshTokenImpl(URI.create(rt)); refreshToken.setExpiresIn(map.getLong(getASK().refreshLifetime())); a.setRefreshToken(refreshToken); } String state = map.getString(getASK().state()); if (state != null) { a.setState(state); } a.setNonce(map.getString(getASK().nonce())); if (map.containsKey(OA2Claims.ISSUED_AT)) { a.setIssuedAt(map.getDate(OA2Claims.ISSUED_AT)); } return a; }
if (jsonObject.containsKey(REFRESH_TOKEN)) { rt = new OA2RefreshTokenImpl(URI.create(jsonObject.getString(REFRESH_TOKEN))); try { if (jsonObject.containsKey(EXPIRES_IN)) { long expiresIn = Long.parseLong(jsonObject.getString(EXPIRES_IN)) * 1000L; // convert from sec to ms. rt.setExpiresIn(expiresIn);