|
|
|
@ -75,31 +75,31 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA |
|
|
|
return (await Repository.FindByClientIdAsync(identifier, cancellationToken: cancellationToken)).ToModel(); |
|
|
|
} |
|
|
|
|
|
|
|
public async IAsyncEnumerable<OpenIddictApplicationModel> FindByPostLogoutRedirectUriAsync(string address, [EnumeratorCancellation] CancellationToken cancellationToken) |
|
|
|
public async IAsyncEnumerable<OpenIddictApplicationModel> FindByPostLogoutRedirectUriAsync(string uris, [EnumeratorCancellation] CancellationToken cancellationToken) |
|
|
|
{ |
|
|
|
Check.NotNullOrEmpty(address, nameof(address)); |
|
|
|
Check.NotNullOrEmpty(uris, nameof(uris)); |
|
|
|
|
|
|
|
var applications = await Repository.FindByPostLogoutRedirectUriAsync(address, cancellationToken); |
|
|
|
var applications = await Repository.FindByPostLogoutRedirectUriAsync(uris, cancellationToken); |
|
|
|
|
|
|
|
foreach (var application in applications) |
|
|
|
{ |
|
|
|
var addresses = await GetPostLogoutRedirectUrisAsync(application.ToModel(), cancellationToken); |
|
|
|
if (addresses.Contains(address, StringComparer.Ordinal)) |
|
|
|
if (addresses.Contains(uris, StringComparer.Ordinal)) |
|
|
|
{ |
|
|
|
yield return application.ToModel(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public async IAsyncEnumerable<OpenIddictApplicationModel> FindByRedirectUriAsync(string address, [EnumeratorCancellation] CancellationToken cancellationToken) |
|
|
|
public async IAsyncEnumerable<OpenIddictApplicationModel> FindByRedirectUriAsync(string uri, [EnumeratorCancellation] CancellationToken cancellationToken) |
|
|
|
{ |
|
|
|
Check.NotNullOrEmpty(address, nameof(address)); |
|
|
|
Check.NotNullOrEmpty(uri, nameof(uri)); |
|
|
|
|
|
|
|
var applications = await Repository.FindByRedirectUriAsync(address, cancellationToken); |
|
|
|
var applications = await Repository.FindByRedirectUriAsync(uri, cancellationToken); |
|
|
|
foreach (var application in applications) |
|
|
|
{ |
|
|
|
var addresses = await GetRedirectUrisAsync(application.ToModel(), cancellationToken); |
|
|
|
if (addresses.Contains(address, StringComparer.Ordinal)) |
|
|
|
var uris = await GetRedirectUrisAsync(application.ToModel(), cancellationToken); |
|
|
|
if (uris.Contains(uri, StringComparer.Ordinal)) |
|
|
|
{ |
|
|
|
yield return application.ToModel(); |
|
|
|
} |
|
|
|
@ -423,12 +423,12 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA |
|
|
|
return default; |
|
|
|
} |
|
|
|
|
|
|
|
public virtual ValueTask SetPostLogoutRedirectUrisAsync(OpenIddictApplicationModel application, ImmutableArray<string> addresses, |
|
|
|
public virtual ValueTask SetPostLogoutRedirectUrisAsync(OpenIddictApplicationModel application, ImmutableArray<string> uris, |
|
|
|
CancellationToken cancellationToken) |
|
|
|
{ |
|
|
|
Check.NotNull(application, nameof(application)); |
|
|
|
|
|
|
|
if (addresses.IsDefaultOrEmpty) |
|
|
|
if (uris.IsDefaultOrEmpty) |
|
|
|
{ |
|
|
|
application.PostLogoutRedirectUris = null; |
|
|
|
return default; |
|
|
|
@ -437,9 +437,9 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA |
|
|
|
application.PostLogoutRedirectUris = WriteStream(writer => |
|
|
|
{ |
|
|
|
writer.WriteStartArray(); |
|
|
|
foreach (var address in addresses) |
|
|
|
foreach (var uri in uris) |
|
|
|
{ |
|
|
|
writer.WriteStringValue(address); |
|
|
|
writer.WriteStringValue(uri); |
|
|
|
} |
|
|
|
writer.WriteEndArray(); |
|
|
|
}); |
|
|
|
@ -472,12 +472,12 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA |
|
|
|
return default; |
|
|
|
} |
|
|
|
|
|
|
|
public virtual ValueTask SetRedirectUrisAsync(OpenIddictApplicationModel application, ImmutableArray<string> addresses, |
|
|
|
public virtual ValueTask SetRedirectUrisAsync(OpenIddictApplicationModel application, ImmutableArray<string> uris, |
|
|
|
CancellationToken cancellationToken) |
|
|
|
{ |
|
|
|
Check.NotNull(application, nameof(application)); |
|
|
|
|
|
|
|
if (addresses.IsDefaultOrEmpty) |
|
|
|
if (uris.IsDefaultOrEmpty) |
|
|
|
{ |
|
|
|
application.RedirectUris = null; |
|
|
|
return default; |
|
|
|
@ -486,9 +486,9 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase<IOpenIddictA |
|
|
|
application.RedirectUris = WriteStream(writer => |
|
|
|
{ |
|
|
|
writer.WriteStartArray(); |
|
|
|
foreach (var address in addresses) |
|
|
|
foreach (var uri in uris) |
|
|
|
{ |
|
|
|
writer.WriteStringValue(address); |
|
|
|
writer.WriteStringValue(uri); |
|
|
|
} |
|
|
|
writer.WriteEndArray(); |
|
|
|
}); |
|
|
|
|