From ba601d329c4560105c8abe4c50ac213f6f1d59b1 Mon Sep 17 00:00:00 2001 From: ziin Date: Wed, 3 Dec 2025 20:20:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(auth):=20=E9=9B=86=E6=88=90BCrypt=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=8A=A0=E5=AF=86=E4=B8=8E=E9=94=99=E8=AF=AF=E7=A0=81?= =?UTF-8?q?=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++++++ .../java/com/yolo/keyborad/common/ErrorCode.java | 3 ++- .../com/yolo/keyborad/config/SecurityConfig.java | 16 ++++++++++++++++ .../keyborad/service/impl/UserServiceImpl.java | 11 +++++++++-- 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/yolo/keyborad/config/SecurityConfig.java diff --git a/pom.xml b/pom.xml index 2c21ea9..b51df0f 100644 --- a/pom.xml +++ b/pom.xml @@ -220,6 +220,12 @@ commons-pool2 + + + org.springframework.boot + spring-boot-starter-security + + org.hibernate.validator diff --git a/src/main/java/com/yolo/keyborad/common/ErrorCode.java b/src/main/java/com/yolo/keyborad/common/ErrorCode.java index 622b4b5..57e261a 100644 --- a/src/main/java/com/yolo/keyborad/common/ErrorCode.java +++ b/src/main/java/com/yolo/keyborad/common/ErrorCode.java @@ -29,7 +29,8 @@ public enum ErrorCode { TOKEN_NO_PREFIX(40109, "未按照指定前缀提交令牌"), FILE_NAME_ERROR(40002, "文件名错误"), USER_NOT_FOUND(40401, "用户不存在"), - USER_INFO_UPDATE_FAILED(50002, "用户信息更新失败"); + USER_INFO_UPDATE_FAILED(50002, "用户信息更新失败"), + PASSWORD_OR_MAIL_ERROR(50003,"密码或邮箱错误" ); /** * 状态码 */ diff --git a/src/main/java/com/yolo/keyborad/config/SecurityConfig.java b/src/main/java/com/yolo/keyborad/config/SecurityConfig.java new file mode 100644 index 0000000..33c05d1 --- /dev/null +++ b/src/main/java/com/yolo/keyborad/config/SecurityConfig.java @@ -0,0 +1,16 @@ +package com.yolo.keyborad.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Configuration +public class SecurityConfig { + + @Bean + public PasswordEncoder passwordEncoder() { + // strength(cost)默认 10,够用了;可以视情况调高,比如 12 + return new BCryptPasswordEncoder(); + } +} \ No newline at end of file diff --git a/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java index 5d38175..d6feea1 100644 --- a/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java +++ b/src/main/java/com/yolo/keyborad/service/impl/UserServiceImpl.java @@ -17,6 +17,7 @@ import com.yolo.keyborad.model.vo.user.KeyboardUserRespVO; import com.yolo.keyborad.service.UserService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; /* @@ -30,13 +31,15 @@ public class UserServiceImpl extends ServiceImpl() .eq(KeyboardUser::getSubjectId, sub) .eq(KeyboardUser::getStatus, false)); - return keyboardUser; } @Override @@ -51,6 +54,7 @@ public class UserServiceImpl extends ServiceImpl() .eq(KeyboardUser::getEmail, userLoginDTO.getMail()) @@ -59,6 +63,9 @@ public class UserServiceImpl extends ServiceImpl