public void persistTokens()

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);
        }
    }