Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby zachować pamięć podręczną tokenu między wystąpieniami aplikacji, należy dostosować logikę serializacji. Klasy i interfejsy Java związane z serializacją pamięci podręcznej tokenów to:
- ITokenCache: Interfejs reprezentujący pamięć podręczną tokenu zabezpieczającego.
-
ITokenCacheAccessAspect : interfejs reprezentujący operację wykonywania kodu przed dostępem i po nim.
@OverridebeforeCacheAccess i afterCacheAccess należy uzupełnić o logikę odpowiedzialną za serializację i deserializację pamięci podręcznej. - ITokenCacheAccessContext : interfejs reprezentujący kontekst, w którym uzyskuje się dostęp do pamięci podręcznej tokenów.
Poniżej przedstawiono prostą implementację niestandardowej serializacji pamięci podręcznej tokenów.
Warning
Ponieważ poniższy przykładowy kod nie prezentuje pełnego cyklu życia magazynu pamięci podręcznej, zdecydowanie zalecamy, aby nie kopiować i wklejać go w środowisku produkcyjnym. Upewnij się, że masz świadomość wymagań dotyczących zabezpieczeń i dostępu dla pamięci podręcznej tokenów.
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();
Learn more
Dowiedz się więcej o pobieraniu i usuwaniu kont z pamięci podręcznej tokenów przy użyciu biblioteki MSAL dla Java.