Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour conserver le cache de jetons entre les instances de votre application, vous devez personnaliser la logique de sérialisation. Les classes et interfaces Java impliquées dans la sérialisation du cache de jeton sont les suivantes :
- ITokenCache: interface représentant le cache des jetons de sécurité.
-
ITokenCacheAccessAspect : interface représentant l’opération d’exécution du code avant et après l’accès. Vous utiliseriez
@OverridebeforeCacheAccess et afterCacheAccess avec la logique chargée de la sérialisation et de la désérialisation du cache. - ITokenCacheAccessContext : interface représentant le contexte dans lequel le cache de jetons est accessible.
Vous trouverez ci-dessous une implémentation naïve de sérialisation personnalisée du cache de jetons.
Warning
Étant donné que l’exemple de code ci-dessous ne présente pas le cycle de vie complet du stockage du cache, nous vous recommandons vivement de ne pas copier et coller ce code dans un environnement de production. Assurez-vous que vous connaissez les exigences de sécurité et d’accès pour le cache de jetons.
static class TokenPersistence implements ITokenCacheAccessAspect {
String data;
TokenPersistence(String data) {
this.data = data;
}
@Override
public void beforeCacheAccess(ITokenCacheAccessContext iTokenCacheAccessContext) {
iTokenCacheAccessContext.tokenCache().deserialize(data);
}
@Override
public void afterCacheAccess(ITokenCacheAccessContext iTokenCacheAccessContext) {
data = iTokenCacheAccessContext.tokenCache().serialize();
}
// Loads cache from file
String dataToInitCache = readResource(this.getClass(), "/cache_data/serialized_cache.json");
ITokenCacheAccessAspect persistenceAspect = new TokenPersistence(dataToInitCache);
// By setting *TokenPersistence* on the PublicClientApplication, MSAL will call *beforeCacheAccess()* before accessing the cache and *afterCacheAccess()* after accessing the cache.
PublicClientApplication app =
PublicClientApplication.builder("my_client_id").setTokenCacheAccessAspect(persistenceAspect).build();
Learn more
Découvrez comment obtenir et supprimer des comptes du cache de jetons à l’aide de MSAL pour Java.