From 7a5f4f13e7216a5e5726e85b423f0b45e9b86619 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Mon, 16 Sep 2024 20:13:08 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20vue=20=E6=A8=A1=E6=9D=BF=E5=88=A0?= =?UTF-8?q?=E9=99=A4id=E9=87=8D=E5=A4=8D=E5=A3=B0=E6=98=8E=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/codegen/index.vue.vm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/templates/codegen/index.vue.vm b/src/main/resources/templates/codegen/index.vue.vm index 14153069..b97d6a68 100644 --- a/src/main/resources/templates/codegen/index.vue.vm +++ b/src/main/resources/templates/codegen/index.vue.vm @@ -100,7 +100,7 @@ 删除 @@ -254,7 +254,7 @@ const dataFormRef = ref(ElForm); const loading = ref(false); - const ids = ref([]); + const removeIds = ref([]); const total = ref(0); const queryParams = reactive<${entityName}PageQuery>({ @@ -307,7 +307,7 @@ /** 行复选框选中记录选中ID集合 */ function handleSelectionChange(selection: any) { - ids.value = selection.map((item: any) => item.id); + removeIds.value = selection.map((item: any) => item.id); } /** 打开$!{businessName}弹窗 */ @@ -360,7 +360,7 @@ /** 删除$!{businessName} */ function handleDelete(id?: number) { - const ids = [id || ids.value].join(","); + const ids = [id || removeIds.value].join(","); if (!ids) { ElMessage.warning("请勾选删除项"); return; From b00b3c6868a2d9dcd4c40bb74a455fde653415dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=91=E7=BF=94?= <971366405@qq.com> Date: Wed, 18 Sep 2024 10:56:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E9=AA=8C=E8=AF=81=E7=A0=81=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加关闭验证码的功能 --- .../youlai/boot/common/constant/RedisConstants.java | 5 +++++ .../java/com/youlai/boot/config/SecurityConfig.java | 2 +- .../security/filter/CaptchaValidationFilter.java | 13 ++++++++++++- .../boot/module/auth/controller/AuthController.java | 8 ++++++++ .../youlai/boot/system/service/ConfigService.java | 6 ++++++ .../boot/system/service/impl/ConfigServiceImpl.java | 11 +++++++++++ src/main/resources/application-dev.yml | 1 + src/main/resources/application-prod.yml | 1 + 8 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/youlai/boot/common/constant/RedisConstants.java b/src/main/java/com/youlai/boot/common/constant/RedisConstants.java index 48ca4765..95597c58 100644 --- a/src/main/java/com/youlai/boot/common/constant/RedisConstants.java +++ b/src/main/java/com/youlai/boot/common/constant/RedisConstants.java @@ -28,6 +28,11 @@ public interface RedisConstants { */ String IP_QPS_THRESHOLD_LIMIT_KEY = "IP_QPS_THRESHOLD_LIMIT"; + /** + * 关闭验证码 + */ + String CLOSE_CAPTCHA_KEY = "CLOSE_CAPTCHA"; + /** * 手机验证码缓存前缀 */ diff --git a/src/main/java/com/youlai/boot/config/SecurityConfig.java b/src/main/java/com/youlai/boot/config/SecurityConfig.java index 88e4d375..da4f46c2 100644 --- a/src/main/java/com/youlai/boot/config/SecurityConfig.java +++ b/src/main/java/com/youlai/boot/config/SecurityConfig.java @@ -68,7 +68,7 @@ public class SecurityConfig { // 限流过滤器 http.addFilterBefore(new RateLimiterFilter(redisTemplate, configService), UsernamePasswordAuthenticationFilter.class); // 验证码校验过滤器 - http.addFilterBefore(new CaptchaValidationFilter(redisTemplate, codeGenerator), UsernamePasswordAuthenticationFilter.class); + http.addFilterBefore(new CaptchaValidationFilter(redisTemplate, codeGenerator,configService), UsernamePasswordAuthenticationFilter.class); // JWT 校验过滤器 http.addFilterBefore(new JwtValidationFilter(redisTemplate,securityProperties.getJwt().getKey()), UsernamePasswordAuthenticationFilter.class); diff --git a/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java b/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java index 095be092..6176b797 100644 --- a/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java +++ b/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java @@ -2,9 +2,12 @@ package com.youlai.boot.core.security.filter; import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.core.util.StrUtil; +import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.SecurityConstants; +import com.youlai.boot.common.constant.SymbolConstant; import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.common.util.ResponseUtils; +import com.youlai.boot.system.service.ConfigService; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -33,9 +36,12 @@ public class CaptchaValidationFilter extends OncePerRequestFilter { private final CodeGenerator codeGenerator; - public CaptchaValidationFilter(RedisTemplate redisTemplate, CodeGenerator codeGenerator) { + private final ConfigService configService; + + public CaptchaValidationFilter(RedisTemplate redisTemplate, CodeGenerator codeGenerator, ConfigService configService) { this.redisTemplate = redisTemplate; this.codeGenerator = codeGenerator; + this.configService = configService; } @@ -43,6 +49,11 @@ public class CaptchaValidationFilter extends OncePerRequestFilter { public void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { // 检验登录接口的验证码 if (LOGIN_PATH_REQUEST_MATCHER.matches(request)) { + // 关闭验证码校验 + if (configService.getBooleanConfig(RedisConstants.CLOSE_CAPTCHA_KEY)) { + chain.doFilter(request, response); + return; + } // 请求中的验证码 String captchaCode = request.getParameter(CAPTCHA_CODE_PARAM_NAME); // TODO 兼容没有验证码的版本(线上请移除这个判断) diff --git a/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java b/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java index 0e20a433..2a988e18 100644 --- a/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java +++ b/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java @@ -1,11 +1,13 @@ package com.youlai.boot.module.auth.controller; +import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.result.Result; import com.youlai.boot.module.auth.service.AuthService; import com.youlai.boot.system.model.dto.CaptchaResult; import com.youlai.boot.system.model.dto.LoginResult; import com.youlai.boot.common.annotation.Log; +import com.youlai.boot.system.service.ConfigService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -27,6 +29,7 @@ import org.springframework.web.bind.annotation.*; public class AuthController { private final AuthService authService; + private final ConfigService configService; @Operation(summary = "登录") @PostMapping("/login") @@ -54,4 +57,9 @@ public class AuthController { return Result.success(captcha); } + @Operation(summary = "获取是否关闭验证码") + @GetMapping("/captcha/unable") + public Result isCaptchaEnable() { + return Result.success(configService.getBooleanConfig(RedisConstants.CLOSE_CAPTCHA_KEY)); + } } diff --git a/src/main/java/com/youlai/boot/system/service/ConfigService.java b/src/main/java/com/youlai/boot/system/service/ConfigService.java index 988db94d..ee1718db 100644 --- a/src/main/java/com/youlai/boot/system/service/ConfigService.java +++ b/src/main/java/com/youlai/boot/system/service/ConfigService.java @@ -65,4 +65,10 @@ public interface ConfigService extends IService { */ Object getSystemConfig(String key); + /** + * 获取系统配置 + * @param key 配置键 + * @return 配置值 + */ + boolean getBooleanConfig(String key); } diff --git a/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java index c7f8579f..bd151cbd 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java @@ -159,4 +159,15 @@ public class ConfigServiceImpl extends ServiceImpl impleme return null; } + /** + * 获取系统配置 + * @param key 配置键 + * @return 配置值 + */ + @Override + public boolean getBooleanConfig(String key) { + Object systemConfig = getSystemConfig(key); + return systemConfig != null && Boolean.parseBoolean(systemConfig.toString()); + } + } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 398bb917..ab42181b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -90,6 +90,7 @@ security: - /swagger-ui/** - /swagger-ui.html - /api/v1/auth/captcha + - /api/v1/auth/captcha/unable - /ws/** # 文件存储配置 diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 09ccde44..4ee2e889 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -74,6 +74,7 @@ security: - /swagger-ui/** - /swagger-ui.html - /api/v1/auth/captcha + - /api/v1/auth/captcha/unable - /ws/** # 文件存储配置 From bcc30a6beef66081e1e2b6945090d4881310c5bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=91=E7=BF=94?= <971366405@qq.com> Date: Wed, 18 Sep 2024 11:32:31 +0800 Subject: [PATCH 3/3] =?UTF-8?q?revert:=20=E5=9B=9E=E9=80=80=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 回退关闭验证码 --- .../youlai/boot/common/constant/RedisConstants.java | 5 ----- .../java/com/youlai/boot/config/SecurityConfig.java | 2 +- .../core/security/filter/CaptchaValidationFilter.java | 10 +--------- .../boot/module/auth/controller/AuthController.java | 7 ------- .../com/youlai/boot/system/service/ConfigService.java | 6 ------ .../boot/system/service/impl/ConfigServiceImpl.java | 11 ----------- src/main/resources/application-dev.yml | 1 - src/main/resources/application-prod.yml | 1 - 8 files changed, 2 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/youlai/boot/common/constant/RedisConstants.java b/src/main/java/com/youlai/boot/common/constant/RedisConstants.java index 95597c58..48ca4765 100644 --- a/src/main/java/com/youlai/boot/common/constant/RedisConstants.java +++ b/src/main/java/com/youlai/boot/common/constant/RedisConstants.java @@ -28,11 +28,6 @@ public interface RedisConstants { */ String IP_QPS_THRESHOLD_LIMIT_KEY = "IP_QPS_THRESHOLD_LIMIT"; - /** - * 关闭验证码 - */ - String CLOSE_CAPTCHA_KEY = "CLOSE_CAPTCHA"; - /** * 手机验证码缓存前缀 */ diff --git a/src/main/java/com/youlai/boot/config/SecurityConfig.java b/src/main/java/com/youlai/boot/config/SecurityConfig.java index da4f46c2..88e4d375 100644 --- a/src/main/java/com/youlai/boot/config/SecurityConfig.java +++ b/src/main/java/com/youlai/boot/config/SecurityConfig.java @@ -68,7 +68,7 @@ public class SecurityConfig { // 限流过滤器 http.addFilterBefore(new RateLimiterFilter(redisTemplate, configService), UsernamePasswordAuthenticationFilter.class); // 验证码校验过滤器 - http.addFilterBefore(new CaptchaValidationFilter(redisTemplate, codeGenerator,configService), UsernamePasswordAuthenticationFilter.class); + http.addFilterBefore(new CaptchaValidationFilter(redisTemplate, codeGenerator), UsernamePasswordAuthenticationFilter.class); // JWT 校验过滤器 http.addFilterBefore(new JwtValidationFilter(redisTemplate,securityProperties.getJwt().getKey()), UsernamePasswordAuthenticationFilter.class); diff --git a/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java b/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java index 6176b797..cf18f5aa 100644 --- a/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java +++ b/src/main/java/com/youlai/boot/core/security/filter/CaptchaValidationFilter.java @@ -36,12 +36,9 @@ public class CaptchaValidationFilter extends OncePerRequestFilter { private final CodeGenerator codeGenerator; - private final ConfigService configService; - - public CaptchaValidationFilter(RedisTemplate redisTemplate, CodeGenerator codeGenerator, ConfigService configService) { + public CaptchaValidationFilter(RedisTemplate redisTemplate, CodeGenerator codeGenerator) { this.redisTemplate = redisTemplate; this.codeGenerator = codeGenerator; - this.configService = configService; } @@ -49,11 +46,6 @@ public class CaptchaValidationFilter extends OncePerRequestFilter { public void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { // 检验登录接口的验证码 if (LOGIN_PATH_REQUEST_MATCHER.matches(request)) { - // 关闭验证码校验 - if (configService.getBooleanConfig(RedisConstants.CLOSE_CAPTCHA_KEY)) { - chain.doFilter(request, response); - return; - } // 请求中的验证码 String captchaCode = request.getParameter(CAPTCHA_CODE_PARAM_NAME); // TODO 兼容没有验证码的版本(线上请移除这个判断) diff --git a/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java b/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java index 2a988e18..d6d7d06d 100644 --- a/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java +++ b/src/main/java/com/youlai/boot/module/auth/controller/AuthController.java @@ -29,7 +29,6 @@ import org.springframework.web.bind.annotation.*; public class AuthController { private final AuthService authService; - private final ConfigService configService; @Operation(summary = "登录") @PostMapping("/login") @@ -56,10 +55,4 @@ public class AuthController { CaptchaResult captcha = authService.getCaptcha(); return Result.success(captcha); } - - @Operation(summary = "获取是否关闭验证码") - @GetMapping("/captcha/unable") - public Result isCaptchaEnable() { - return Result.success(configService.getBooleanConfig(RedisConstants.CLOSE_CAPTCHA_KEY)); - } } diff --git a/src/main/java/com/youlai/boot/system/service/ConfigService.java b/src/main/java/com/youlai/boot/system/service/ConfigService.java index ee1718db..988db94d 100644 --- a/src/main/java/com/youlai/boot/system/service/ConfigService.java +++ b/src/main/java/com/youlai/boot/system/service/ConfigService.java @@ -65,10 +65,4 @@ public interface ConfigService extends IService { */ Object getSystemConfig(String key); - /** - * 获取系统配置 - * @param key 配置键 - * @return 配置值 - */ - boolean getBooleanConfig(String key); } diff --git a/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java index bd151cbd..c7f8579f 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/ConfigServiceImpl.java @@ -159,15 +159,4 @@ public class ConfigServiceImpl extends ServiceImpl impleme return null; } - /** - * 获取系统配置 - * @param key 配置键 - * @return 配置值 - */ - @Override - public boolean getBooleanConfig(String key) { - Object systemConfig = getSystemConfig(key); - return systemConfig != null && Boolean.parseBoolean(systemConfig.toString()); - } - } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index ab42181b..398bb917 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -90,7 +90,6 @@ security: - /swagger-ui/** - /swagger-ui.html - /api/v1/auth/captcha - - /api/v1/auth/captcha/unable - /ws/** # 文件存储配置 diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 4ee2e889..09ccde44 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -74,7 +74,6 @@ security: - /swagger-ui/** - /swagger-ui.html - /api/v1/auth/captcha - - /api/v1/auth/captcha/unable - /ws/** # 文件存储配置