mirror of https://github.com/abpframework/abp.git
9 changed files with 151 additions and 5 deletions
@ -0,0 +1,16 @@ |
|||
using OpenIddict.Abstractions; |
|||
|
|||
namespace Volo.Abp.OpenIddict.Applications; |
|||
|
|||
public class AbpApplicationDescriptor : OpenIddictApplicationDescriptor |
|||
{ |
|||
/// <summary>
|
|||
/// URI to further information about client.
|
|||
/// </summary>
|
|||
public string ClientUri { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// URI to client logo.
|
|||
/// </summary>
|
|||
public string LogoUri { get; set; } |
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
using System; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using JetBrains.Annotations; |
|||
using Microsoft.Extensions.Logging; |
|||
using Microsoft.Extensions.Options; |
|||
using OpenIddict.Abstractions; |
|||
using OpenIddict.Core; |
|||
|
|||
namespace Volo.Abp.OpenIddict.Applications; |
|||
|
|||
public class AbpApplicationManager : OpenIddictApplicationManager<OpenIddictApplicationModel>, IAbpApplicationManager |
|||
{ |
|||
public AbpApplicationManager( |
|||
[NotNull] IOpenIddictApplicationCache<OpenIddictApplicationModel> cache, |
|||
[NotNull] ILogger<AbpApplicationManager> logger, |
|||
[NotNull] IOptionsMonitor<OpenIddictCoreOptions> options, |
|||
[NotNull] IOpenIddictApplicationStoreResolver resolver) |
|||
: base(cache, logger, options, resolver) |
|||
{ |
|||
|
|||
} |
|||
|
|||
public async override ValueTask PopulateAsync(OpenIddictApplicationDescriptor descriptor, OpenIddictApplicationModel application, CancellationToken cancellationToken = default) |
|||
{ |
|||
await base.PopulateAsync(descriptor, application, cancellationToken); |
|||
|
|||
if (descriptor is AbpApplicationDescriptor model) |
|||
{ |
|||
application.ClientUri = model.ClientUri; |
|||
application.LogoUri = model.LogoUri; |
|||
} |
|||
} |
|||
|
|||
public async override ValueTask PopulateAsync(OpenIddictApplicationModel application, OpenIddictApplicationDescriptor descriptor, CancellationToken cancellationToken = default) |
|||
{ |
|||
await base.PopulateAsync(application, descriptor, cancellationToken); |
|||
|
|||
if (descriptor is AbpApplicationDescriptor model) |
|||
{ |
|||
application.ClientUri = model.ClientUri; |
|||
application.LogoUri = model.LogoUri; |
|||
} |
|||
} |
|||
|
|||
public virtual async ValueTask<string> GetClientUriAsync(object application, CancellationToken cancellationToken = default) |
|||
{ |
|||
Check.NotNull(application, nameof(application)); |
|||
Check.AssignableTo<IAbpOpenIdApplicationStore>(application.GetType(), nameof(application)); |
|||
|
|||
return await Store.As<IAbpOpenIdApplicationStore>().GetClientUriAsync(application.As<OpenIddictApplicationModel>(), cancellationToken); |
|||
} |
|||
|
|||
public virtual async ValueTask<string> GetLogoUriAsync(object application, CancellationToken cancellationToken = default) |
|||
{ |
|||
Check.NotNull(application, nameof(application)); |
|||
Check.AssignableTo<IAbpOpenIdApplicationStore>(application.GetType(), nameof(application)); |
|||
|
|||
return await Store.As<IAbpOpenIdApplicationStore>().GetLogoUriAsync(application.As<OpenIddictApplicationModel>(), cancellationToken); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using OpenIddict.Abstractions; |
|||
|
|||
namespace Volo.Abp.OpenIddict.Applications; |
|||
|
|||
public interface IAbpApplicationManager : IOpenIddictApplicationManager |
|||
{ |
|||
ValueTask<string> GetClientUriAsync(object application, CancellationToken cancellationToken = default); |
|||
|
|||
ValueTask<string> GetLogoUriAsync(object application, CancellationToken cancellationToken = default); |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using OpenIddict.Abstractions; |
|||
|
|||
namespace Volo.Abp.OpenIddict.Applications; |
|||
|
|||
public interface IAbpOpenIdApplicationStore : IOpenIddictApplicationStore<OpenIddictApplicationModel> |
|||
{ |
|||
ValueTask<string> GetClientUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default); |
|||
|
|||
ValueTask<string> GetLogoUriAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken = default); |
|||
} |
|||
Loading…
Reference in new issue