使用适用于 Java 的 MSAL 从令牌缓存中获取和删除帐户

默认情况下,用于Java的 MSAL 提供内存中令牌缓存。 内存中的令牌缓存会在应用程序整个运行期间一直保留。

查看缓存中的帐户

您可以通过调用 PublicClientApplication.getAccounts() 来检查缓存中有哪些账户,如以下示例所示:

PublicClientApplication pca = new PublicClientApplication.Builder(
                labResponse.getAppId()).
                authority(TestConstants.ORGANIZATIONS_AUTHORITY).
                build();

Set<IAccount> accounts = pca.getAccounts().join();

从缓存中删除帐户

若要从缓存中删除帐户,请查找需要删除的帐户,然后调用, PublicClientApplication.removeAccount() 如以下示例所示:

Set<IAccount> accounts = pca.getAccounts().join();

IAccount accountToBeRemoved = accounts.stream().filter(
                x -> x.username().equalsIgnoreCase(
                        UPN_OF_USER_TO_BE_REMOVED)).findFirst().orElse(null);

pca.removeAccount(accountToBeRemoved).join();

了解详细信息

如果您使用的是适用于 Java 的 MSAL,请参阅 MSAL for Java 中的自定义令牌缓存序列化