You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Robert Munteanu (Jira)" <ji...@apache.org> on 2025/11/11 21:54:00 UTC

[jira] [Created] (SLING-12999) Invalid refresh tokens are not cleared

Robert Munteanu created SLING-12999:
---------------------------------------

             Summary: Invalid refresh tokens are not cleared
                 Key: SLING-12999
                 URL: https://issues.apache.org/jira/browse/SLING-12999
             Project: Sling
          Issue Type: Bug
          Components: Extensions
            Reporter: Robert Munteanu
            Assignee: Robert Munteanu
             Fix For: OAuth Client 0.1.6


Then trying to obtain an access token with an invalid refresh token the {{OAuthRefresherImpl}} does not clear the invalid refresh token. 

When tested against the Google token endpoint ( https://oauth2.googleapis.com/token )  , a 400 response is returned with the following body contents:

{noformat}
{"error_description":"Token has been expired or revoked.","error":"invalid_grant"}
{noformat}

Currently the bundle errors out because the response is expected to have a 200 status code

{noformat}
Caused by: com.nimbusds.oauth2.sdk.ParseException: Unexpected HTTP status code 400, must be [200]
	at com.nimbusds.oauth2.sdk.http.HTTPResponse.ensureStatusCode(HTTPResponse.java:190) [oauth2-oidc-sdk:11.30.1]
	at com.nimbusds.oauth2.sdk.AccessTokenResponse.parse(AccessTokenResponse.java:227) [oauth2-oidc-sdk:11.30.1]
	at org.apache.sling.auth.oauth_client.impl.OAuthTokenRefresherImpl.refreshTokensInternal(OAuthTokenRefresherImpl.java:79)
	... 105 common frames omitted
{noformat}

If the server returns an error response we should clear the refresh token, log a warning  and throw a generic error about failing to refresh the token. In interactive scenarios the user can start a new OAuth flow.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)