do not refresh token if refresh token expired
This commit is contained in:
parent
6d13086a53
commit
0cd0c65a08
@ -56,22 +56,33 @@ public class RefreshTokenExpCheckService {
|
|||||||
JsonNode jsonValue = settings.getJsonValue();
|
JsonNode jsonValue = settings.getJsonValue();
|
||||||
if (OFFICE_365.name().equals(jsonValue.get("providerId").asText()) && jsonValue.has("refreshToken")
|
if (OFFICE_365.name().equals(jsonValue.get("providerId").asText()) && jsonValue.has("refreshToken")
|
||||||
&& jsonValue.has("refreshTokenExpires")) {
|
&& jsonValue.has("refreshTokenExpires")) {
|
||||||
long expiresIn = jsonValue.get("refreshTokenExpires").longValue();
|
try {
|
||||||
if ((expiresIn - System.currentTimeMillis()) < 604800000L) { //less than 7 days
|
long expiresIn = jsonValue.get("refreshTokenExpires").longValue();
|
||||||
log.info("Trying to refresh refresh token.");
|
long tokenLifeDuration = expiresIn - System.currentTimeMillis();
|
||||||
|
if (tokenLifeDuration < 0) {
|
||||||
|
((ObjectNode) jsonValue).put("tokenGenerated", false);
|
||||||
|
((ObjectNode) jsonValue).remove("refreshToken");
|
||||||
|
((ObjectNode) jsonValue).remove("refreshTokenExpires");
|
||||||
|
|
||||||
String clientId = jsonValue.get("clientId").asText();
|
adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, settings);
|
||||||
String clientSecret = jsonValue.get("clientSecret").asText();
|
} else if (tokenLifeDuration < 604800000L) { //less than 7 days
|
||||||
String refreshToken = jsonValue.get("refreshToken").asText();
|
log.info("Trying to refresh refresh token.");
|
||||||
String tokenUri = jsonValue.get("tokenUri").asText();
|
|
||||||
|
|
||||||
TokenResponse tokenResponse = new RefreshTokenRequest(new NetHttpTransport(), new GsonFactory(),
|
String clientId = jsonValue.get("clientId").asText();
|
||||||
new GenericUrl(tokenUri), refreshToken)
|
String clientSecret = jsonValue.get("clientSecret").asText();
|
||||||
.setClientAuthentication(new ClientParametersAuthentication(clientId, clientSecret))
|
String refreshToken = jsonValue.get("refreshToken").asText();
|
||||||
.execute();
|
String tokenUri = jsonValue.get("tokenUri").asText();
|
||||||
((ObjectNode) jsonValue).put("refreshToken", tokenResponse.getRefreshToken());
|
|
||||||
((ObjectNode) jsonValue).put("refreshTokenExpires", Instant.now().plus(Duration.ofDays(AZURE_DEFAULT_REFRESH_TOKEN_LIFETIME_IN_DAYS)).toEpochMilli());
|
TokenResponse tokenResponse = new RefreshTokenRequest(new NetHttpTransport(), new GsonFactory(),
|
||||||
adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, settings);
|
new GenericUrl(tokenUri), refreshToken)
|
||||||
|
.setClientAuthentication(new ClientParametersAuthentication(clientId, clientSecret))
|
||||||
|
.execute();
|
||||||
|
((ObjectNode) jsonValue).put("refreshToken", tokenResponse.getRefreshToken());
|
||||||
|
((ObjectNode) jsonValue).put("refreshTokenExpires", Instant.now().plus(Duration.ofDays(AZURE_DEFAULT_REFRESH_TOKEN_LIFETIME_IN_DAYS)).toEpochMilli());
|
||||||
|
adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, settings);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error occurred while checking token", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user