Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para conservar la caché de tokens entre instancias de la aplicación, deberá personalizar la lógica de serialización. Las Java clases e interfaces implicadas en la serialización de caché de tokens son las siguientes:
- ITokenCache: interfaz que representa la caché de tokens de seguridad.
-
ITokenCacheAccessAspect : interfaz que representa el funcionamiento de la ejecución del código antes y después del acceso. Implementaría
@OverridebeforeCacheAccess y afterCacheAccess con la lógica encargada de serializar y deserializar la caché. - ITokenCacheAccessContext : interfaz que representa el contexto en el que se accede a la caché de tokens.
A continuación se muestra una implementación ingenua de la serialización personalizada de la caché de tokens.
Warning
Dado que el código de ejemplo siguiente no muestra el ciclo de vida de almacenamiento de caché completa, se recomienda encarecidamente no copiarlo y pegarlo en un entorno de producción. Asegúrese de que conoce los requisitos de seguridad y acceso de la caché de tokens.
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();
Aprende más
Obtenga información sobre Cómo obtener y quitar cuentas de la caché de tokens mediante MSAL para Java.