diff --git a/auth0/src/main/java/com/auth0/android/dpop/DPoP.kt b/auth0/src/main/java/com/auth0/android/dpop/DPoP.kt index 183cddcf..d84f7f61 100644 --- a/auth0/src/main/java/com/auth0/android/dpop/DPoP.kt +++ b/auth0/src/main/java/com/auth0/android/dpop/DPoP.kt @@ -9,6 +9,7 @@ import com.auth0.android.request.HttpMethod import com.auth0.android.request.getErrorBody import okhttp3.Response import java.lang.reflect.Modifier.PRIVATE +import java.util.concurrent.atomic.AtomicReference /** @@ -102,12 +103,11 @@ public class DPoP(context: Context) { private const val AUTHORIZATION_HEADER = "Authorization" private const val NONCE_HEADER = "DPoP-Nonce" - @Volatile @VisibleForTesting(otherwise = PRIVATE) - internal var _auth0Nonce: String? = null + internal val _auth0Nonce: AtomicReference = AtomicReference(null) public val auth0Nonce: String? - get() = _auth0Nonce + get() = _auth0Nonce.get() /** * Stores the nonce value from the Okhttp3 [Response] headers. @@ -127,9 +127,7 @@ public class DPoP(context: Context) { @JvmStatic internal fun storeNonce(response: Response) { response.headers[NONCE_HEADER]?.let { - synchronized(this) { - _auth0Nonce = it - } + _auth0Nonce.set(it) } } @@ -220,7 +218,7 @@ public class DPoP(context: Context) { @JvmStatic public fun clearKeyPair() { DPoPUtil.clearKeyPair() - _auth0Nonce = null + _auth0Nonce.set(null) } } } \ No newline at end of file diff --git a/auth0/src/main/java/com/auth0/android/dpop/DPoPUtil.kt b/auth0/src/main/java/com/auth0/android/dpop/DPoPUtil.kt index 23f171ba..44ba31ea 100644 --- a/auth0/src/main/java/com/auth0/android/dpop/DPoPUtil.kt +++ b/auth0/src/main/java/com/auth0/android/dpop/DPoPUtil.kt @@ -29,7 +29,6 @@ internal object DPoPUtil { @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - @Volatile internal var keyStore = DPoPKeyStore() diff --git a/auth0/src/test/java/com/auth0/android/dpop/DPoPTest.kt b/auth0/src/test/java/com/auth0/android/dpop/DPoPTest.kt index 1a5b5412..3518e70d 100644 --- a/auth0/src/test/java/com/auth0/android/dpop/DPoPTest.kt +++ b/auth0/src/test/java/com/auth0/android/dpop/DPoPTest.kt @@ -51,7 +51,7 @@ public class DPoPTest { whenever(mockContext.applicationContext).thenReturn(mockContext) dPoP = DPoP(mockContext) - DPoP._auth0Nonce = null + DPoP._auth0Nonce.set(null) DPoPUtil.keyStore = mockKeyStore }