Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per rendere persistente la cache dei token tra istanze dell'applicazione, è necessario personalizzare la logica di serializzazione. Di seguito sono riportate le classi e le interfacce Java coinvolte nella serializzazione della cache dei token:
- ITokenCache: interfaccia che rappresenta la cache dei token di sicurezza.
-
ITokenCacheAccessAspect : interfaccia che rappresenta l'operazione di esecuzione del codice prima e dopo l'accesso. Implementeresti
@OverridebeforeCacheAccess e afterCacheAccess con la logica responsabile della serializzazione e deserializzazione della cache. - ITokenCacheAccessContext : interfaccia che rappresenta il contesto in cui si accede alla cache dei token.
Di seguito è riportata un'implementazione ingenua della serializzazione personalizzata della cache dei token.
Avvertimento
Poiché il codice di esempio seguente non presenta il ciclo di vita di archiviazione full cache, è consigliabile non copiarlo e incollarlo in un ambiente di produzione. Assicurarsi di conoscere i requisiti di sicurezza e accesso per la cache dei token.
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();
Ulteriori informazioni
Informazioni su Ottenere e rimuovere account dalla cache dei token usando MSAL per Java.