in src/main/java/org/apache/sling/auth/oauth_client/impl/JcrUserHomeOAuthTokenStore.java [105:130]
public void persistTokens(@NotNull ClientConnection connection, @NotNull ResourceResolver resolver, @NotNull OAuthTokens tokens) {
try {
User user = adaptToUser(resolver);
Session session = adaptToSession(resolver);
ValueFactory vf = session.getValueFactory();
setTokenProperty(user, vf, propertyPath(connection, PROPERTY_NAME_ACCESS_TOKEN), tokens.accessToken());
setTokenProperty(user, vf, propertyPath(connection, PROPERTY_NAME_REFRESH_TOKEN), tokens.refreshToken());
ZonedDateTime expiry = null;
long expiresAt = tokens.expiresAt();
if (expiresAt > 0) {
expiry = ZonedDateTime.now().plusSeconds(expiresAt);
}
if (expiry != null) {
Calendar cal = GregorianCalendar.from(expiry);
user.setProperty(propertyPath(connection, PROPERTY_NAME_EXPIRES_AT), vf.createValue(cal));
} else {
user.removeProperty(propertyPath(connection, PROPERTY_NAME_EXPIRES_AT));
}
session.save();
} catch (RepositoryException e) {
throw new OAuthException(e);
}
}