|
|
|
@ -21,15 +21,12 @@ namespace Volo.Abp.IdentityModel
|
|
|
|
|
public ILogger<IdentityModelAuthenticationService> Logger { get; set; }
|
|
|
|
|
protected AbpIdentityClientOptions ClientOptions { get; }
|
|
|
|
|
protected ICancellationTokenProvider CancellationTokenProvider { get; }
|
|
|
|
|
protected IHttpClientFactory HttpClientFactory { get; }
|
|
|
|
|
|
|
|
|
|
public IdentityModelAuthenticationService(
|
|
|
|
|
IOptions<AbpIdentityClientOptions> options,
|
|
|
|
|
ICancellationTokenProvider cancellationTokenProvider,
|
|
|
|
|
IHttpClientFactory httpClientFactory)
|
|
|
|
|
ICancellationTokenProvider cancellationTokenProvider)
|
|
|
|
|
{
|
|
|
|
|
CancellationTokenProvider = cancellationTokenProvider;
|
|
|
|
|
HttpClientFactory = httpClientFactory;
|
|
|
|
|
ClientOptions = options.Value;
|
|
|
|
|
Logger = NullLogger<IdentityModelAuthenticationService>.Instance;
|
|
|
|
|
}
|
|
|
|
@ -98,7 +95,7 @@ namespace Volo.Abp.IdentityModel
|
|
|
|
|
protected virtual async Task<DiscoveryDocumentResponse> GetDiscoveryResponse(
|
|
|
|
|
IdentityClientConfiguration configuration)
|
|
|
|
|
{
|
|
|
|
|
using (var httpClient = HttpClientFactory.CreateClient())
|
|
|
|
|
using (var httpClient = new HttpClient())
|
|
|
|
|
{
|
|
|
|
|
return await httpClient.GetDiscoveryDocumentAsync(new DiscoveryDocumentRequest
|
|
|
|
|
{
|
|
|
|
@ -112,10 +109,10 @@ namespace Volo.Abp.IdentityModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual async Task<TokenResponse> GetTokenResponse(
|
|
|
|
|
DiscoveryDocumentResponse discoveryResponse,
|
|
|
|
|
DiscoveryDocumentResponse discoveryResponse,
|
|
|
|
|
IdentityClientConfiguration configuration)
|
|
|
|
|
{
|
|
|
|
|
using (var httpClient = HttpClientFactory.CreateClient())
|
|
|
|
|
using (var httpClient = new HttpClient())
|
|
|
|
|
{
|
|
|
|
|
switch (configuration.GrantType)
|
|
|
|
|
{
|
|
|
|
@ -137,7 +134,7 @@ namespace Volo.Abp.IdentityModel
|
|
|
|
|
|
|
|
|
|
protected virtual Task<PasswordTokenRequest> CreatePasswordTokenRequestAsync(DiscoveryDocumentResponse discoveryResponse, IdentityClientConfiguration configuration)
|
|
|
|
|
{
|
|
|
|
|
var request = new PasswordTokenRequest
|
|
|
|
|
var request = new PasswordTokenRequest
|
|
|
|
|
{
|
|
|
|
|
Address = discoveryResponse.TokenEndpoint,
|
|
|
|
|
Scope = configuration.Scope,
|
|
|
|
@ -152,11 +149,11 @@ namespace Volo.Abp.IdentityModel
|
|
|
|
|
return Task.FromResult(request);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual Task<ClientCredentialsTokenRequest> CreateClientCredentialsTokenRequestAsync(
|
|
|
|
|
DiscoveryDocumentResponse discoveryResponse,
|
|
|
|
|
protected virtual Task<ClientCredentialsTokenRequest> CreateClientCredentialsTokenRequestAsync(
|
|
|
|
|
DiscoveryDocumentResponse discoveryResponse,
|
|
|
|
|
IdentityClientConfiguration configuration)
|
|
|
|
|
{
|
|
|
|
|
var request = new ClientCredentialsTokenRequest
|
|
|
|
|
var request = new ClientCredentialsTokenRequest
|
|
|
|
|
{
|
|
|
|
|
Address = discoveryResponse.TokenEndpoint,
|
|
|
|
|
Scope = configuration.Scope,
|
|
|
|
|