From 6435175dc3d853cb170270e39e8f1505adffeae5 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Thu, 8 Feb 2024 23:19:37 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=80=82=E9=85=8D=20ContiNew=20Sta?= =?UTF-8?q?rter=20=E5=8A=A0=E5=AF=86=E6=A8=A1=E5=9D=97=EF=BC=88=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E6=A8=A1=E5=9D=97=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- continew-admin-common/pom.xml | 6 ++++ .../config/mybatis/BCryptEncryptor.java | 29 +++++++++++++++++++ .../mybatis/MybatisPlusConfiguration.java | 9 ++++++ .../config/properties/RsaProperties.java | 2 +- .../admin/system/model/entity/UserDO.java | 16 ++++++---- .../system/service/impl/UserServiceImpl.java | 12 +++----- .../main/resources/config/application-dev.yml | 15 ++++++---- .../resources/config/application-prod.yml | 15 ++++++---- .../v2.4.0/continew-admin_column.sql | 6 +++- .../changelog/v2.4.0/continew-admin_data.sql | 6 +++- 10 files changed, 89 insertions(+), 27 deletions(-) create mode 100644 continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/BCryptEncryptor.java diff --git a/continew-admin-common/pom.xml b/continew-admin-common/pom.xml index c6d6c3ce..64730951 100644 --- a/continew-admin-common/pom.xml +++ b/continew-admin-common/pom.xml @@ -96,6 +96,12 @@ continew-starter-file-excel + + + top.charles7c.continew + continew-starter-security-crypto + + top.charles7c.continew diff --git a/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/BCryptEncryptor.java b/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/BCryptEncryptor.java new file mode 100644 index 00000000..26ff301e --- /dev/null +++ b/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/BCryptEncryptor.java @@ -0,0 +1,29 @@ +package top.charles7c.continew.admin.common.config.mybatis; + +import org.springframework.security.crypto.password.PasswordEncoder; +import top.charles7c.continew.starter.security.crypto.encryptor.IEncryptor; + +/** + * BCrypt 加/解密处理器(不可逆) + * + * @author Charles7c + * @since 2024/2/8 22:29 + */ +public class BCryptEncryptor implements IEncryptor { + + private final PasswordEncoder passwordEncoder; + + public BCryptEncryptor(PasswordEncoder passwordEncoder) { + this.passwordEncoder = passwordEncoder; + } + + @Override + public String encrypt(String plaintext, String password, String publicKey) throws Exception { + return passwordEncoder.encode(plaintext); + } + + @Override + public String decrypt(String ciphertext, String password, String privateKey) throws Exception { + return ciphertext; + } +} diff --git a/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java b/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java index 54905749..681ceed6 100644 --- a/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java +++ b/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java @@ -21,6 +21,7 @@ import org.springframework.context.annotation.Configuration; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.springframework.security.crypto.password.PasswordEncoder; import top.charles7c.continew.starter.data.mybatis.plus.datapermission.DataPermissionFilter; /** @@ -47,4 +48,12 @@ public class MybatisPlusConfiguration { public DataPermissionFilter dataPermissionFilter() { return new DataPermissionFilterImpl(); } + + /** + * BCrypt 加/解密处理器 + */ + @Bean + public BCryptEncryptor bCryptEncryptor(PasswordEncoder passwordEncoder) { + return new BCryptEncryptor(passwordEncoder); + } } diff --git a/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/properties/RsaProperties.java b/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/properties/RsaProperties.java index ddf39acd..1e003fb9 100644 --- a/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/properties/RsaProperties.java +++ b/continew-admin-common/src/main/java/top/charles7c/continew/admin/common/config/properties/RsaProperties.java @@ -31,7 +31,7 @@ public class RsaProperties { public static final String PRIVATE_KEY; static { - PRIVATE_KEY = SpringUtil.getProperty("rsa.privateKey"); + PRIVATE_KEY = SpringUtil.getProperty("continew-starter.security.crypto.private-key"); } private RsaProperties() { diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/UserDO.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/UserDO.java index 32361639..b135f53e 100644 --- a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/UserDO.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/UserDO.java @@ -16,16 +16,17 @@ package top.charles7c.continew.admin.system.model.entity; -import java.io.Serial; -import java.time.LocalDateTime; - -import lombok.Data; - import com.baomidou.mybatisplus.annotation.TableName; - +import lombok.Data; +import top.charles7c.continew.admin.common.config.mybatis.BCryptEncryptor; import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum; import top.charles7c.continew.admin.common.enums.GenderEnum; import top.charles7c.continew.starter.extension.crud.model.entity.BaseDO; +import top.charles7c.continew.starter.security.crypto.annotation.FieldEncrypt; +import top.charles7c.continew.starter.security.crypto.enums.Algorithm; + +import java.io.Serial; +import java.time.LocalDateTime; /** * 用户实体 @@ -53,6 +54,7 @@ public class UserDO extends BaseDO { /** * 密码 */ + @FieldEncrypt(encryptor = BCryptEncryptor.class) private String password; /** @@ -63,11 +65,13 @@ public class UserDO extends BaseDO { /** * 邮箱 */ + @FieldEncrypt(Algorithm.AES) private String email; /** * 手机号码 */ + @FieldEncrypt(Algorithm.AES) private String phone; /** diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/UserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/UserServiceImpl.java index a486e65c..ef3fd45e 100644 --- a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/UserServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/UserServiceImpl.java @@ -93,7 +93,6 @@ public class UserServiceImpl extends BaseServiceImpl