From 08accdfdd4e9b47709e04d1285d2545065343274 Mon Sep 17 00:00:00 2001 From: cuijiawang Date: Mon, 27 Oct 2025 11:32:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(config):=20=E7=BB=9F=E4=B8=80Sa-Token?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=B9=B6=E4=BC=98=E5=8C=96Bean=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E8=A6=86=E7=9B=96=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在网关模块启用allow-bean-definition-overriding解决redisTemplate冲突 - 移除auth模块中的Sa-Token本地配置 - 将Sa-Token配置统一迁移至common-core模块 - 新增common-satoken模块支持外部化配置 - 网关模块引入wol-common-redis依赖 - 修复SaTokenExceptionHandler中认证失败提示文案错误 --- .../wol-common-core/src/main/resources/base.yml | 6 ++++++ .../satoken/handler/SaTokenExceptionHandler.java | 2 +- .../src/main/resources/common-satoken.yml | 11 +++++++++++ wol-auth/src/main/resources/application-dev.yml | 15 --------------- wol-gateway/pom.xml | 5 ++++- wol-gateway/src/main/resources/application.yml | 5 +++++ 6 files changed, 27 insertions(+), 17 deletions(-) diff --git a/agileboot-common/wol-common-core/src/main/resources/base.yml b/agileboot-common/wol-common-core/src/main/resources/base.yml index fb32767..d8d37ad 100644 --- a/agileboot-common/wol-common-core/src/main/resources/base.yml +++ b/agileboot-common/wol-common-core/src/main/resources/base.yml @@ -16,6 +16,12 @@ wol: password: ${NACOS_PASSWORD:nacos} namespace: ${NACOS_NAMESPACE:public} group: ${NACOS_GROUP:DEFAULT_GROUP} + satoken: + tokenName: ${SATOKEN_TOKENNAME:Authorization} + isConcurrent: ${SATOKEN_ISCONCURRENT:true} + isShare: ${SATOKEN_ISSHARE:true} + isLog: ${SATOKEN_ISLOG:true} + jwtSecretKey: ${SATOKEN_JWTSECRETKEY:abcdefghijklmnopqrstuvwxyz} jasypt: encryptor: password: ${JASYPT_ENCRYPTOR_PASSWORD:} diff --git a/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/handler/SaTokenExceptionHandler.java b/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/handler/SaTokenExceptionHandler.java index b7f707f..c83ef7a 100644 --- a/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/handler/SaTokenExceptionHandler.java +++ b/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/handler/SaTokenExceptionHandler.java @@ -46,7 +46,7 @@ public class SaTokenExceptionHandler { public R handleNotLoginException(NotLoginException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI, e.getMessage()); - return R.fail(HttpStatus.HTTP_UNAUTHORIZED, "2认证失败,无法访问系统资源"); + return R.fail(HttpStatus.HTTP_UNAUTHORIZED, "认证失败,无法访问系统资源"); } } diff --git a/agileboot-common/wol-common-satoken/src/main/resources/common-satoken.yml b/agileboot-common/wol-common-satoken/src/main/resources/common-satoken.yml index 6bf616f..bc3094c 100644 --- a/agileboot-common/wol-common-satoken/src/main/resources/common-satoken.yml +++ b/agileboot-common/wol-common-satoken/src/main/resources/common-satoken.yml @@ -13,3 +13,14 @@ sa-token: check-same-token: false # token前缀 token-prefix: "Bearer" + + # token名称 (同时也是cookie名称) + token-name: ${wol.satoken.tokenName} + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) + is-concurrent: ${wol.satoken.isConcurrent} + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) + is-share: ${wol.satoken.isShare} + # 是否输出操作日志 + is-log: ${wol.satoken.isLog} + # jwt秘钥 + jwt-secret-key: ${wol.satoken.jwtSecretKey} diff --git a/wol-auth/src/main/resources/application-dev.yml b/wol-auth/src/main/resources/application-dev.yml index ed94969..e815f55 100644 --- a/wol-auth/src/main/resources/application-dev.yml +++ b/wol-auth/src/main/resources/application-dev.yml @@ -27,18 +27,3 @@ # acquire-timeout: 3000 # # 分布式锁的超时时间,默认为 30 秒 # expire: 30000 - -# Sa-Token配置 -sa-token: - # token名称 (同时也是cookie名称) - token-name: Authorization - # 开启内网服务调用鉴权(不允许越过gateway访问内网服务 保障服务安全) - check-same-token: false - # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) - is-concurrent: true - # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) - is-share: true - # 是否输出操作日志 - is-log: true - # jwt秘钥 - jwt-secret-key: abcdefghijklmnopqrstuvwxyz diff --git a/wol-gateway/pom.xml b/wol-gateway/pom.xml index 6a9112a..6303a2b 100644 --- a/wol-gateway/pom.xml +++ b/wol-gateway/pom.xml @@ -21,7 +21,10 @@ com.agileboot wol-common-nacos - + + com.agileboot + wol-common-redis + com.agileboot wol-common-satoken diff --git a/wol-gateway/src/main/resources/application.yml b/wol-gateway/src/main/resources/application.yml index bb8bbe0..9b17947 100644 --- a/wol-gateway/src/main/resources/application.yml +++ b/wol-gateway/src/main/resources/application.yml @@ -11,6 +11,11 @@ spring: import: classpath:base.yml,classpath:nacos.yml profiles: active: dev + main: + # 允许Bean定义覆盖,解决redisTemplate冲突 + # 响应式环境(Gateway):Redisson 的 Bean 和自定义 Bean 同时加载,产生冲突 + # 在 WebFlux(Gateway)和 Servlet(Auth)环境中,自动配置的策略不同 + allow-bean-definition-overriding: true #logging: # level: # com.alibaba.cloud.nacos: DEBUG