/// <summary> /// This method is so we can inject test ILegacyCachePersistence... /// </summary> internal TokenCache( IServiceBundle serviceBundle, ILegacyCachePersistence legacyCachePersistenceForTest, bool isApplicationTokenCache, ICacheSerializationProvider optionalDefaultCacheSerializer = null) : this(serviceBundle, isApplicationTokenCache, optionalDefaultCacheSerializer) { LegacyCachePersistence = legacyCachePersistenceForTest; }
internal ClientApplicationBase(ApplicationConfiguration config) { ServiceBundle = Internal.ServiceBundle.Create(config); ICacheSerializationProvider defaultCacheSerialization = ServiceBundle.PlatformProxy.CreateTokenCacheBlobStorage(); if (config.UserTokenLegacyCachePersistenceForTest != null) { UserTokenCacheInternal = new TokenCache(ServiceBundle, config.UserTokenLegacyCachePersistenceForTest, false, defaultCacheSerialization); } else { UserTokenCacheInternal = config.UserTokenCacheInternalForTest ?? new TokenCache(ServiceBundle, false, defaultCacheSerialization); } }
internal TokenCache(IServiceBundle serviceBundle, bool isApplicationTokenCache, ICacheSerializationProvider optionalDefaultSerializer = null) { var proxy = serviceBundle?.PlatformProxy ?? PlatformProxyFactory.CreatePlatformProxy(null); _accessor = proxy.CreateTokenCacheAccessor(); _featureFlags = proxy.GetFeatureFlags(); _usesDefaultSerialization = optionalDefaultSerializer != null; optionalDefaultSerializer?.Initialize(this); LegacyCachePersistence = proxy.CreateLegacyCachePersistence(); #if iOS SetIosKeychainSecurityGroup(serviceBundle.Config.IosKeychainSecurityGroup); #endif // iOS IsAppTokenCache = isApplicationTokenCache; // Must happen last, this code can access things like _accessor and such above. ServiceBundle = serviceBundle; }
internal TokenCache(IServiceBundle serviceBundle, bool isApplicationTokenCache, ICacheSerializationProvider optionalDefaultSerializer = null) { if (serviceBundle == null) { throw new ArgumentNullException(nameof(serviceBundle)); } // useRealSemaphore= false for MyApps and potentially for all apps when using non-singleton MSAL _semaphoreSlim = new OptionalSemaphoreSlim(useRealSemaphore: serviceBundle.Config.CacheSynchronizationEnabled); var proxy = serviceBundle?.PlatformProxy ?? PlatformProxyFactory.CreatePlatformProxy(null); _accessor = proxy.CreateTokenCacheAccessor(); _featureFlags = proxy.GetFeatureFlags(); _usesDefaultSerialization = optionalDefaultSerializer != null; optionalDefaultSerializer?.Initialize(this); LegacyCachePersistence = proxy.CreateLegacyCachePersistence(); #if iOS SetIosKeychainSecurityGroup(serviceBundle.Config.IosKeychainSecurityGroup); #endif // iOS IsAppTokenCache = isApplicationTokenCache; // Must happen last, this code can access things like _accessor and such above. ServiceBundle = serviceBundle; }