From af82a1ffed871a5fdc670d841d7030cd7e3f19ab Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Mon, 22 Apr 2024 11:18:26 +0200 Subject: [PATCH] fix(rnta-msal): address deprecations (#3101) --- .changeset/twelve-jeans-wait.md | 5 +++++ .../msal/MicrosoftAccountsActivity.kt | 2 +- .../reacttestapp/msal/TokenBroker.kt | 20 ++++++++++++------- 3 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 .changeset/twelve-jeans-wait.md diff --git a/.changeset/twelve-jeans-wait.md b/.changeset/twelve-jeans-wait.md new file mode 100644 index 000000000..b2e8aec14 --- /dev/null +++ b/.changeset/twelve-jeans-wait.md @@ -0,0 +1,5 @@ +--- +"@rnx-kit/react-native-test-app-msal": patch +--- + +Migrate away from deprecated `acquireTokenSilent(Array<(out) String!>, IAccount, String): IAuthenticationResult!` diff --git a/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/MicrosoftAccountsActivity.kt b/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/MicrosoftAccountsActivity.kt index 2a6ee1c1b..4a2b517a4 100644 --- a/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/MicrosoftAccountsActivity.kt +++ b/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/MicrosoftAccountsActivity.kt @@ -76,7 +76,7 @@ class MicrosoftAccountsActivity : AppCompatActivity() { val sharedPreferences = getPreferences(MODE_PRIVATE) - val selectedAccountObserver = Observer { account -> + val selectedAccountObserver = Observer { account -> withTokenBroker { tokenBroker -> if (tokenBroker.selectedAccount == account) { return@withTokenBroker diff --git a/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/TokenBroker.kt b/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/TokenBroker.kt index 59045f7aa..01d321fc8 100644 --- a/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/TokenBroker.kt +++ b/incubator/react-native-test-app-msal/android/src/main/java/com/microsoft/reacttestapp/msal/TokenBroker.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Context import android.content.res.Resources.NotFoundException import com.microsoft.identity.client.AcquireTokenParameters +import com.microsoft.identity.client.AcquireTokenSilentParameters import com.microsoft.identity.client.AuthenticationCallback import com.microsoft.identity.client.IAuthenticationResult import com.microsoft.identity.client.IMultipleAccountPublicClientApplication @@ -19,14 +20,13 @@ class TokenBroker private constructor(context: Context) { const val EMPTY_GUID = "00000000-0000-0000-0000-000000000000" @Volatile - private var INSTANCE: TokenBroker? = null + private var instance: TokenBroker? = null - fun getInstance(context: Context): TokenBroker = - INSTANCE ?: synchronized(this) { - INSTANCE ?: TokenBroker(context).also { - INSTANCE = it - } + fun getInstance(context: Context): TokenBroker = instance ?: synchronized(this) { + instance ?: TokenBroker(context).also { + instance = it } + } } var selectedAccount: Account? = null @@ -152,7 +152,13 @@ class TokenBroker private constructor(context: Context) { val authority = multiAccountApp.configuration.defaultAuthority.authorityURL.toString() try { - val result = multiAccountApp.acquireTokenSilent(scopes, account, authority) + val result = multiAccountApp.acquireTokenSilent( + AcquireTokenSilentParameters.Builder() + .forAccount(account) + .fromAuthority(authority) + .withScopes(scopes.toList()) + .build() + ) val redirectUri = multiAccountApp.configuration.redirectUri onTokenAcquired(AuthResult(result, redirectUri), null) } catch (_: UiRequiredException) {