Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para persistir o cache de token entre instâncias do aplicativo, você precisará personalizar a lógica de serialização. As classes e interfaces Java envolvidas na serialização do cache de token são as seguintes:
- ITokenCache: interface que representa o cache de token de segurança.
-
ITokenCacheAccessAspect : interface que representa a operação de execução de código antes e depois do acesso. Você usaria
@OverridebeforeCacheAccess e afterCacheAccess com a lógica responsável por serializar e desserializar o cache. - ITokenCacheAccessContext : interface que representa o contexto no qual o cache de token é acessado.
Veja abaixo uma implementação ingênua da serialização personalizada do cache de token.
Warning
Como o código de exemplo abaixo não mostra o ciclo de vida completo do armazenamento em cache, é altamente recomendável não copiar e colar isso em um ambiente de produção. Verifique se você está ciente dos requisitos de segurança e acesso para o cache de 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();
Saiba mais
Saiba mais sobre Como obter e remover contas do cache de token usando a MSAL para Java.