@@ -126,7 +126,9 @@ protected SaslClient createSaslClient(final ServerAddress serverAddress) {
126
126
@ Nullable
127
127
public BsonDocument createSpeculativeAuthenticateCommand (final InternalConnection connection ) {
128
128
try {
129
- String cachedAccessToken = getCachedAccessToken ();
129
+ String cachedAccessToken = getMongoCredentialWithCache ()
130
+ .getOidcCacheEntry ()
131
+ .getCachedAccessToken ();
130
132
if (cachedAccessToken != null ) {
131
133
return wrapInSpeculative (prepareTokenAsJwt (cachedAccessToken ));
132
134
} else {
@@ -284,7 +286,7 @@ private void authenticationLoopAsync(final InternalConnection connection, final
284
286
285
287
private byte [] evaluate (final byte [] challenge ) {
286
288
byte [][] jwt = new byte [1 ][];
287
- Locks .withLock (getMongoCredentialWithCache ().getOidcLock (), () -> {
289
+ Locks .withInterruptibleLock (getMongoCredentialWithCache ().getOidcLock (), () -> {
288
290
OidcCacheEntry oidcCacheEntry = getMongoCredentialWithCache ().getOidcCacheEntry ();
289
291
String cachedRefreshToken = oidcCacheEntry .getRefreshToken ();
290
292
IdpInfo cachedIdpInfo = oidcCacheEntry .getIdpInfo ();
@@ -358,7 +360,7 @@ private byte[] evaluate(final byte[] challenge) {
358
360
private String validatedCachedAccessToken () {
359
361
MongoCredentialWithCache mongoCredentialWithCache = getMongoCredentialWithCache ();
360
362
OidcCacheEntry cacheEntry = mongoCredentialWithCache .getOidcCacheEntry ();
361
- String cachedAccessToken = getCachedAccessToken ();
363
+ String cachedAccessToken = cacheEntry . getCachedAccessToken ();
362
364
String invalidConnectionAccessToken = connectionLastAccessToken ;
363
365
364
366
if (cachedAccessToken != null ) {
@@ -377,7 +379,7 @@ private boolean clientIsComplete() {
377
379
378
380
private boolean shouldRetryHandler () {
379
381
boolean [] result = new boolean [1 ];
380
- Locks .withLock (getMongoCredentialWithCache ().getOidcLock (), () -> {
382
+ Locks .withInterruptibleLock (getMongoCredentialWithCache ().getOidcLock (), () -> {
381
383
MongoCredentialWithCache mongoCredentialWithCache = getMongoCredentialWithCache ();
382
384
OidcCacheEntry cacheEntry = mongoCredentialWithCache .getOidcCacheEntry ();
383
385
if (fallbackState == FallbackState .PHASE_1_CACHED_TOKEN ) {
@@ -402,13 +404,6 @@ private boolean shouldRetryHandler() {
402
404
return result [0 ];
403
405
}
404
406
405
- @ Nullable
406
- private String getCachedAccessToken () {
407
- return getMongoCredentialWithCache ()
408
- .getOidcCacheEntry ()
409
- .getCachedAccessToken ();
410
- }
411
-
412
407
static final class OidcCacheEntry {
413
408
@ Nullable
414
409
private final String accessToken ;
0 commit comments