Skip to content

Commit 698feb4

Browse files
committed
check access token expiration on read. closes mitreid-connect#983
1 parent e1800b5 commit 698feb4

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ProviderTokenService.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -335,15 +335,13 @@ public OAuth2Authentication loadAuthentication(String accessTokenValue) throws A
335335

336336
if (accessToken == null) {
337337
throw new InvalidTokenException("Invalid access token: " + accessTokenValue);
338-
}
339-
340-
if (accessToken.isExpired()) {
338+
} else if (accessToken.isExpired()) {
341339
//tokenRepository.removeAccessToken(accessToken);
342340
revokeAccessToken(accessToken);
343341
throw new InvalidTokenException("Expired access token: " + accessTokenValue);
342+
} else {
343+
return accessToken.getAuthenticationHolder().getAuthentication();
344344
}
345-
346-
return accessToken.getAuthenticationHolder().getAuthentication();
347345
}
348346

349347

@@ -355,8 +353,11 @@ public OAuth2AccessTokenEntity readAccessToken(String accessTokenValue) throws A
355353
OAuth2AccessTokenEntity accessToken = tokenRepository.getAccessTokenByValue(accessTokenValue);
356354
if (accessToken == null) {
357355
throw new InvalidTokenException("Access token for value " + accessTokenValue + " was not found");
358-
}
359-
else {
356+
} else if (accessToken.isExpired()) {
357+
// immediately revoke the expired token
358+
revokeAccessToken(accessToken);
359+
throw new InvalidTokenException("Access token for value " + accessTokenValue + " is expired");
360+
} else {
360361
return accessToken;
361362
}
362363
}

0 commit comments

Comments
 (0)