mirror of https://github.com/abpframework/abp.git
committed by
GitHub
30 changed files with 262 additions and 35 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