From a4557135b7b41b11001901a2117d89e6456c7613 Mon Sep 17 00:00:00 2001 From: Young Date: Sun, 13 Oct 2024 15:27:29 +0800 Subject: [PATCH] optimise codes --- .../Extensions/AuthenticationSetup.cs | 13 +------------ src/Infrastructure/Extensions/AuthorizeSetup.cs | 2 -- src/Infrastructure/Extensions/ControllerSetup.cs | 1 - src/Infrastructure/Extensions/EncryptionSetup.cs | 11 +++++++++++ src/Infrastructure/Extensions/RedisSetup.cs | 2 -- .../Extensions/TokenContextSetup.cs | 15 +++++++++++++++ src/Infrastructure/Extensions/UserContextSetup.cs | 11 +++++++++++ src/Infrastructure/Filters/IdempotencyFilter.cs | 1 - .../Security/DefaultTokenBuilder.cs | 2 -- .../Security/DefaultTokenHandler.cs | 1 - src/Infrastructure/Security/DefaultUserContext.cs | 5 +++++ src/Infrastructure/Security/ITokenBuilder.cs | 1 - src/Infrastructure/Security/IUserContext.cs | 4 ---- 13 files changed, 43 insertions(+), 26 deletions(-) create mode 100644 src/Infrastructure/Extensions/EncryptionSetup.cs create mode 100644 src/Infrastructure/Extensions/TokenContextSetup.cs create mode 100644 src/Infrastructure/Extensions/UserContextSetup.cs create mode 100644 src/Infrastructure/Security/DefaultUserContext.cs diff --git a/src/Infrastructure/Extensions/AuthenticationSetup.cs b/src/Infrastructure/Extensions/AuthenticationSetup.cs index 0b9c963..1e28d34 100644 --- a/src/Infrastructure/Extensions/AuthenticationSetup.cs +++ b/src/Infrastructure/Extensions/AuthenticationSetup.cs @@ -1,13 +1,8 @@ -using System.IdentityModel.Tokens.Jwt; -using System.Security.Claims; +using System.Security.Claims; using Infrastructure.Options; -using Infrastructure.Security; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.IdentityModel.Tokens; -using NetTaste; namespace Infrastructure.Extensions; @@ -33,13 +28,7 @@ public static class AuthenticationSetup return services; } - services.TryAddSingleton(); - services.TryAddScoped(typeof(IUserContext<>), typeof(UserContextBase<>)); - services.TryAddSingleton(); - services.TryAddSingleton(); services.TryAddSingleton, JwtBearerOptionsPostConfigureOptions>(); - services.TryAddSingleton(typeof(ITokenBuilder), typeof(TokenBuilderBase<>)); - var key = configuration["AUDIENCE_KEY"] ?? audienceOptions.Secret; ArgumentException.ThrowIfNullOrEmpty(key); var buffer = Encoding.UTF8.GetBytes(key); diff --git a/src/Infrastructure/Extensions/AuthorizeSetup.cs b/src/Infrastructure/Extensions/AuthorizeSetup.cs index 61dce58..044e889 100644 --- a/src/Infrastructure/Extensions/AuthorizeSetup.cs +++ b/src/Infrastructure/Extensions/AuthorizeSetup.cs @@ -1,6 +1,4 @@ using Infrastructure.Options; -using Infrastructure.Security; -using Microsoft.Extensions.DependencyInjection; using Microsoft.IdentityModel.Tokens; namespace Infrastructure.Extensions; diff --git a/src/Infrastructure/Extensions/ControllerSetup.cs b/src/Infrastructure/Extensions/ControllerSetup.cs index f0dccbd..f0eaba9 100644 --- a/src/Infrastructure/Extensions/ControllerSetup.cs +++ b/src/Infrastructure/Extensions/ControllerSetup.cs @@ -1,7 +1,6 @@ using Infrastructure.Filters; using Infrastructure.Utils; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.DependencyInjection; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; diff --git a/src/Infrastructure/Extensions/EncryptionSetup.cs b/src/Infrastructure/Extensions/EncryptionSetup.cs new file mode 100644 index 0000000..4b52be9 --- /dev/null +++ b/src/Infrastructure/Extensions/EncryptionSetup.cs @@ -0,0 +1,11 @@ +namespace Infrastructure.Extensions; + +public static class EncryptionSetup +{ + public static IServiceCollection AddAesEncryption(this IServiceCollection services) + { + ArgumentNullException.ThrowIfNull(services); + services.TryAddSingleton(); + return services; + } +} \ No newline at end of file diff --git a/src/Infrastructure/Extensions/RedisSetup.cs b/src/Infrastructure/Extensions/RedisSetup.cs index 8d190dd..a737ef4 100644 --- a/src/Infrastructure/Extensions/RedisSetup.cs +++ b/src/Infrastructure/Extensions/RedisSetup.cs @@ -1,6 +1,4 @@ using Infrastructure.Options; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using StackExchange.Redis; namespace Infrastructure.Extensions; diff --git a/src/Infrastructure/Extensions/TokenContextSetup.cs b/src/Infrastructure/Extensions/TokenContextSetup.cs new file mode 100644 index 0000000..321d734 --- /dev/null +++ b/src/Infrastructure/Extensions/TokenContextSetup.cs @@ -0,0 +1,15 @@ +namespace Infrastructure.Extensions; + +public static class TokenContextSetup +{ + public static IServiceCollection AddDefaultTokenContext(this IServiceCollection services) + { + ArgumentNullException.ThrowIfNull(services); + services.TryAddSingleton(); + services.TryAddSingleton(); + services.TryAddSingleton(); + var builder = new DefaultTokenBuilder(null, null, null); + builder.SetUserContext(null); + return services; + } +} \ No newline at end of file diff --git a/src/Infrastructure/Extensions/UserContextSetup.cs b/src/Infrastructure/Extensions/UserContextSetup.cs new file mode 100644 index 0000000..7ed4b10 --- /dev/null +++ b/src/Infrastructure/Extensions/UserContextSetup.cs @@ -0,0 +1,11 @@ +namespace Infrastructure.Extensions; + +public static class UserContextSetup +{ + public static IServiceCollection AddDefaultUserContext(this IServiceCollection services) + { + ArgumentNullException.ThrowIfNull(services); + services.TryAddScoped(typeof(IUserContext<>), typeof(DefaultUserContext)); + return services; + } +} \ No newline at end of file diff --git a/src/Infrastructure/Filters/IdempotencyFilter.cs b/src/Infrastructure/Filters/IdempotencyFilter.cs index fe014d8..c7c468e 100644 --- a/src/Infrastructure/Filters/IdempotencyFilter.cs +++ b/src/Infrastructure/Filters/IdempotencyFilter.cs @@ -3,7 +3,6 @@ using Infrastructure.Repository; using Infrastructure.Utils; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.Logging; using System.Security.Cryptography; using Microsoft.AspNetCore.Mvc; diff --git a/src/Infrastructure/Security/DefaultTokenBuilder.cs b/src/Infrastructure/Security/DefaultTokenBuilder.cs index ad3dad5..df56ff8 100644 --- a/src/Infrastructure/Security/DefaultTokenBuilder.cs +++ b/src/Infrastructure/Security/DefaultTokenBuilder.cs @@ -1,5 +1,3 @@ -using System.IdentityModel.Tokens.Jwt; - namespace Infrastructure.Security; public class DefaultTokenBuilder( diff --git a/src/Infrastructure/Security/DefaultTokenHandler.cs b/src/Infrastructure/Security/DefaultTokenHandler.cs index 15df00c..05a1395 100644 --- a/src/Infrastructure/Security/DefaultTokenHandler.cs +++ b/src/Infrastructure/Security/DefaultTokenHandler.cs @@ -1,4 +1,3 @@ -using System.IdentityModel.Tokens.Jwt; using Microsoft.IdentityModel.Tokens; namespace Infrastructure.Security; diff --git a/src/Infrastructure/Security/DefaultUserContext.cs b/src/Infrastructure/Security/DefaultUserContext.cs new file mode 100644 index 0000000..15f3b00 --- /dev/null +++ b/src/Infrastructure/Security/DefaultUserContext.cs @@ -0,0 +1,5 @@ +namespace Infrastructure.Security; + +public class DefaultUserContext : UserContextBase +{ +} \ No newline at end of file diff --git a/src/Infrastructure/Security/ITokenBuilder.cs b/src/Infrastructure/Security/ITokenBuilder.cs index 164b045..e0c83de 100644 --- a/src/Infrastructure/Security/ITokenBuilder.cs +++ b/src/Infrastructure/Security/ITokenBuilder.cs @@ -1,5 +1,4 @@ using System.Globalization; -using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using Infrastructure.Utils; using Microsoft.AspNetCore.Authentication.JwtBearer; diff --git a/src/Infrastructure/Security/IUserContext.cs b/src/Infrastructure/Security/IUserContext.cs index 89f668d..15f36fc 100644 --- a/src/Infrastructure/Security/IUserContext.cs +++ b/src/Infrastructure/Security/IUserContext.cs @@ -28,8 +28,4 @@ public abstract class UserContextBase : IUserContext where TId : IEqua public string[] RoleIds { get; set; } public string RemoteIpAddress { get; set; } -} - -public class DefaultUserContext : UserContextBase -{ } \ No newline at end of file