@@ -158,8 +158,8 @@ public static void MigrateMsalCacheWithoutSuffix(IAzureSession session, Action<s
158
158
{
159
159
if ( session . ARMContextSaveMode == ContextSaveMode . CurrentUser )
160
160
{
161
- var oldMsalCachePath = Path . Combine ( MsalCacheHelperProvider . MsalTokenCachePath , MsalCacheHelperProvider . LegacyTokenCacheName ) ;
162
- var newMsalCachePath = Path . Combine ( MsalCacheHelperProvider . MsalTokenCachePath , session . TokenCacheFile ) ;
161
+ var oldMsalCachePath = Path . Combine ( session . TokenCacheDirectory , MsalCacheHelperProvider . LegacyTokenCacheName ) ;
162
+ var newMsalCachePath = Path . Combine ( session . TokenCacheDirectory , session . TokenCacheFile ) ;
163
163
var store = session . DataStore ;
164
164
if ( store . FileExists ( oldMsalCachePath ) && ! store . FileExists ( newMsalCachePath ) )
165
165
{
@@ -181,20 +181,16 @@ public static void MigrateMsalCacheWithoutSuffix(IAzureSession session, Action<s
181
181
}
182
182
}
183
183
184
- static ContextAutosaveSettings InitializeSessionSettings ( IDataStore store , string profileDirectory , string settingsFile , bool migrated = false )
185
- {
186
- return InitializeSessionSettings ( store , profileDirectory , profileDirectory , settingsFile , migrated ) ;
187
- }
188
-
189
- static ContextAutosaveSettings InitializeSessionSettings ( IDataStore store , string cacheDirectory , string profileDirectory , string settingsFile , bool migrated = false )
184
+ static ContextAutosaveSettings InitializeSessionSettings ( IDataStore store , string cacheDirectory , string cacheFile , string profileDirectory , string settingsFile , bool migrated = false )
190
185
{
191
186
var result = new ContextAutosaveSettings
192
187
{
193
188
CacheDirectory = cacheDirectory ,
194
189
ContextDirectory = profileDirectory ,
195
190
Mode = ContextSaveMode . Process ,
196
- CacheFile = MsalCacheHelperProvider . LegacyTokenCacheName ,
197
- ContextFile = "AzureRmContext.json"
191
+ CacheFile = cacheFile ,
192
+ ContextFile = "AzureRmContext.json" ,
193
+ KeyStoreFile = "keystore.cache"
198
194
} ;
199
195
200
196
var settingsPath = Path . Combine ( profileDirectory , settingsFile ) ;
@@ -204,20 +200,21 @@ static ContextAutosaveSettings InitializeSessionSettings(IDataStore store, strin
204
200
if ( store . FileExists ( settingsPath ) )
205
201
{
206
202
var settingsText = store . ReadFileAsText ( settingsPath ) ;
207
- ContextAutosaveSettings settings = JsonConvert . DeserializeObject < ContextAutosaveSettings > ( settingsText ) ;
208
- result . CacheDirectory = migrated ? cacheDirectory : settings . CacheDirectory == null ? cacheDirectory : string . Equals ( settings . CacheDirectory , profileDirectory ) ? cacheDirectory : settings . CacheDirectory ;
209
- result . CacheFile = settings . CacheFile == null ? result . CacheFile : string . Equals ( settings . CacheFile , "TokenCache.dat" ) ? result . CacheFile : settings . CacheFile ;
203
+ ContextAutosaveSettings settings = JsonConvert . DeserializeObject < ContextAutosaveSettings > ( settingsText ) ;
210
204
result . ContextDirectory = migrated ? profileDirectory : settings . ContextDirectory ?? result . ContextDirectory ;
211
205
result . Mode = settings . Mode ;
212
206
result . ContextFile = settings . ContextFile ?? result . ContextFile ;
213
207
result . Settings = settings . Settings ;
214
- result . KeyStoreFile = settings . KeyStoreFile ;
208
+ result . KeyStoreFile = settings . KeyStoreFile ?? result . KeyStoreFile ;
215
209
bool updateSettings = false ;
216
210
if ( ! settings . Settings . ContainsKey ( "InstallationId" ) )
217
211
{
218
212
result . Settings . Add ( "InstallationId" , GetAzureCLIInstallationId ( store ) ?? Guid . NewGuid ( ) . ToString ( ) ) ;
219
213
updateSettings = true ;
220
214
}
215
+ //The customer cannot change the values of CacheFile and CacheDirectory
216
+ updateSettings = updateSettings || 0 != string . Compare ( settings . CacheFile , cacheFile )
217
+ || 0 != string . Compare ( settings . CacheDirectory , cacheDirectory ) ;
221
218
if ( migrated || updateSettings )
222
219
{
223
220
string autoSavePath = Path . Combine ( profileDirectory , settingsFile ) ;
@@ -280,10 +277,6 @@ static IAzureSession CreateInstance(IDataStore dataStore = null, Action<string>
280
277
Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) ,
281
278
Resources . OldAzureDirectoryName ) ;
282
279
dataStore = dataStore ?? new DiskDataStore ( ) ;
283
-
284
-
285
- string oldCachePath = Path . Combine ( profilePath , "TokenCache.dat" ) ;
286
- string cachePath = Path . Combine ( SharedUtilities . GetUserRootDirectory ( ) , ".IdentityService" ) ;
287
280
var session = new AdalSession
288
281
{
289
282
ClientFactory = new ClientFactory ( ) ,
@@ -293,17 +286,17 @@ static IAzureSession CreateInstance(IDataStore dataStore = null, Action<string>
293
286
OldProfileFileBackup = "WindowsAzureProfile.xml.bak" ,
294
287
ProfileDirectory = profilePath ,
295
288
ProfileFile = "AzureProfile.json" ,
289
+ TokenCacheDirectory = MsalCacheHelperProvider . MsalTokenCachePath ,
290
+ TokenCacheFile = MsalCacheHelperProvider . GetTokenCacheName ( MsalCacheHelperProvider . LegacyTokenCacheName , caeEnabled : true )
296
291
} ;
297
292
298
293
var migrated =
299
294
MigrateSettings ( dataStore , oldProfilePath , profilePath ) ;
300
- var autoSave = InitializeSessionSettings ( dataStore , cachePath , profilePath , ContextAutosaveSettings . AutoSaveSettingsFile , migrated ) ;
295
+ var autoSave = InitializeSessionSettings ( dataStore , session . TokenCacheDirectory , session . TokenCacheFile , profilePath , ContextAutosaveSettings . AutoSaveSettingsFile , migrated ) ;
301
296
session . ARMContextSaveMode = autoSave . Mode ;
302
297
session . ARMProfileDirectory = autoSave . ContextDirectory ;
303
298
session . ARMProfileFile = autoSave . ContextFile ;
304
- session . TokenCacheDirectory = autoSave . CacheDirectory ;
305
- session . TokenCacheFile = MsalCacheHelperProvider . GetTokenCacheName ( autoSave . CacheFile , true ) ;
306
- session . KeyStoreFile = autoSave . KeyStoreFile ?? "keystore.cache" ;
299
+ session . KeyStoreFile = autoSave . KeyStoreFile ;
307
300
autoSave . Settings . TryGetValue ( "InstallationId" , out string installationId ) ;
308
301
session . ExtendedProperties . Add ( "InstallationId" , installationId ) ;
309
302
InitializeConfigs ( session , profilePath , writeWarning ) ;
0 commit comments