77using System . Threading . Tasks ;
88using Microsoft . Artifacts . Authentication ;
99using Microsoft . Extensions . Logging ;
10+ using Microsoft . Identity . Client ;
1011using Microsoft . Identity . Client . Extensions . Msal ;
1112using NuGetCredentialProvider . Util ;
1213
@@ -29,7 +30,7 @@ public async Task<IEnumerable<ITokenProvider>> GetAsync(Uri authority)
2930 cache = await MsalCache . GetMsalCacheHelperAsync ( EnvUtil . GetMsalCacheLocation ( ) , logger ) ;
3031 }
3132
32- var builder = AzureArtifacts . CreateDefaultBuilder ( authority )
33+ var app = AzureArtifacts . CreateDefaultBuilder ( authority )
3334 . WithHttpClientFactory ( HttpClientFactory . Default )
3435 . WithLogging (
3536 ( Microsoft . Identity . Client . LogLevel level , string message , bool containsPii ) =>
@@ -38,18 +39,36 @@ public async Task<IEnumerable<ITokenProvider>> GetAsync(Uri authority)
3839 logger . LogTrace ( "MSAL Log ({level}): {message}" , level , message ) ;
3940 } ,
4041 enablePiiLogging : EnvUtil . GetLogPIIEnabled ( )
41- ) ;
42-
43- var app = builder
44- . Build ( ) ;
45- var appInteractiveBroker = builder
46- . WithBroker ( EnvUtil . MsalAllowBrokerEnabled ( ) , EnvUtil . GetMsalBrokerWindowHandle ( ) , logger )
42+ )
4743 . Build ( ) ;
4844
45+ var brokerEnabled = EnvUtil . MsalAllowBrokerEnabled ( ) ;
46+ #nullable enable
47+ IPublicClientApplication ? appInteractiveBroker = null ;
48+ #nullable disable
49+ if ( brokerEnabled )
50+ {
51+ appInteractiveBroker = AzureArtifacts . CreateDefaultBuilder ( authority )
52+ . WithHttpClientFactory ( HttpClientFactory . Default )
53+ . WithLogging (
54+ ( Microsoft . Identity . Client . LogLevel level , string message , bool containsPii ) =>
55+ {
56+ // We ignore containsPii param because we are passing in enablePiiLogging below.
57+ logger . LogTrace ( "MSAL Log ({level}): {message}" , level , message ) ;
58+ } ,
59+ enablePiiLogging : EnvUtil . GetLogPIIEnabled ( )
60+ )
61+ . WithBroker ( brokerEnabled , EnvUtil . GetMsalBrokerWindowHandle ( ) , logger )
62+ . Build ( ) ;
63+ }
64+
4965 cache ? . RegisterCache ( app . UserTokenCache ) ;
50- cache ? . RegisterCache ( appInteractiveBroker . UserTokenCache ) ;
66+ if ( appInteractiveBroker != null )
67+ {
68+ cache ? . RegisterCache ( appInteractiveBroker . UserTokenCache ) ;
69+ }
5170
52- return MsalTokenProviders . Get ( app , appInteractiveBroker , logger ) ;
71+ return MsalTokenProviders . Get ( app , logger , appInteractiveBroker : appInteractiveBroker ) ;
5372 }
5473 }
5574}
0 commit comments