Vlastní serializace tokenové mezipaměti v MSAL pro Javu

Pokud chcete zachovat mezipaměť tokenů mezi instancemi vaší aplikace, budete muset přizpůsobit logiku serializace. Třídy Java a rozhraní zahrnuté do serializace mezipaměti tokenů jsou následující:

  • ITokenCache: Rozhraní představující mezipaměť tokenů zabezpečení.
  • ITokenCacheAccessAspect : Rozhraní představující operaci provádění kódu před a po přístupu. Doplnili byste @OverridebeforeCacheAccess a afterCacheAccess o logiku odpovědnou za serializaci a deserializaci mezipaměti.
  • ITokenCacheAccessContext : Rozhraní představující kontext, ve kterém se přistupuje k mezipaměti tokenů.

Níže je uvedena naivní implementace vlastní serializace mezipaměti tokenů.

Warning

Protože níže uvedený ukázkový kód nepředvádí celý životní cyklus úložiště mezipaměti, důrazně doporučujeme, abyste ho nekopíroval a vložil do produkčního prostředí. Ujistěte se, že znáte požadavky na zabezpečení a přístup pro mezipaměť 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();

Další informace

Přečtěte si informace o získání a odebrání účtů z mezipaměti tokenů pomocí knihovny MSAL pro Java.