Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Para persistir a cache do token entre instâncias da sua aplicação, terá de personalizar a lógica de serialização. As classes e interfaces Java envolvidas na serialização da cache de tokens são as seguintes:
- ITokenCache: Interface que representa a cache de tokens de segurança.
-
ITokenCacheAccessAspect : Interface que representa a operação do código em execução antes e depois do acesso. Utilizaria
@OverridebeforeCacheAccess e afterCacheAccess com a lógica responsável por serializar e desserializar a cache. - ITokenCacheAccessContext : Interface que representa o contexto em que o cache do token é acedido.
Abaixo está uma implementação ingénua de serialização personalizada da cache do token.
Warning
Como o código de exemplo abaixo não mostra o ciclo completo de vida do armazenamento cache, recomendamos vivamente que não copie e cole isto num ambiente de produção. Certifique-se de que está ciente dos requisitos de segurança e acesso para a cache 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();
Saiba mais
Aprenda sobre Obter e remover contas da cache de tokens usando MSAL para Java.