Skip to content

Commit f4a843c

Browse files
di
1 parent 834d8bb commit f4a843c

15 files changed

+131
-91
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System.Net.Http;
5+
using Microsoft.Identity.Client;
6+
7+
namespace Microsoft.Identity.Web
8+
{
9+
/// <summary>
10+
/// Adapts the base class <see cref="IHttpClientFactory"/> to MSAL's
11+
/// <see cref="IMsalHttpClientFactory"/> so managed-identity code
12+
/// can stay DI-friendly without static hooks.
13+
/// </summary>
14+
internal sealed class DefaultManagedIdentityHttpClientFactory
15+
: IManagedIdentityHttpClientFactory,
16+
IMsalHttpClientFactory
17+
{
18+
private readonly IHttpClientFactory _http;
19+
20+
public DefaultManagedIdentityHttpClientFactory(IHttpClientFactory http) =>
21+
_http = http;
22+
23+
public IMsalHttpClientFactory Create() => this;
24+
25+
public HttpClient GetHttpClient() => _http.CreateClient();
26+
}
27+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using Microsoft.Identity.Client;
5+
6+
namespace Microsoft.Identity.Web
7+
{
8+
/// <summary>
9+
/// Internal abstraction so unit-tests can supply a custom
10+
/// <see cref="IMsalHttpClientFactory"/>.
11+
/// </summary>
12+
internal interface IManagedIdentityHttpClientFactory
13+
{
14+
IMsalHttpClientFactory Create();
15+
}
16+
}

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net462/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net472/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net6.0/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net7.0/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net8.0/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/net9.0/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/PublicAPI/netstandard2.0/InternalAPI.Unshipped.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
Microsoft.Identity.Web.ManagedIdentityTestHooks
2-
Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks
3-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
4-
static Microsoft.Identity.Web.ManagedIdentityTestHooks.HttpClientFactoryOverride.set -> void
1+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory
2+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
3+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.DefaultManagedIdentityHttpClientFactory(System.Net.Http.IHttpClientFactory! http) -> void
4+
Microsoft.Identity.Web.DefaultManagedIdentityHttpClientFactory.GetHttpClient() -> System.Net.Http.HttpClient!
5+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory
6+
Microsoft.Identity.Web.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
7+
Microsoft.Identity.Web.TokenAcquisition.IManagedIdentityHttpClientFactory.Create() -> Microsoft.Identity.Client.IMsalHttpClientFactory!
58
const Microsoft.Identity.Web.IDWebErrorMessage.ExceptionAcquiringTokenForConfidentialClient = "IDW10501: Exception acquiring token for a confidential client: " -> string!
6-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.HttpClientFactoryOverride.get -> Microsoft.Identity.Client.IMsalHttpClientFactory?
7-
static Microsoft.Identity.Web.TestOnly.TokenAcquirerTestHooks.UseTestHttpClientFactory(Microsoft.Identity.Client.IMsalHttpClientFactory! factory) -> void

src/Microsoft.Identity.Web.TokenAcquisition/TokenAcquirerTestHooks.cs

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)