diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.CoreCompileInputs.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.CoreCompileInputs.cache deleted file mode 100644 index 7128c9a0f..000000000 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -05d2e1f53650cb86c4348471113d51741fb76ff0 diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.FileListAbsolute.txt b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.FileListAbsolute.txt index 48e16ef46..7f42fc0ec 100644 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.FileListAbsolute.txt +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csproj.FileListAbsolute.txt @@ -20,4 +20,3 @@ D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN. D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Application.Contracts.csproj.CopyComplete D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Application.Contracts.dll D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Application.Contracts.pdb -D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Application.Contracts.csproj.CoreCompileInputs.cache diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csprojAssemblyReference.cache index 93572b14d..28c0be356 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/LINGYUN.ApiGateway.Application.Contracts.csproj.nuget.g.props b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/LINGYUN.ApiGateway.Application.Contracts.csproj.nuget.g.props index 2528351cf..67ca95c64 100644 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/LINGYUN.ApiGateway.Application.Contracts.csproj.nuget.g.props +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application.Contracts/obj/LINGYUN.ApiGateway.Application.Contracts.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder PackageReference - 5.4.0 + 5.5.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.dll index 584d1aaed..9c02a855f 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.Contracts.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll index 4c59c3ba8..2bac2737c 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.csprojAssemblyReference.cache index 950c59093..5a9703431 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Application/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Application.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.CoreCompileInputs.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.CoreCompileInputs.cache deleted file mode 100644 index e826eb8cc..000000000 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -061f3f9088fee775a74c51e73c470d50ddb271db diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.FileListAbsolute.txt b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.FileListAbsolute.txt index 7c526ad2f..e2af42620 100644 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.FileListAbsolute.txt +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csproj.FileListAbsolute.txt @@ -14,4 +14,3 @@ D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN. D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Domain.Shared\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Domain.Shared.AssemblyInfo.cs D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Domain.Shared\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Domain.Shared.dll D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Domain.Shared\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Domain.Shared.pdb -D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.Domain.Shared\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.Domain.Shared.csproj.CoreCompileInputs.cache diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csprojAssemblyReference.cache index e239fc379..ff398c034 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/LINGYUN.ApiGateway.Domain.Shared.csproj.nuget.g.props b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/LINGYUN.ApiGateway.Domain.Shared.csproj.nuget.g.props index 2528351cf..67ca95c64 100644 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/LINGYUN.ApiGateway.Domain.Shared.csproj.nuget.g.props +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain.Shared/obj/LINGYUN.ApiGateway.Domain.Shared.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder PackageReference - 5.4.0 + 5.5.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll index 4c59c3ba8..2bac2737c 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.csprojAssemblyReference.cache index 2e734326f..7b4c5725b 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.Domain/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll index 4c59c3ba8..2bac2737c 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.Domain.Shared.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.EntityFrameworkCore.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.EntityFrameworkCore.csprojAssemblyReference.cache index dfca27236..973c06541 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.EntityFrameworkCore.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.EntityFrameworkCore/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.EntityFrameworkCore.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll index 3f085c531..93b65b540 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/bin/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.CoreCompileInputs.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.CoreCompileInputs.cache deleted file mode 100644 index df447b236..000000000 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -5b7167ef84bb508f25e00864dde6d86ec3356ce7 diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.FileListAbsolute.txt b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.FileListAbsolute.txt index bc00940ae..1abc512ca 100644 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.FileListAbsolute.txt +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csproj.FileListAbsolute.txt @@ -20,7 +20,6 @@ D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN. D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\bin\Debug\netstandard2.0\LINGYUN.ApiGateway.Application.Contracts.pdb D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\bin\Debug\netstandard2.0\LINGYUN.ApiGateway.Domain.Shared.pdb D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.HttpApi.Client.csprojAssemblyReference.cache -D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.HttpApi.Client.csproj.CoreCompileInputs.cache D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.HttpApi.Client.AssemblyInfoInputs.cache D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.HttpApi.Client.AssemblyInfo.cs D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\apigateway\LINGYUN.ApiGateway.HttpApi.Client\obj\Debug\netstandard2.0\LINGYUN.ApiGateway.HttpApi.Client.csproj.CopyComplete diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csprojAssemblyReference.cache index 601c5d472..8257f3552 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll index 3f085c531..93b65b540 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/Debug/netstandard2.0/LINGYUN.ApiGateway.HttpApi.Client.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/LINGYUN.ApiGateway.HttpApi.Client.csproj.nuget.g.props b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/LINGYUN.ApiGateway.HttpApi.Client.csproj.nuget.g.props index 67ca95c64..2528351cf 100644 --- a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/LINGYUN.ApiGateway.HttpApi.Client.csproj.nuget.g.props +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi.Client/obj/LINGYUN.ApiGateway.HttpApi.Client.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder PackageReference - 5.5.0 + 5.4.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/.gitignore b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Application.Contracts.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Application.Contracts.dll index 584d1aaed..9c02a855f 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Application.Contracts.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Application.Contracts.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Domain.Shared.dll b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Domain.Shared.dll index 4c59c3ba8..2bac2737c 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Domain.Shared.dll and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/bin/Debug/netcoreapp3.1/LINGYUN.ApiGateway.Domain.Shared.dll differ diff --git a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.ApiGateway.HttpApi.csprojAssemblyReference.cache b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.ApiGateway.HttpApi.csprojAssemblyReference.cache index fd2218849..f87ca6303 100644 Binary files a/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.ApiGateway.HttpApi.csprojAssemblyReference.cache and b/aspnet-core/modules/apigateway/LINGYUN.ApiGateway.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.ApiGateway.HttpApi.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/.gitignore b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN.IdentityServer.Application.Contracts.csproj b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN.IdentityServer.Application.Contracts.csproj new file mode 100644 index 000000000..936e1ad68 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN.IdentityServer.Application.Contracts.csproj @@ -0,0 +1,23 @@ + + + + netcoreapp3.1 + + + + + + + + + + + + + + + + + + + diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerApplicationContractsModule.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerApplicationContractsModule.cs new file mode 100644 index 000000000..ad437cbce --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerApplicationContractsModule.cs @@ -0,0 +1,29 @@ +using Volo.Abp.Application; +using Volo.Abp.IdentityServer; +using Volo.Abp.IdentityServer.Localization; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; + +namespace LINGYUN.Abp.IdentityServer +{ + [DependsOn(new[] { typeof(AbpDddApplicationModule) })] + [DependsOn(new[] { typeof(AbpIdentityServerDomainSharedModule) })] + public class AbpIdentityServerApplicationContractsModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Get() + .AddVirtualJson("/LINGYUN/Abp/IdentityServer/Localization/Resources"); + }); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerConsts.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerConsts.cs new file mode 100644 index 000000000..c326101c0 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerConsts.cs @@ -0,0 +1,10 @@ +namespace LINGYUN.Abp.IdentityServer +{ + public class AbpIdentityServerConsts + { + /// + /// 远程服务名称 + /// + public const string RemoteServiceName = "IdentityServer"; + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerErrorConsts.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerErrorConsts.cs new file mode 100644 index 000000000..9ff1b657b --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerErrorConsts.cs @@ -0,0 +1,25 @@ +namespace LINGYUN.Abp.IdentityServer +{ + public class AbpIdentityServerErrorConsts + { + /// + /// 客户端标识已经存在 + /// + public const string ClientIdExisted = "ClientIdExisted"; + + /// + /// 客户端声明不存在 + /// + public const string ClientClaimNotFound = "ClientClaimNotFound"; + + /// + /// 客户端密钥不存在 + /// + public const string ClientSecretNotFound = "ClientSecretNotFound"; + + /// + /// 客户端属性不存在 + /// + public const string ClientPropertyNotFound = "ClientPropertyNotFound"; + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerPermissionDefinitionProvider.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerPermissionDefinitionProvider.cs new file mode 100644 index 000000000..826a85e77 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerPermissionDefinitionProvider.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.IdentityServer.Localization; +using Volo.Abp.Localization; + +namespace LINGYUN.Abp.IdentityServer +{ + public class AbpIdentityServerPermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var identityServerGroup = context.AddGroup(AbpIdentityServerPermissions.GroupName, L("Permissions:IdentityServer")); + + var clientPermissions = identityServerGroup.AddPermission(AbpIdentityServerPermissions.Clients.Default, L("Permissions:Clients")); + clientPermissions.AddChild(AbpIdentityServerPermissions.Clients.Create, L("Permissions:Create")); + clientPermissions.AddChild(AbpIdentityServerPermissions.Clients.Update, L("Permissions:Update")); + clientPermissions.AddChild(AbpIdentityServerPermissions.Clients.Enabled, L("Permissions:Enabled")); + clientPermissions.AddChild(AbpIdentityServerPermissions.Clients.Disabled, L("Permissions:Disabled")); + clientPermissions.AddChild(AbpIdentityServerPermissions.Clients.Delete, L("Permissions:Delete")); + var clientClaimPermissiosn = clientPermissions.AddChild(AbpIdentityServerPermissions.Clients.Claims.Default, L("Permissions:Clients:Claims")); + clientClaimPermissiosn.AddChild(AbpIdentityServerPermissions.Clients.Claims.Create, L("Permissions:Create")); + clientClaimPermissiosn.AddChild(AbpIdentityServerPermissions.Clients.Claims.Update, L("Permissions:Update")); + clientClaimPermissiosn.AddChild(AbpIdentityServerPermissions.Clients.Claims.Delete, L("Permissions:Delete")); + } + + protected virtual LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerPermissions.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerPermissions.cs new file mode 100644 index 000000000..b928cb65d --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/AbpIdentityServerPermissions.cs @@ -0,0 +1,25 @@ +namespace LINGYUN.Abp.IdentityServer +{ + public class AbpIdentityServerPermissions + { + public const string GroupName = "IdentityServer"; + + public static class Clients + { + public const string Default = GroupName + ".Clients"; + public const string Create = Default + ".Create"; + public const string Update = Default + ".Update"; + public const string Delete = Default + ".Delete"; + public const string Enabled = Default + ".Enabled"; + public const string Disabled = Default + ".Disabled"; + + public static class Claims + { + public const string Default = Clients.Default + ".Claims"; + public const string Create = Default + ".Create"; + public const string Update = Default + ".Update"; + public const string Delete = Default + ".Delete"; + } + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimCreateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimCreateDto.cs new file mode 100644 index 000000000..f36d03139 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimCreateDto.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientClaimCreateDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(ClientClaimConsts.TypeMaxLength)] + public string Type { get; set; } + + [Required] + [StringLength(ClientClaimConsts.ValueMaxLength)] + public string Value { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimDto.cs new file mode 100644 index 000000000..e25e67164 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimDto.cs @@ -0,0 +1,9 @@ +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientClaimDto + { + public string Type { get; set; } + + public string Value { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimGetByKeyInputDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimGetByKeyInputDto.cs new file mode 100644 index 000000000..e99bb942d --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimGetByKeyInputDto.cs @@ -0,0 +1,16 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientClaimGetByKeyInputDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(ClientClaimConsts.TypeMaxLength)] + public string Type { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimUpdateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimUpdateDto.cs new file mode 100644 index 000000000..23770dadc --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientClaimUpdateDto.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientClaimUpdateDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(ClientClaimConsts.TypeMaxLength)] + public string Type { get; set; } + + [Required] + [StringLength(ClientClaimConsts.ValueMaxLength)] + public string Value { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientCorsOriginDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientCorsOriginDto.cs new file mode 100644 index 000000000..5fb829c5b --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientCorsOriginDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientCorsOriginDto : EntityDto + { + public string Origin { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientCreateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientCreateDto.cs new file mode 100644 index 000000000..a67d22b1d --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientCreateDto.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientCreateDto + { + [Required] + [StringLength(ClientConsts.ClientIdMaxLength)] + public string ClientId { get; set; } + + [Required] + [StringLength(ClientConsts.ClientNameMaxLength)] + public string ClientName { get; set; } + + [StringLength(ClientConsts.DescriptionMaxLength)] + public string Description { get; set; } + + public List AllowedGrantTypes { get; set; } + public ClientCreateDto() + { + AllowedGrantTypes = new List(); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientDto.cs new file mode 100644 index 000000000..9e1fca583 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientDto.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientDto : FullAuditedEntityDto + { + public string ClientId { get; set; } + + public string ClientName { get; set; } + + public string Description { get; set; } + + public string ClientUri { get; set; } + + public string LogoUri { get; set; } + + public bool Enabled { get; set; } + + public string ProtocolType { get; set; } + + public bool RequireClientSecret { get; set; } + + public bool RequireConsent { get; set; } + + public bool AllowRememberConsent { get; set; } + + public bool AlwaysIncludeUserClaimsInIdToken { get; set; } + + public bool RequirePkce { get; set; } + + public bool AllowPlainTextPkce { get; set; } + + public bool AllowAccessTokensViaBrowser { get; set; } + + public string FrontChannelLogoutUri { get; set; } + + public bool FrontChannelLogoutSessionRequired { get; set; } + + public string BackChannelLogoutUri { get; set; } + + public bool BackChannelLogoutSessionRequired { get; set; } + + public bool AllowOfflineAccess { get; set; } + + public int IdentityTokenLifetime { get; set; } + + public int AccessTokenLifetime { get; set; } + + public int AuthorizationCodeLifetime { get; set; } + + public int? ConsentLifetime { get; set; } + + public int AbsoluteRefreshTokenLifetime { get; set; } + + public int SlidingRefreshTokenLifetime { get; set; } + + public int RefreshTokenUsage { get; set; } + + public bool UpdateAccessTokenClaimsOnRefresh { get; set; } + + public int RefreshTokenExpiration { get; set; } + + public int AccessTokenType { get; set; } + + public bool EnableLocalLogin { get; set; } + + public bool IncludeJwtId { get; set; } + + public bool AlwaysSendClientClaims { get; set; } + + public string ClientClaimsPrefix { get; set; } + + public string PairWiseSubjectSalt { get; set; } + + public int? UserSsoLifetime { get; set; } + + public string UserCodeType { get; set; } + + public int DeviceCodeLifetime { get; set; } + + public List AllowedScopes { get; set; } + + public List ClientSecrets { get; set; } + + public List AllowedGrantTypes { get; set; } + + public List AllowedCorsOrigins { get; set; } + + public List RedirectUris { get; set; } + + public List PostLogoutRedirectUris { get; set; } + + public List IdentityProviderRestrictions { get; set; } + + public List Claims { get; set; } + + public List Properties { get; set; } + public ClientDto() + { + Claims = new List(); + Properties = new List(); + AllowedScopes = new List(); + ClientSecrets = new List(); + RedirectUris = new List(); + AllowedGrantTypes = new List(); + AllowedCorsOrigins = new List(); + PostLogoutRedirectUris = new List(); + IdentityProviderRestrictions = new List(); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGetByIdInputDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGetByIdInputDto.cs new file mode 100644 index 000000000..fcdd34d61 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGetByIdInputDto.cs @@ -0,0 +1,11 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientGetByIdInputDto + { + [Required] + public Guid Id { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGetByPagedInputDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGetByPagedInputDto.cs new file mode 100644 index 000000000..0f5629048 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGetByPagedInputDto.cs @@ -0,0 +1,8 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientGetByPagedInputDto : PagedAndSortedResultRequestDto + { + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGrantTypeDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGrantTypeDto.cs new file mode 100644 index 000000000..acdb40f10 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientGrantTypeDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientGrantTypeDto : EntityDto + { + public string GrantType { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientIdPRestrictionDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientIdPRestrictionDto.cs new file mode 100644 index 000000000..bdd84b339 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientIdPRestrictionDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientIdPRestrictionDto : EntityDto + { + public string Provider { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPostLogoutRedirectUriDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPostLogoutRedirectUriDto.cs new file mode 100644 index 000000000..888c5b7a6 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPostLogoutRedirectUriDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientPostLogoutRedirectUriDto : EntityDto + { + public string PostLogoutRedirectUri { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyCreateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyCreateDto.cs new file mode 100644 index 000000000..23432f6ae --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyCreateDto.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientPropertyCreateDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(ClientPropertyConsts.KeyMaxLength)] + public string Key { get; set; } + + [Required] + [StringLength(ClientPropertyConsts.ValueMaxLength)] + public string Value { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyDto.cs new file mode 100644 index 000000000..ed72e3013 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyDto.cs @@ -0,0 +1,11 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientPropertyDto : EntityDto + { + public string Key { get; set; } + + public string Value { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyGetByKeyDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyGetByKeyDto.cs new file mode 100644 index 000000000..87d7b8184 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyGetByKeyDto.cs @@ -0,0 +1,16 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientPropertyGetByKeyDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(ClientPropertyConsts.KeyMaxLength)] + public string Key { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyUpdateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyUpdateDto.cs new file mode 100644 index 000000000..778f0996b --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientPropertyUpdateDto.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientPropertyUpdateDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(ClientPropertyConsts.KeyMaxLength)] + public string Key { get; set; } + + [Required] + [StringLength(ClientPropertyConsts.ValueMaxLength)] + public string Value { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientRedirectUriDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientRedirectUriDto.cs new file mode 100644 index 000000000..2bbb822ba --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientRedirectUriDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientRedirectUriDto : EntityDto + { + public string RedirectUri { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientScopeDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientScopeDto.cs new file mode 100644 index 000000000..be8876bcf --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientScopeDto.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientScopeDto : EntityDto + { + public string Scope { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretCreateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretCreateDto.cs new file mode 100644 index 000000000..e915f0de3 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretCreateDto.cs @@ -0,0 +1,25 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientSecretCreateDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(SecretConsts.TypeMaxLength)] + public string Type { get; set; } + + [Required] + [StringLength(SecretConsts.ValueMaxLength)] + public string Value { get; set; } + + [StringLength(SecretConsts.DescriptionMaxLength)] + public string Description { get; set; } + + public DateTime? Expiration { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretDto.cs new file mode 100644 index 000000000..c32612b87 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretDto.cs @@ -0,0 +1,7 @@ +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientSecretDto : SecretBaseDto + { + + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretGetByTypeDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretGetByTypeDto.cs new file mode 100644 index 000000000..856f46379 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretGetByTypeDto.cs @@ -0,0 +1,16 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientSecretGetByTypeDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(SecretConsts.TypeMaxLength)] + public string Type { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretUpdateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretUpdateDto.cs new file mode 100644 index 000000000..1442776e7 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientSecretUpdateDto.cs @@ -0,0 +1,25 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientSecretUpdateDto + { + [Required] + public Guid ClientId { get; set; } + + [Required] + [StringLength(SecretConsts.TypeMaxLength)] + public string Type { get; set; } + + [Required] + [StringLength(SecretConsts.ValueMaxLength)] + public string Value { get; set; } + + [StringLength(SecretConsts.DescriptionMaxLength)] + public string Description { get; set; } + + public DateTime? Expiration { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientUpdateDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientUpdateDto.cs new file mode 100644 index 000000000..fa510c4af --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/Dto/ClientUpdateDto.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientUpdateDto + { + [Required] + public Guid Id { get; set; } + + [Required] + [StringLength(1000)] + public string ConcurrencyStamp { get; set; } + + [StringLength(ClientConsts.ClientIdMaxLength)] + public string ClientId { get; set; } + + [StringLength(ClientConsts.ClientNameMaxLength)] + public string ClientName { get; set; } + + [StringLength(ClientConsts.DescriptionMaxLength)] + public string Description { get; set; } + + [StringLength(ClientConsts.ClientUriMaxLength)] + public string ClientUri { get; set; } + + [StringLength(ClientConsts.LogoUriMaxLength)] + public string LogoUri { get; set; } + + public bool? Enabled { get; set; } + + [StringLength(ClientConsts.ProtocolTypeMaxLength)] + public string ProtocolType { get; set; } + + public bool? RequireClientSecret { get; set; } + + public bool? RequireConsent { get; set; } + + public bool? AllowRememberConsent { get; set; } + + public bool? AlwaysIncludeUserClaimsInIdToken { get; set; } + + public bool? RequirePkce { get; set; } + + public bool? AllowPlainTextPkce { get; set; } + + public bool? AllowAccessTokensViaBrowser { get; set; } + + [StringLength(ClientConsts.FrontChannelLogoutUriMaxLength)] + public string FrontChannelLogoutUri { get; set; } + + public bool? FrontChannelLogoutSessionRequired { get; set; } + + [StringLength(ClientConsts.BackChannelLogoutUriMaxLength)] + public string BackChannelLogoutUri { get; set; } + + public bool? BackChannelLogoutSessionRequired { get; set; } + + public bool? AllowOfflineAccess { get; set; } + + public int? IdentityTokenLifetime { get; set; } + + public int? AccessTokenLifetime { get; set; } + + public int? AuthorizationCodeLifetime { get; set; } + + public int? ConsentLifetime { get; set; } + + public int? AbsoluteRefreshTokenLifetime { get; set; } + + public int? SlidingRefreshTokenLifetime { get; set; } + + public int? RefreshTokenUsage { get; set; } + + public bool? UpdateAccessTokenClaimsOnRefresh { get; set; } + + public int? RefreshTokenExpiration { get; set; } + + public int? AccessTokenType { get; set; } + + public bool? EnableLocalLogin { get; set; } + + public bool? IncludeJwtId { get; set; } + + public bool? AlwaysSendClientClaims { get; set; } + + [StringLength(ClientConsts.ClientClaimsPrefixMaxLength)] + public string ClientClaimsPrefix { get; set; } + + [StringLength(ClientConsts.PairWiseSubjectSaltMaxLength)] + public string PairWiseSubjectSalt { get; set; } + + public int? UserSsoLifetime { get; set; } + + [StringLength(ClientConsts.UserCodeTypeMaxLength)] + public string UserCodeType { get; set; } + + public int? DeviceCodeLifetime { get; set; } + + public List AllowedScopes { get; set; } + + public List AllowedGrantTypes { get; set; } + + public List AllowedCorsOrigins { get; set; } + + public List RedirectUris { get; set; } + + public List PostLogoutRedirectUris { get; set; } + + public List IdentityProviderRestrictions { get; set; } + public ClientUpdateDto() + { + Enabled = true; + DeviceCodeLifetime = 300; + AllowedScopes = new List(); + RedirectUris = new List(); + AllowedGrantTypes = new List(); + AllowedCorsOrigins = new List(); + PostLogoutRedirectUris = new List(); + IdentityProviderRestrictions = new List(); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/IClientAppService.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/IClientAppService.cs new file mode 100644 index 000000000..a3a7e9c43 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Clients/IClientAppService.cs @@ -0,0 +1,37 @@ +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public interface IClientAppService : IApplicationService + { + Task GetAsync(ClientGetByIdInputDto clientGetById); + + Task> GetAsync(ClientGetByPagedInputDto clientGetByPaged); + + Task CreateAsync(ClientCreateDto clientCreate); + + Task UpdateAsync(ClientUpdateDto clientUpdate); + + Task DeleteAsync(ClientGetByIdInputDto clientGetByIdInput); + + Task AddClaimAsync(ClientClaimCreateDto clientClaimCreate); + + Task UpdateClaimAsync(ClientClaimUpdateDto clientClaimUpdate); + + Task DeleteClaimAsync(ClientClaimGetByKeyInputDto clientClaimGetByKey); + + Task AddPropertyAsync(ClientPropertyCreateDto clientPropertyCreate); + + Task UpdatePropertyAsync(ClientPropertyUpdateDto clientPropertyUpdate); + + Task DeletePropertyAsync(ClientPropertyGetByKeyDto clientPropertyGetByKey); + + Task AddSecretAsync(ClientSecretCreateDto clientSecretCreate); + + Task UpdateSecretAsync(ClientSecretUpdateDto clientSecretUpdate); + + Task DeleteSecretAsync(ClientSecretGetByTypeDto clientSecretGetByType); + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/en.json b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/en.json new file mode 100644 index 000000000..9abecd238 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/en.json @@ -0,0 +1,17 @@ +{ + "culture": "en", + "texts": { + "Permission:IdentityServer": "IdentityServer", + "Permissions:Create": "Create", + "Permissions:Update": "Update", + "Permissions:Enabled": "Enabled", + "Permissions:Disabled": "Disabled", + "Permissions:Delete": "Delete", + "Permissions:Clients": "Clients", + "Permissions:Clients:Claims": "Client claim", + "ClientIdExisted": "Client id: {0} already exists!", + "ClientClaimNotFound": "Client claim: {0} not found!", + "ClientSecretNotFound": "Client secret: {0} not found!", + "ClientPropertyNotFound": "Client property: {0} not found!" + } +} \ No newline at end of file diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/zh-Hans.json b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/zh-Hans.json new file mode 100644 index 000000000..7d3ddc02a --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/zh-Hans.json @@ -0,0 +1,17 @@ +{ + "culture": "zh-Hans", + "texts": { + "Permission:IdentityServer": "IdentityServer管理", + "Permissions:Create": "新增", + "Permissions:Update": "修改", + "Permissions:Enabled": "启用", + "Permissions:Disabled": "停用", + "Permissions:Delete": "删除", + "Permissions:Clients": "客户端管理", + "Permissions:Clients:Claims": "客户端声明", + "ClientIdExisted": "客户端标识: {0} 已经存在!", + "ClientClaimNotFound": "客户端声明: {0} 不存在!", + "ClientSecretNotFound": "客户端密钥: {0} 不存在!", + "ClientPropertyNotFound": "客户端属性: {0} 不存在!" + } +} \ No newline at end of file diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/SecretBaseDto.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/SecretBaseDto.cs new file mode 100644 index 000000000..1dc467e4a --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/SecretBaseDto.cs @@ -0,0 +1,16 @@ +using System; +using Volo.Abp.Application.Dtos; + +namespace LINGYUN.Abp.IdentityServer +{ + public abstract class SecretBaseDto : EntityDto + { + public string Type { get; set; } + + public string Value { get; set; } + + public string Description { get; set; } + + public DateTime? Expiration { get; set; } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/.gitignore b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN.IdentityServer.Application.csproj b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN.IdentityServer.Application.csproj new file mode 100644 index 000000000..7c1b5f303 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN.IdentityServer.Application.csproj @@ -0,0 +1,16 @@ + + + + netcoreapp3.1 + + + + + + + + + + + + diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerAppServiceBase.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerAppServiceBase.cs new file mode 100644 index 000000000..fecf623ad --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerAppServiceBase.cs @@ -0,0 +1,13 @@ +using Volo.Abp.Application.Services; +using Volo.Abp.IdentityServer.Localization; + +namespace LINGYUN.Abp.IdentityServer +{ + public abstract class AbpIdentityServerAppServiceBase : ApplicationService + { + protected AbpIdentityServerAppServiceBase() + { + LocalizationResource = typeof(AbpIdentityServerResource); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerApplicationModule.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerApplicationModule.cs new file mode 100644 index 000000000..80801984b --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerApplicationModule.cs @@ -0,0 +1,25 @@ +using Volo.Abp.AutoMapper; +using Volo.Abp.IdentityServer; +using Volo.Abp.Modularity; + +namespace LINGYUN.Abp.IdentityServer +{ + [DependsOn( + typeof(AbpIdentityServerDomainModule), + typeof(AbpIdentityServerApplicationContractsModule), + typeof(AbpAutoMapperModule) + )] + public class AbpIdentityServerApplicationModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Configurators.Add(ctx => + { + ctx.MapperConfiguration.AddProfile(); + }); + }); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerAutoMapperProfile.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerAutoMapperProfile.cs new file mode 100644 index 000000000..5679a5faa --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/AbpIdentityServerAutoMapperProfile.cs @@ -0,0 +1,23 @@ +using AutoMapper; +using LINGYUN.Abp.IdentityServer.Clients; +using Volo.Abp.IdentityServer.Clients; + +namespace LINGYUN.Abp.IdentityServer +{ + public class AbpIdentityServerAutoMapperProfile : Profile + { + public AbpIdentityServerAutoMapperProfile() + { + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/Clients/ClientAppService.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/Clients/ClientAppService.cs new file mode 100644 index 000000000..38b36013b --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.Application/LINGYUN/Abp/IdentityServer/Clients/ClientAppService.cs @@ -0,0 +1,310 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.IdentityServer.Clients; +using Volo.Abp.Security.Encryption; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + public class ClientAppService : AbpIdentityServerAppServiceBase, IClientAppService + { + private IStringEncryptionService _encryptionService; + protected IStringEncryptionService EncryptionService => LazyGetRequiredService(ref _encryptionService); + + protected IClientRepository ClientRepository { get; } + + public ClientAppService(IClientRepository clientRepository) + { + ClientRepository = clientRepository; + } + + public virtual async Task AddClaimAsync(ClientClaimCreateDto clientClaimCreate) + { + var client = await ClientRepository.GetAsync(clientClaimCreate.ClientId); + + client.AddClaim(clientClaimCreate.Value, clientClaimCreate.Type); + var clientClaim = client.FindClaim(clientClaimCreate.Value, clientClaimCreate.Type); + + return ObjectMapper.Map(clientClaim); + } + + public virtual async Task AddPropertyAsync(ClientPropertyCreateDto clientPropertyCreate) + { + var client = await ClientRepository.GetAsync(clientPropertyCreate.ClientId); + + client.AddProperty(clientPropertyCreate.Key, clientPropertyCreate.Value); + var clientProperty = client.FindProperty(clientPropertyCreate.Key, clientPropertyCreate.Value); + + return ObjectMapper.Map(clientProperty); + } + + public virtual async Task AddSecretAsync(ClientSecretCreateDto clientSecretCreate) + { + var client = await ClientRepository.GetAsync(clientSecretCreate.ClientId); + + var clientSecretValue = EncryptionService.Encrypt(clientSecretCreate.Value); + + client.AddSecret(clientSecretValue, clientSecretCreate.Expiration, + clientSecretCreate.Type, clientSecretCreate.Description); + + var clientSecret = client.FindSecret(clientSecretValue, clientSecretCreate.Type); + + return ObjectMapper.Map(clientSecret); + } + + public virtual async Task CreateAsync(ClientCreateDto clientCreate) + { + var clientIdExists = await ClientRepository.CheckClientIdExistAsync(clientCreate.ClientId); + if(clientIdExists) + { + throw new UserFriendlyException(L[AbpIdentityServerErrorConsts.ClientIdExisted, clientCreate.ClientId]); + } + var client = new Client(GuidGenerator.Create(), clientCreate.ClientId); + client.ClientName = clientCreate.ClientName; + client.Description = clientCreate.Description; + foreach(var grantType in clientCreate.AllowedGrantTypes) + { + client.AddGrantType(grantType.GrantType); + } + + client = await ClientRepository.InsertAsync(client, true); + + return ObjectMapper.Map(client); + } + + public virtual async Task DeleteAsync(ClientGetByIdInputDto clientGetByIdInput) + { + await ClientRepository.DeleteAsync(clientGetByIdInput.Id); + } + + public virtual async Task DeleteClaimAsync(ClientClaimGetByKeyInputDto clientClaimGetByKey) + { + var client = await ClientRepository.GetAsync(clientClaimGetByKey.ClientId); + client.Claims.RemoveAll(claim => claim.Type.Equals(clientClaimGetByKey.Type)); + } + + public virtual async Task DeletePropertyAsync(ClientPropertyGetByKeyDto clientPropertyGetByKey) + { + var client = await ClientRepository.GetAsync(clientPropertyGetByKey.ClientId); + client.Properties.RemoveAll(property => property.Key.Equals(clientPropertyGetByKey.Key)); + } + + public virtual async Task DeleteSecretAsync(ClientSecretGetByTypeDto clientSecretGetByType) + { + var client = await ClientRepository.GetAsync(clientSecretGetByType.ClientId); + client.ClientSecrets.RemoveAll(secret => secret.Type.Equals(clientSecretGetByType.Type)); + } + + public virtual async Task GetAsync(ClientGetByIdInputDto clientGetById) + { + var client = await ClientRepository.GetAsync(clientGetById.Id); + + return ObjectMapper.Map(client); + } + + public virtual async Task> GetAsync(ClientGetByPagedInputDto clientGetByPaged) + { + // Abp官方IdentityServer项目不支持Filter过滤... + var clients = await ClientRepository.GetListAsync(clientGetByPaged.Sorting, + clientGetByPaged.SkipCount, clientGetByPaged.MaxResultCount, true); + + var clientCount = await ClientRepository.GetCountAsync(); + + return new PagedResultDto(clientCount, + ObjectMapper.Map, List>(clients)); + } + + public virtual async Task UpdateAsync(ClientUpdateDto clientUpdate) + { + var client = await ClientRepository.GetAsync(clientUpdate.Id); + + #region Basic Property + client.ConcurrencyStamp = clientUpdate.ConcurrencyStamp; + client.ClientId = clientUpdate.ClientId ?? client.ClientId; + client.ClientUri = clientUpdate.ClientUri ?? client.ClientUri; + client.ClientName = clientUpdate.ClientName ?? client.ClientName; + client.AbsoluteRefreshTokenLifetime = clientUpdate.AbsoluteRefreshTokenLifetime + ?? client.AbsoluteRefreshTokenLifetime; + client.AccessTokenLifetime = clientUpdate.AccessTokenLifetime + ?? client.AccessTokenLifetime; + client.AccessTokenType = clientUpdate.AccessTokenType ?? client.AccessTokenType; + client.AllowAccessTokensViaBrowser = clientUpdate.AllowAccessTokensViaBrowser + ?? client.AllowAccessTokensViaBrowser; + client.AllowOfflineAccess = clientUpdate.AllowOfflineAccess + ?? client.AllowOfflineAccess; + client.AllowPlainTextPkce = clientUpdate.AllowPlainTextPkce ?? client.AllowPlainTextPkce; + client.AllowRememberConsent = clientUpdate.AllowRememberConsent ?? client.AllowRememberConsent; + client.AlwaysIncludeUserClaimsInIdToken = clientUpdate.AlwaysIncludeUserClaimsInIdToken + ?? client.AlwaysIncludeUserClaimsInIdToken; + client.AlwaysSendClientClaims = clientUpdate.AlwaysSendClientClaims ?? client.AlwaysSendClientClaims; + client.AuthorizationCodeLifetime = clientUpdate.AuthorizationCodeLifetime + ?? client.AuthorizationCodeLifetime; + client.BackChannelLogoutSessionRequired = clientUpdate.BackChannelLogoutSessionRequired + ?? client.BackChannelLogoutSessionRequired; + + client.BackChannelLogoutUri = clientUpdate.BackChannelLogoutUri + ?? client.BackChannelLogoutUri; + client.ClientClaimsPrefix = clientUpdate.ClientClaimsPrefix ?? client.ClientClaimsPrefix; + client.ConsentLifetime = clientUpdate.ConsentLifetime ?? client.ConsentLifetime; + client.Description = clientUpdate.Description ?? client.Description; + client.DeviceCodeLifetime = clientUpdate.DeviceCodeLifetime ?? client.DeviceCodeLifetime; + client.Enabled = clientUpdate.Enabled ?? client.Enabled; + client.EnableLocalLogin = clientUpdate.EnableLocalLogin ?? client.EnableLocalLogin; + client.FrontChannelLogoutSessionRequired = clientUpdate.FrontChannelLogoutSessionRequired + ?? client.FrontChannelLogoutSessionRequired; + client.FrontChannelLogoutUri = clientUpdate.FrontChannelLogoutUri ?? client.FrontChannelLogoutUri; + + client.IdentityTokenLifetime = clientUpdate.IdentityTokenLifetime ?? client.IdentityTokenLifetime; + client.IncludeJwtId = clientUpdate.IncludeJwtId ?? client.IncludeJwtId; + client.LogoUri = clientUpdate.LogoUri ?? client.LogoUri; + client.PairWiseSubjectSalt = clientUpdate.PairWiseSubjectSalt ?? client.PairWiseSubjectSalt; + client.ProtocolType = clientUpdate.ProtocolType ?? client.ProtocolType; + client.RefreshTokenExpiration = clientUpdate.RefreshTokenExpiration ?? client.RefreshTokenExpiration; + client.RefreshTokenUsage = clientUpdate.RefreshTokenUsage ?? client.RefreshTokenUsage; + client.RequireClientSecret = clientUpdate.RequireClientSecret ?? client.RequireClientSecret; + client.RequireConsent = clientUpdate.RequireConsent ?? client.RequireConsent; + + client.RequirePkce = clientUpdate.RequirePkce ?? client.RequirePkce; + client.SlidingRefreshTokenLifetime = clientUpdate.SlidingRefreshTokenLifetime + ?? client.SlidingRefreshTokenLifetime; + client.UpdateAccessTokenClaimsOnRefresh = clientUpdate.UpdateAccessTokenClaimsOnRefresh + ?? client.UpdateAccessTokenClaimsOnRefresh; + + client.UserCodeType = clientUpdate.UserCodeType ?? client.UserCodeType; + client.UserSsoLifetime = clientUpdate.UserSsoLifetime ?? client.UserSsoLifetime; + #endregion + + #region AllowScope + + foreach(var scope in clientUpdate.AllowedScopes) + { + var clientScope = client.FindScope(scope.Scope); + if (clientScope == null) + { + client.AddScope(scope.Scope); + } + } + + #endregion + + #region RedirectUris + + foreach(var redirect in clientUpdate.RedirectUris) + { + var clientRedirect = client.FindRedirectUri(redirect.RedirectUri); + if(clientRedirect == null) + { + client.AddRedirectUri(redirect.RedirectUri); + } + } + + #endregion + + #region AllowedGrantTypes + + foreach (var grantType in clientUpdate.AllowedGrantTypes) + { + var clientGrantType = client.FindGrantType(grantType.GrantType); + if (clientGrantType == null) + { + client.AddGrantType(grantType.GrantType); + } + } + + #endregion + + #region AllowedCorsOrigins + + foreach (var corgOrigin in clientUpdate.AllowedCorsOrigins) + { + var clientCorsOrigin = client.FindCorsOrigin(corgOrigin.Origin); + if (clientCorsOrigin == null) + { + client.AddCorsOrigin(corgOrigin.Origin); + } + } + + #endregion + + #region PostLogoutRedirectUris + + foreach (var logoutRedirect in clientUpdate.PostLogoutRedirectUris) + { + var clientLogoutRedirect = client.FindPostLogoutRedirectUri(logoutRedirect.PostLogoutRedirectUri); + if (clientLogoutRedirect == null) + { + client.AddPostLogoutRedirectUri(logoutRedirect.PostLogoutRedirectUri); + } + } + + #endregion + + #region IdentityProviderRestrictions + + foreach (var provider in clientUpdate.IdentityProviderRestrictions) + { + var clientIdentityProvider = client.FindIdentityProviderRestriction(provider.Provider); + if (clientIdentityProvider == null) + { + client.AddIdentityProviderRestriction(provider.Provider); + } + } + + #endregion + + client = await ClientRepository.UpdateAsync(client, true); + + return ObjectMapper.Map(client); + } + + public virtual async Task UpdateClaimAsync(ClientClaimUpdateDto clientClaimUpdate) + { + var client = await ClientRepository.GetAsync(clientClaimUpdate.ClientId); + + var clientClaim = client.Claims.FirstOrDefault(claim => claim.Type.Equals(clientClaimUpdate.Type)); + if(clientClaim == null) + { + throw new UserFriendlyException(L[AbpIdentityServerErrorConsts.ClientClaimNotFound, clientClaimUpdate.Type]); + } + clientClaim.Value = clientClaimUpdate.Value; + + return ObjectMapper.Map(clientClaim); + } + + public virtual async Task UpdatePropertyAsync(ClientPropertyUpdateDto clientPropertyUpdate) + { + var client = await ClientRepository.GetAsync(clientPropertyUpdate.ClientId); + + var clientProperty = client.Properties + .FirstOrDefault(property => property.Key.Equals(clientPropertyUpdate.Key)); + if (clientProperty == null) + { + throw new UserFriendlyException( + L[AbpIdentityServerErrorConsts.ClientPropertyNotFound, clientPropertyUpdate.Key]); + } + clientProperty.Value = clientPropertyUpdate.Value; + + return ObjectMapper.Map(clientProperty); + } + + public virtual async Task UpdateSecretAsync(ClientSecretUpdateDto clientSecretUpdate) + { + var client = await ClientRepository.GetAsync(clientSecretUpdate.ClientId); + + var clientSecret = client.ClientSecrets + .FirstOrDefault(secret => secret.Type.Equals(clientSecretUpdate.Type)); + if (clientSecret == null) + { + throw new UserFriendlyException( + L[AbpIdentityServerErrorConsts.ClientSecretNotFound, clientSecretUpdate.Type]); + } + clientSecret.Value = EncryptionService.Encrypt(clientSecretUpdate.Value); + + return ObjectMapper.Map(clientSecret); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/.gitignore b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN.IdentityServer.HttpApi.csproj b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN.IdentityServer.HttpApi.csproj new file mode 100644 index 000000000..a41fff697 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN.IdentityServer.HttpApi.csproj @@ -0,0 +1,16 @@ + + + + netcoreapp3.1 + + + + + + + + + + + + diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN/Abp/IdentityServer/AbpIdentityServerHttpApiModule.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN/Abp/IdentityServer/AbpIdentityServerHttpApiModule.cs new file mode 100644 index 000000000..2fbb3a683 --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN/Abp/IdentityServer/AbpIdentityServerHttpApiModule.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Modularity; + +namespace LINGYUN.Abp.IdentityServer +{ + [DependsOn( + typeof(AbpIdentityServerApplicationContractsModule), + typeof(AbpAspNetCoreMvcModule) + )] + public class AbpIdentityServerHttpApiModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(mvcBuilder => + { + mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpIdentityServerHttpApiModule).Assembly); + }); + } + } +} diff --git a/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN/Abp/IdentityServer/Clients/ClientController.cs b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN/Abp/IdentityServer/Clients/ClientController.cs new file mode 100644 index 000000000..c7590a36b --- /dev/null +++ b/aspnet-core/modules/identityServer/LINGYUN.IdentityServer.HttpApi/LINGYUN/Abp/IdentityServer/Clients/ClientController.cs @@ -0,0 +1,116 @@ +using Microsoft.AspNetCore.Mvc; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.AspNetCore.Mvc; + +namespace LINGYUN.Abp.IdentityServer.Clients +{ + [RemoteService(Name = AbpIdentityServerConsts.RemoteServiceName)] + [Area("IdentityServer")] + [Route("api/IdentityServer/Clients")] + public class ClientController : AbpController, IClientAppService + { + protected IClientAppService ClientAppService { get; } + public ClientController(IClientAppService clientAppService) + { + ClientAppService = clientAppService; + } + + [HttpPost] + public virtual async Task CreateAsync(ClientCreateDto clientCreate) + { + return await ClientAppService.CreateAsync(clientCreate); + } + + [HttpDelete] + [Route("{Id}")] + public virtual async Task DeleteAsync(ClientGetByIdInputDto clientGetByIdInput) + { + await ClientAppService.DeleteAsync(clientGetByIdInput); + } + + [HttpGet] + [Route("{Id}")] + public virtual async Task GetAsync(ClientGetByIdInputDto clientGetById) + { + return await ClientAppService.GetAsync(clientGetById); + } + + [HttpGet] + public virtual async Task> GetAsync(ClientGetByPagedInputDto clientGetByPaged) + { + return await ClientAppService.GetAsync(clientGetByPaged); + } + + [HttpPut] + [Route("{Id}")] + public virtual async Task UpdateAsync(ClientUpdateDto clientUpdate) + { + return await ClientAppService.UpdateAsync(clientUpdate); + } + + [HttpPost] + [Route("Claims")] + public virtual async Task AddClaimAsync(ClientClaimCreateDto clientClaimCreate) + { + return await ClientAppService.AddClaimAsync(clientClaimCreate); + } + + [HttpPut] + [Route("Claims")] + public virtual async Task UpdateClaimAsync(ClientClaimUpdateDto clientClaimUpdate) + { + return await ClientAppService.UpdateClaimAsync(clientClaimUpdate); + } + + [HttpDelete] + [Route("Claims")] + public virtual async Task DeleteClaimAsync(ClientClaimGetByKeyInputDto clientClaimGetByKey) + { + await ClientAppService.DeleteClaimAsync(clientClaimGetByKey); + } + + [HttpPost] + [Route("Properties")] + public virtual async Task AddPropertyAsync(ClientPropertyCreateDto clientPropertyCreate) + { + return await ClientAppService.AddPropertyAsync(clientPropertyCreate); + } + + [HttpPut] + [Route("Properties")] + public virtual async Task UpdatePropertyAsync(ClientPropertyUpdateDto clientPropertyUpdate) + { + return await ClientAppService.UpdatePropertyAsync(clientPropertyUpdate); + } + + [HttpDelete] + [Route("Properties")] + public virtual async Task DeletePropertyAsync(ClientPropertyGetByKeyDto clientPropertyGetByKey) + { + await ClientAppService.DeletePropertyAsync(clientPropertyGetByKey); + } + + [HttpPost] + [Route("Secrets")] + public virtual async Task AddSecretAsync(ClientSecretCreateDto clientSecretCreate) + { + return await ClientAppService.AddSecretAsync(clientSecretCreate); + } + + [HttpDelete] + [Route("Secrets")] + public virtual async Task DeleteSecretAsync(ClientSecretGetByTypeDto clientSecretGetByType) + { + await ClientAppService.DeleteSecretAsync(clientSecretGetByType); + } + + [HttpPut] + [Route("Secrets")] + public virtual async Task UpdateSecretAsync(ClientSecretUpdateDto clientSecretUpdate) + { + return await ClientAppService.UpdateSecretAsync(clientSecretUpdate); + } + } +} diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/.gitignore b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.Contracts.csprojAssemblyReference.cache b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.Contracts.csprojAssemblyReference.cache index 3665cbc0e..c259b67ed 100644 Binary files a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.Contracts.csprojAssemblyReference.cache and b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.Contracts.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/.gitignore b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll index 54b4aaa97..054bea4fe 100644 Binary files a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll and b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll differ diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb index 8d6a3e8ef..2253daca2 100644 Binary files a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb and b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/bin/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb differ diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.csprojAssemblyReference.cache b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.csprojAssemblyReference.cache index 7e1324bbf..384e5dc48 100644 Binary files a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.csprojAssemblyReference.cache and b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll index 54b4aaa97..054bea4fe 100644 Binary files a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll and b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.dll differ diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb index 8d6a3e8ef..2253daca2 100644 Binary files a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb and b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.PermissionManagement.Application.pdb differ diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/LINGYUN.Abp.PermissionManagement.Application.csproj.nuget.g.props b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/LINGYUN.Abp.PermissionManagement.Application.csproj.nuget.g.props index 2528351cf..67ca95c64 100644 --- a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/LINGYUN.Abp.PermissionManagement.Application.csproj.nuget.g.props +++ b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Application/obj/LINGYUN.Abp.PermissionManagement.Application.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder PackageReference - 5.4.0 + 5.5.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) diff --git a/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Domain/.gitignore b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Domain/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/permissions/LINGYUN.Abp.PermissionManagement.Domain/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/.gitignore b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.Contracts.csprojAssemblyReference.cache b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.Contracts.csprojAssemblyReference.cache index 8438368d4..4e54b3c6e 100644 Binary files a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.Contracts.csprojAssemblyReference.cache and b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.Contracts.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/.gitignore b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.csprojAssemblyReference.cache b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.csprojAssemblyReference.cache index 70a0eeb27..ae241ebe4 100644 Binary files a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.csprojAssemblyReference.cache and b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/obj/Debug/netstandard2.0/LINGYUN.Abp.SettingManagement.Application.csprojAssemblyReference.cache differ diff --git a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/.gitignore b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/.gitignore new file mode 100644 index 000000000..79774a567 --- /dev/null +++ b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/.gitignore @@ -0,0 +1,7 @@ +bin +obj +Logs +appsettings.*.json +node_modules +yarn.lock +package-lock.json \ No newline at end of file diff --git a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.Abp.SettingManagement.HttpApi.csprojAssemblyReference.cache b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.Abp.SettingManagement.HttpApi.csprojAssemblyReference.cache index 28df53308..970b1ecb3 100644 Binary files a/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.Abp.SettingManagement.HttpApi.csprojAssemblyReference.cache and b/aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/obj/Debug/netcoreapp3.1/LINGYUN.Abp.SettingManagement.HttpApi.csprojAssemblyReference.cache differ diff --git a/aspnet-core/services/account/AuthServer.Host/AuthIdentityServerModule.cs b/aspnet-core/services/account/AuthServer.Host/AuthIdentityServerModule.cs index 7a74b5e05..654453936 100644 --- a/aspnet-core/services/account/AuthServer.Host/AuthIdentityServerModule.cs +++ b/aspnet-core/services/account/AuthServer.Host/AuthIdentityServerModule.cs @@ -1,10 +1,12 @@ -using LINGYUN.ApiGateway; +using IdentityServer4.Validation; +using LINGYUN.ApiGateway; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using StackExchange.Redis; using System; @@ -35,6 +37,7 @@ using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; using Volo.Abp.Threading; using Volo.Abp.UI.Navigation.Urls; +using LINGYUN.Abp.IdentityServer; using AbpPermissionManagementApplicationModule = LINGYUN.Abp.PermissionManagement.AbpPermissionManagementApplicationModule; @@ -42,6 +45,8 @@ namespace AuthServer.Host { [DependsOn( typeof(ApiGatewayApplicationContractsModule), + typeof(AbpIdentityServerApplicationModule), + typeof(AbpIdentityServerHttpApiModule), typeof(AbpAccountApplicationModule), typeof(AbpAccountWebIdentityServerModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), @@ -158,8 +163,8 @@ namespace AuthServer.Host app.UseAuthentication(); app.UseJwtTokenMiddleware(); app.UseMultiTenancy(); - app.UseIdentityServer(); app.UseAbpRequestLocalization(); + app.UseIdentityServer(); app.UseSwagger(); app.UseSwaggerUI(options => { @@ -167,7 +172,6 @@ namespace AuthServer.Host }); app.UseAuditing(); app.UseMvcWithDefaultRouteAndArea(); - SeedData(context); } diff --git a/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj b/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj index 2f89dc015..d91c575ba 100644 --- a/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj +++ b/aspnet-core/services/account/AuthServer.Host/AuthServer.Host.csproj @@ -41,6 +41,8 @@ + + diff --git a/vueJs/src/api/clients.ts b/vueJs/src/api/clients.ts new file mode 100644 index 000000000..6f7d2124f --- /dev/null +++ b/vueJs/src/api/clients.ts @@ -0,0 +1,133 @@ + +import ApiService from './serviceBase' +import { FullAuditedEntityDto, PagedAndSortedResultRequestDto, PagedResultDto } from './types' + +const serviceUrl = process.env.VUE_APP_BASE_API + +export default class ClientService { + public static getClientById(id: string) { + let _url = '/api/IdentityServer/Clients/' + _url += id + return ApiService.Get(_url, serviceUrl) + } + + public static getClients(payload: ClientGetByPaged) { + let _url = '/api/IdentityServer/Clients' + _url += '?sorting=' + payload.sorting + _url += '&skipCount=' + payload.skipCount + _url += '&maxResultCount=' + payload.maxResultCount + return ApiService.Get>(_url, serviceUrl) + } +} + +export class ClientGetById { + id!: string +} + +export class ClientGetByPaged extends PagedAndSortedResultRequestDto { + filter?: string +} + +export class ClientSecret { + type!: string + value!: string + description: string | undefined + expiration: Date | undefined +} + +export class ClientRedirectUri { + redirectUri!: string +} + +export class ClientClaim { + type!: string + value!: string +} + +export class ClientCorsOrigin { + origin!: string +} + +export class ClientGrantType { + grantType!: string +} + +export class ClientIdPRestriction { + provider!: string +} + +export class ClientPostLogoutRedirectUri { + postLogoutRedirectUri!: string +} + +export class ClientProperty { + key!: string + value!: string +} + +export class ClientScope { + scope!: string +} + +export class Client extends FullAuditedEntityDto { + id!: string + clientId!: string + clientName!: string + description?: string + clientUri?: string + logoUri?: string + enabled!: boolean + protocolType!: string + requireClientSecret!: boolean + requireConsent!: boolean + allowRememberConsent!: boolean + alwaysIncludeUserClaimsInIdToken!: boolean + requirePkce!: boolean + allowPlainTextPkce!: boolean + allowAccessTokensViaBrowser!: boolean + frontChannelLogoutUri?: string + frontChannelLogoutSessionRequired!: boolean + backChannelLogoutUri?: string + backChannelLogoutSessionRequired!: boolean + allowOfflineAccess!: boolean + identityTokenLifetime?: number + accessTokenLifetime?: number + authorizationCodeLifetime?: number + consentLifetime?: number + absoluteRefreshTokenLifetime?: number + slidingRefreshTokenLifetime?: number + refreshTokenUsage?: number + updateAccessTokenClaimsOnRefresh!: boolean + refreshTokenExpiration?: number + accessTokenType?: number + enableLocalLogin!: boolean + includeJwtId!: boolean + alwaysSendClientClaims!: boolean + clientClaimsPrefix?: string + pairWiseSubjectSalt?: string + userSsoLifetime?: number + userCodeType?: string + deviceCodeLifetime?: number + allowedScopes!: ClientScope[] + clientSecrets!: ClientSecret[] + allowedGrantTypes!: ClientGrantType[] + allowedCorsOrigins!: ClientCorsOrigin[] + redirectUris!: ClientRedirectUri[] + postLogoutRedirectUris!: ClientPostLogoutRedirectUri[] + identityProviderRestrictions!: ClientIdPRestriction[] + claims!: ClientClaim[] + properties!: ClientProperty[] + + constructor() { + super() + this.allowedScopes = new Array() + this.clientSecrets = new Array() + this.allowedGrantTypes = new Array() + this.allowedCorsOrigins = new Array() + this.redirectUris = new Array() + this.postLogoutRedirectUris = new Array() + this.identityProviderRestrictions = new Array() + this.claims = new Array() + this.properties = new Array() + } +} diff --git a/vueJs/src/api/types.ts b/vueJs/src/api/types.ts index d6def7385..0a3c72eca 100644 --- a/vueJs/src/api/types.ts +++ b/vueJs/src/api/types.ts @@ -61,6 +61,7 @@ export class PagedAndSortedResultRequestDto implements IPagedResultRequest, ISor sorting: string | undefined constructor() { + this.sorting = '' this.skipCount = 1 this.maxResultCount = 30 } @@ -186,3 +187,29 @@ export interface ISoftDelete { /** 是否已删除 */ isDeleted: boolean } + +/** 作用于接口 */ +export interface IScope { + /** 作用域 */ + scope: string +} + +/** 密钥 */ +export interface ISecret { + /** 密钥类型 */ + type: string + /** 密钥值 */ + value: string + /** 密钥说明 */ + description: string | undefined + /** 过期日期 */ + expiration: Date | undefined +} + +/** 令牌 */ +export interface IClaim { + /** 类型 */ + type: string + /** 数值 */ + value: string +} diff --git a/vueJs/src/components/InputTagEx/index.vue b/vueJs/src/components/InputTagEx/index.vue new file mode 100644 index 000000000..5abaa9c46 --- /dev/null +++ b/vueJs/src/components/InputTagEx/index.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/vueJs/src/lang/zh.ts b/vueJs/src/lang/zh.ts index 5bc1cd262..9e8c26ee4 100644 --- a/vueJs/src/lang/zh.ts +++ b/vueJs/src/lang/zh.ts @@ -71,7 +71,9 @@ export default { apigateway: '网关管理', group: '路由分组', global: '全局配置', - route: '路由配置' + route: '路由配置', + identityServer: '身份认证服务器', + clients: '客户端管理' }, navbar: { logOut: '退出登录', @@ -358,5 +360,33 @@ export default { ipBlockedList: 'Ip黑名单', authenticationProviderKey: '身份认证程序', allowedScopes: '允许认证范围' + }, + identityServer: { + otherOpera: '更多操作', + enabled: '启用客户端', + disbled: '停用客户端', + deleteClient: '删除客户端', + updateClient: '编辑客户端', + updateClientByName: '编辑客户端 {name}', + createClient: '创建客户端', + clientId: '客户端标识', + clientName: '客户端名称', + description: '客户端说明', + protocolType: '协议类型', + requirePkce: '需要Pkce', + allowPlainTextPkce: '允许纯文本Pkce', + allowOfflineAccess: '允许离线访问', + allowedScopes: '允许的作用域', + redirectUris: '重定向Uri', + allowedGrantTypes: '允许的授权类型', + allowAccessTokensViaBrowser: '允许通过浏览器访问令牌', + identityTokenLifetime: '身份令牌有效期(s)', + accessTokenLifetime: '访问令牌有效期(s)', + authorizationCodeLifetime: '授权码有效期(s)', + absoluteRefreshTokenLifetime: '绝对刷新令牌有效期(s)', + slidingRefreshTokenLifetime: '滚动刷新令牌有效期(s)', + deviceCodeLifetime: '设备授权码有效期(s)', + clientClaimsPrefix: '客户端声明前缀', + basicOptions: '基本设置' } } diff --git a/vueJs/src/router/index.ts b/vueJs/src/router/index.ts index b35571fd6..b5bad93f5 100644 --- a/vueJs/src/router/index.ts +++ b/vueJs/src/router/index.ts @@ -352,6 +352,33 @@ export const asyncRoutes: RouteConfig[] = [ } } ] + }, + { + path: '/identityServer', + component: Layout, + meta: { + title: 'identityServer', + icon: 'manager', + roles: ['IdentityServer.Clients'], + alwaysShow: true + }, + children: [ + { + path: 'clients', + component: () => import('@/views/admin/identityServer/client/index.vue'), + name: 'clients', + meta: { + title: 'clients', + icon: 'clients', + roles: ['IdentityServer.Clients'] + } + } + ] + }, + { + path: '*', + component: () => import(/* webpackChunkName: "error-page-404" */ '@/views/error-page/404.vue'), + meta: { hidden: true } } ] diff --git a/vueJs/src/utils/request.ts b/vueJs/src/utils/request.ts index 0affa6e64..d1ae28449 100644 --- a/vueJs/src/utils/request.ts +++ b/vueJs/src/utils/request.ts @@ -46,14 +46,14 @@ service.interceptors.response.use( { confirmButtonText: '重新登录', cancelButtonText: '取消', - type: 'warning' + type: 'error' }).then(() => { UserModule.ResetToken() location.reload() // To prevent bugs from vue-router + return Promise.reject(error) }) } if (error.response.status === 429) { - console.log(error.response.data) Message({ message: '您的操作过快,请稍后再试!', type: 'warning', @@ -61,6 +61,14 @@ service.interceptors.response.use( }) return Promise.reject(error) } + if (error.response.status === 400 && error.response.data.error_description) { + Message({ + message: error.response.data.error_description, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } let message = error.message if (error.response.headers._abperrorformat) { message = error.response.data.error.message + error.response.data.error.details diff --git a/vueJs/src/views/admin/apigateway/components/RouteCreateOrEditForm.vue b/vueJs/src/views/admin/apigateway/components/RouteCreateOrEditForm.vue index a0a6129f4..c835f8471 100644 --- a/vueJs/src/views/admin/apigateway/components/RouteCreateOrEditForm.vue +++ b/vueJs/src/views/admin/apigateway/components/RouteCreateOrEditForm.vue @@ -31,6 +31,7 @@ @@ -550,8 +551,8 @@ export default class extends Vue { } } - private onSubmitEdit(formName: string) { - const routeEditForm = this.$refs[formName] as any + private onSubmitEdit() { + const routeEditForm = this.$refs.formRoute as any routeEditForm.validate(async(valid: boolean) => { if (valid) { if (this.routeId) { diff --git a/vueJs/src/views/admin/apigateway/route.vue b/vueJs/src/views/admin/apigateway/route.vue index 88d1d65e9..73f0c58a5 100644 --- a/vueJs/src/views/admin/apigateway/route.vue +++ b/vueJs/src/views/admin/apigateway/route.vue @@ -70,13 +70,23 @@ + + + - - - +
+
+ + + {{ tag[key] }} + + + +
+
+ + + + + diff --git a/vueJs/src/views/admin/identityServer/client/components/ClientEditForm.vue b/vueJs/src/views/admin/identityServer/client/components/ClientEditForm.vue new file mode 100644 index 000000000..4ea633d42 --- /dev/null +++ b/vueJs/src/views/admin/identityServer/client/components/ClientEditForm.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/vueJs/src/views/admin/identityServer/client/index.vue b/vueJs/src/views/admin/identityServer/client/index.vue new file mode 100644 index 000000000..17b62c1a0 --- /dev/null +++ b/vueJs/src/views/admin/identityServer/client/index.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/vueJs/src/views/admin/identityServer/components/ScopeInput.vue b/vueJs/src/views/admin/identityServer/components/ScopeInput.vue new file mode 100644 index 000000000..326a3aa2d --- /dev/null +++ b/vueJs/src/views/admin/identityServer/components/ScopeInput.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/vueJs/src/views/login/index.vue b/vueJs/src/views/login/index.vue index e9b03f18f..1176392e0 100644 --- a/vueJs/src/views/login/index.vue +++ b/vueJs/src/views/login/index.vue @@ -197,13 +197,7 @@ export default class extends Vue { this.$router.push({ path: this.redirect || '/' }) - }).catch(err => { - console.log(err) - Message({ - message: err.message, - type: 'error', - duration: 5 * 1000 - }) + }).catch(() => { setTimeout(() => { this.loading = false }, 0.5 * 1000)