diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs index 04bdb8d6b9..a6643b95f6 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/Client.cs @@ -193,6 +193,21 @@ namespace Volo.Abp.IdentityServer.Clients PostLogoutRedirectUris.Add(new ClientPostLogoutRedirectUri(Id, postLogoutRedirectUri)); } + public virtual void RemoveAllCorsOrigin([NotNull] string origin) + { + AllowedCorsOrigins.Clear(); + } + + public virtual void RemoveAllRedirectUri([NotNull] string redirectUri) + { + RedirectUris.Clear(); + } + + public virtual void RemoveAllPostLogoutRedirectUri([NotNull] string postLogoutRedirectUri) + { + PostLogoutRedirectUris.Clear(); + } + public virtual void AddIdentityProviderRestriction([NotNull] string provider) { IdentityProviderRestrictions.Add(new ClientIdPRestriction(Id, provider)); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index ff0cb8bb25..202d1cd6aa 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -87,6 +87,27 @@ namespace Volo.Abp.IdentityServer.Clients DbContext.Set().Remove(scope); } + var corsOrigins = DbContext.Set().Where(s => s.ClientId == entity.Id); + + foreach (var corsOrigin in corsOrigins) + { + DbContext.Set().Remove(corsOrigin); + } + + var redirectUris = DbContext.Set().Where(s => s.ClientId == entity.Id); + + foreach (var redirectUri in redirectUris) + { + DbContext.Set().Remove(redirectUri); + } + + var postLogoutRedirectUris = DbContext.Set().Where(s => s.ClientId == entity.Id); + + foreach (var postLogoutRedirectUri in postLogoutRedirectUris) + { + DbContext.Set().Remove(postLogoutRedirectUri); + } + return await base.UpdateAsync(entity, autoSave, cancellationToken); }