From ce66812c82b245473d1bee4cf38d591b4393c9f6 Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Tue, 23 Dec 2025 13:27:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/src/main/resources/application-dev.yml | 7 + .../ai/src/main/resources/application.yml | 2 + .../ai/src/main/resources/log4j2.xml | 50 ++--- .../xyzh/api/auth/service/AuthService.java | 18 +- .../xyzh/auth/controller/AuthController.java | 45 +++- .../auth/service/impl/AuthServiceImpl.java | 57 +---- .../auth/src/main/resources/application.yml | 3 +- .../auth/src/main/resources/log4j2.xml | 59 ++--- .../bidding/src/main/resources/log4j2.xml | 50 ++--- .../xyzh/common/core/domain/LoginParam.java | 13 ++ .../crontab/src/main/resources/log4j2.xml | 50 ++--- .../file/src/main/resources/application.yml | 2 + .../file/src/main/resources/log4j2.xml | 50 ++--- .../src/main/resources/application-dev.yml | 9 +- .../src/main/resources/application.yml | 5 +- .../gateway/src/main/resources/log4j2.xml | 28 +-- .../log/src/main/resources/application.yml | 28 +-- .../log/src/main/resources/log4j2.xml | 50 ++--- .../src/main/resources/application.yml | 27 ++- .../message/src/main/resources/log4j2.xml | 50 ++--- .../src/main/resources/application.yml | 27 ++- .../platform/src/main/resources/log4j2.xml | 50 ++--- .../system/controller/GuestController.java | 27 ++- .../src/main/resources/application-dev.yml | 33 ++- .../system/src/main/resources/application.yml | 7 +- .../system/src/main/resources/log4j2.xml | 50 ++--- .../src/main/resources/application-dev.yml | 7 + .../src/main/resources/application.yml | 2 + .../workcase/src/main/resources/log4j2.xml | 50 ++--- .../packages/workcase_wechat/App.uvue | 6 + .../packages/workcase_wechat/pages.json | 13 +- .../pages/chatRoom/chatRoom/chatRoom.scss | 15 +- .../pages/chatRoom/chatRoom/chatRoom.uvue | 2 +- .../chatRoom/chatRoomList/chatRoomList.scss | 29 +-- .../chatRoom/chatRoomList/chatRoomList.uvue | 48 ++-- .../workcase_wechat/pages/index/index.scss | 35 ++- .../workcase_wechat/pages/index/index.uvue | 208 +++++++++++++----- .../pages/meeting/Meeting/Meeting.scss | 23 +- .../pages/meeting/Meeting/Meeting.uvue | 2 +- .../workcaseDetail/workcaseDetail.scss | 29 ++- .../workcaseDetail/workcaseDetail.uvue | 2 +- .../workcase/workcaseList/workcaseList.scss | 34 +-- .../workcase/workcaseList/workcaseList.uvue | 2 +- .../workcase_wechat/types/ai/aiChat.ts | 110 +++++++++ .../workcase_wechat/types/ai/index.ts | 1 + .../packages/workcase_wechat/types/index.ts | 3 +- .../types/workcase/chatRoom.ts | 18 +- .../types/workcase/customer.ts | 65 ------ 48 files changed, 766 insertions(+), 735 deletions(-) create mode 100644 urbanLifelineWeb/packages/workcase_wechat/types/ai/aiChat.ts create mode 100644 urbanLifelineWeb/packages/workcase_wechat/types/ai/index.ts diff --git a/urbanLifelineServ/ai/src/main/resources/application-dev.yml b/urbanLifelineServ/ai/src/main/resources/application-dev.yml index 9fee300e..7fa0b20c 100644 --- a/urbanLifelineServ/ai/src/main/resources/application-dev.yml +++ b/urbanLifelineServ/ai/src/main/resources/application-dev.yml @@ -83,3 +83,10 @@ dubbo: mybatis-plus: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: org.xyzh.common.dto, org.xyzh.api +logging: + config: classpath:log4j2.xml + charset: + console: UTF-8 + file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE \ No newline at end of file diff --git a/urbanLifelineServ/ai/src/main/resources/application.yml b/urbanLifelineServ/ai/src/main/resources/application.yml index 8ed46709..f2d8df13 100644 --- a/urbanLifelineServ/ai/src/main/resources/application.yml +++ b/urbanLifelineServ/ai/src/main/resources/application.yml @@ -90,3 +90,5 @@ logging: charset: console: UTF-8 file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/ai/src/main/resources/log4j2.xml b/urbanLifelineServ/ai/src/main/resources/log4j2.xml index 0ee5d0ef..6370e274 100644 --- a/urbanLifelineServ/ai/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/ai/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/apis/api-auth/src/main/java/org/xyzh/api/auth/service/AuthService.java b/urbanLifelineServ/apis/api-auth/src/main/java/org/xyzh/api/auth/service/AuthService.java index 87a2becc..84e8e6fb 100644 --- a/urbanLifelineServ/apis/api-auth/src/main/java/org/xyzh/api/auth/service/AuthService.java +++ b/urbanLifelineServ/apis/api-auth/src/main/java/org/xyzh/api/auth/service/AuthService.java @@ -4,8 +4,6 @@ import org.xyzh.common.core.domain.LoginDomain; import org.xyzh.common.core.domain.LoginParam; import org.xyzh.common.core.domain.ResultDomain; -import jakarta.servlet.http.HttpServletRequest; - /** * @description 认证服务接口 * @filename AuthService.java @@ -16,32 +14,32 @@ import jakarta.servlet.http.HttpServletRequest; public interface AuthService { /** - * @description 登录 - * @param LoginParam loginParam 登录参数 - * @param HttpServletRequest request 请求 + * @description 登录(用于Dubbo远程调用,clientIp需提前设置到loginParam中) + * @param LoginParam loginParam 登录参数(包含clientIp) * @return ResultDomain 登录结果 * @author yslg * @since 2025-11-03 */ - ResultDomain login(LoginParam loginParam, HttpServletRequest request); + ResultDomain login(LoginParam loginParam); /** * @description 刷新token - * @param HttpServletRequest request 请求 + * @param token 当前token + * @param clientIp 客户端IP * @return ResultDomain 刷新token结果 * @author yslg * @since 2025-11-03 */ - ResultDomain refreshToken(HttpServletRequest request); + ResultDomain refreshToken(String token, String clientIp); /** * @description 登出 - * @param HttpServletRequest request 请求 + * @param token 当前token * @return ResultDomain 登出结果 * @author yslg * @since 2025-11-03 */ - ResultDomain logout(HttpServletRequest request); + ResultDomain logout(String token); /** * @description 根据验证码类型获取验证码 diff --git a/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/controller/AuthController.java b/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/controller/AuthController.java index e0751bf7..3274d0d0 100644 --- a/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/controller/AuthController.java +++ b/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/controller/AuthController.java @@ -52,7 +52,9 @@ public class AuthController { */ @PostMapping("/login") public ResultDomain login(@RequestBody LoginParam loginParam, HttpServletRequest request) { - return authService.login(loginParam, request); + // 从 request 中提取客户端 IP 并设置到 loginParam + loginParam.setClientIp(getClientIP(request)); + return authService.login(loginParam); } /** @@ -64,7 +66,8 @@ public class AuthController { */ @PostMapping("/logout") public ResultDomain logout(HttpServletRequest request) { - return authService.logout(request); + String token = extractTokenFromRequest(request); + return authService.logout(token); } /** @@ -88,7 +91,9 @@ public class AuthController { */ @PostMapping("/refresh") public ResultDomain refreshToken(HttpServletRequest request) { - return authService.refreshToken(request); + String token = extractTokenFromRequest(request); + String clientIp = getClientIP(request); + return authService.refreshToken(token, clientIp); } /** @@ -321,7 +326,8 @@ public class AuthController { loginParam.setEmail(email); } - ResultDomain loginResult = authService.login(loginParam, request); + loginParam.setClientIp(getClientIP(request)); + ResultDomain loginResult = authService.login(loginParam); if (loginResult.getSuccess()) { return ResultDomain.success("注册成功", loginResult.getData()); @@ -335,4 +341,35 @@ public class AuthController { return ResultDomain.failure("注册失败: " + e.getMessage()); } } + + /** + * 从请求中提取Token + */ + private String extractTokenFromRequest(HttpServletRequest request) { + String authHeader = request.getHeader("Authorization"); + if (authHeader != null && authHeader.startsWith("Bearer ")) { + return authHeader.substring(7); + } + return null; + } + + /** + * 获取客户端IP地址 + */ + private String getClientIP(HttpServletRequest request) { + String ip = request.getHeader("X-Forwarded-For"); + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + if (ip != null && ip.contains(",")) { + ip = ip.split(",")[0].trim(); + } + return ip; + } } diff --git a/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/service/impl/AuthServiceImpl.java b/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/service/impl/AuthServiceImpl.java index 83c37682..342ee985 100644 --- a/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/service/impl/AuthServiceImpl.java +++ b/urbanLifelineServ/auth/src/main/java/org/xyzh/auth/service/impl/AuthServiceImpl.java @@ -8,9 +8,9 @@ import org.xyzh.api.system.service.ModulePermissionService; import org.xyzh.api.system.vo.SysUserVO; import org.xyzh.api.system.vo.PermissionVO; import org.xyzh.api.system.vo.UserDeptRoleVO; +import org.xyzh.auth.enums.UserStatus; import org.xyzh.auth.strategy.LoginStrategyFactory; import org.xyzh.auth.strategy.LoginStrategy; -import org.xyzh.auth.enums.UserStatus; import org.xyzh.auth.utils.CapcatUtils; import org.xyzh.common.auth.utils.JwtTokenUtil; import org.xyzh.common.core.domain.LoginDomain; @@ -30,7 +30,6 @@ import org.apache.dubbo.config.annotation.DubboService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jakarta.servlet.http.HttpServletRequest; import java.util.concurrent.TimeUnit; import java.util.List; import java.util.ArrayList; @@ -208,7 +207,7 @@ public class AuthServiceImpl implements AuthService{ } @Override - public ResultDomain login(LoginParam loginParam, HttpServletRequest request) { + public ResultDomain login(LoginParam loginParam) { String loginType = loginParam.getLoginType(); String loginAttempt = IdUtil.generateID(); // 生成登录尝试ID @@ -262,7 +261,7 @@ public class AuthServiceImpl implements AuthService{ SysUserVO userInfo = userInfoResult.getData(); // 7. 构建完整的登录域对象 - LoginDomain loginDomain = buildLoginDomain(userInfo, loginType, request); + LoginDomain loginDomain = buildLoginDomain(userInfo, loginType, loginParam.getClientIp()); if (loginDomain == null) { logLoginAttempt(loginParam, user, false, loginAttempt, "构建登录信息失败"); return ResultDomain.failure("构建登录信息失败"); @@ -297,10 +296,10 @@ public class AuthServiceImpl implements AuthService{ * 构建完整的LoginDomain对象 * @param userInfo 用户信息 * @param loginType 登录类型 - * @param request HTTP请求 + * @param clientIp 客户端IP地址 * @return LoginDomain 登录域对象 */ - public LoginDomain buildLoginDomain(SysUserVO userInfo, String loginType, HttpServletRequest request) { + public LoginDomain buildLoginDomain(SysUserVO userInfo, String loginType, String clientIp) { try { // 1. 转换为 DTO 对象 TbSysUserDTO userDTO = SysUserVO.toDTO(userInfo); @@ -369,7 +368,7 @@ public class AuthServiceImpl implements AuthService{ loginDomain.setUserPermissions(userPermissions); loginDomain.setUserViews(userViews); loginDomain.setLoginType(loginType); - loginDomain.setIpAddress(getClientIP(request)); + loginDomain.setIpAddress(clientIp); return loginDomain; @@ -408,10 +407,9 @@ public class AuthServiceImpl implements AuthService{ } @Override - public ResultDomain refreshToken(HttpServletRequest request) { + public ResultDomain refreshToken(String token, String clientIp) { try { - String token = extractTokenFromRequest(request); - if (token == null) { + if (token == null || token.trim().isEmpty()) { return ResultDomain.failure("Token不能为空"); } @@ -438,7 +436,7 @@ public class AuthServiceImpl implements AuthService{ SysUserVO userInfo = userInfoResult.getData(); // 4. 重新构建LoginDomain - LoginDomain newLoginDomain = buildLoginDomain(userInfo, oldLoginDomain.getLoginType(), request); + LoginDomain newLoginDomain = buildLoginDomain(userInfo, oldLoginDomain.getLoginType(), clientIp); if (newLoginDomain == null) { return ResultDomain.failure("构建登录信息失败"); } @@ -472,10 +470,9 @@ public class AuthServiceImpl implements AuthService{ } @Override - public ResultDomain logout(HttpServletRequest request) { + public ResultDomain logout(String token) { try { - String token = extractTokenFromRequest(request); - if (token == null) { + if (token == null || token.trim().isEmpty()) { return ResultDomain.failure("Token不能为空"); } @@ -508,37 +505,5 @@ public class AuthServiceImpl implements AuthService{ return ResultDomain.failure("登出失败: " + e.getMessage()); } } - - /** - * 从请求中提取Token - */ - private String extractTokenFromRequest(HttpServletRequest request) { - String authHeader = request.getHeader("Authorization"); - if (authHeader != null && authHeader.startsWith("Bearer ")) { - return authHeader.substring(7); - } - return null; - } - - /** - * 获取客户端IP地址 - */ - private String getClientIP(HttpServletRequest request) { - String ip = request.getHeader("X-Forwarded-For"); - if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("Proxy-Client-IP"); - } - if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { - ip = request.getRemoteAddr(); - } - // 如果是多个IP,取第一个 - if (ip != null && ip.contains(",")) { - ip = ip.split(",")[0].trim(); - } - return ip; - } } diff --git a/urbanLifelineServ/auth/src/main/resources/application.yml b/urbanLifelineServ/auth/src/main/resources/application.yml index d10418be..1f51ec21 100644 --- a/urbanLifelineServ/auth/src/main/resources/application.yml +++ b/urbanLifelineServ/auth/src/main/resources/application.yml @@ -93,4 +93,5 @@ logging: charset: console: UTF-8 file: UTF-8 - + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/auth/src/main/resources/log4j2.xml b/urbanLifelineServ/auth/src/main/resources/log4j2.xml index 88a059af..f80ae392 100644 --- a/urbanLifelineServ/auth/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/auth/src/main/resources/log4j2.xml @@ -9,40 +9,14 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -53,42 +27,39 @@ - + - + - + + + + + + - - - - + - - - - + - - - + diff --git a/urbanLifelineServ/bidding/src/main/resources/log4j2.xml b/urbanLifelineServ/bidding/src/main/resources/log4j2.xml index a2a12797..15161ff1 100644 --- a/urbanLifelineServ/bidding/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/bidding/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/common/common-core/src/main/java/org/xyzh/common/core/domain/LoginParam.java b/urbanLifelineServ/common/common-core/src/main/java/org/xyzh/common/core/domain/LoginParam.java index ececa82a..154f0a73 100644 --- a/urbanLifelineServ/common/common-core/src/main/java/org/xyzh/common/core/domain/LoginParam.java +++ b/urbanLifelineServ/common/common-core/src/main/java/org/xyzh/common/core/domain/LoginParam.java @@ -80,5 +80,18 @@ public class LoginParam implements Serializable { */ private Boolean rememberMe; + /** + * 客户端IP地址(用于Dubbo远程调用时传递,避免传递HttpServletRequest) + * @author yslg + * @since 2025-12-23 + */ + private String clientIp; + + /** + * 当前Token(用于Dubbo远程调用刷新/登出时传递) + * @author yslg + * @since 2025-12-23 + */ + private String token; } diff --git a/urbanLifelineServ/crontab/src/main/resources/log4j2.xml b/urbanLifelineServ/crontab/src/main/resources/log4j2.xml index d4a24d1d..678b02fe 100644 --- a/urbanLifelineServ/crontab/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/crontab/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/file/src/main/resources/application.yml b/urbanLifelineServ/file/src/main/resources/application.yml index cdcc31d0..d6036770 100644 --- a/urbanLifelineServ/file/src/main/resources/application.yml +++ b/urbanLifelineServ/file/src/main/resources/application.yml @@ -97,3 +97,5 @@ logging: charset: console: UTF-8 file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/file/src/main/resources/log4j2.xml b/urbanLifelineServ/file/src/main/resources/log4j2.xml index 638321e5..bc2c497d 100644 --- a/urbanLifelineServ/file/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/file/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/gateway/src/main/resources/application-dev.yml b/urbanLifelineServ/gateway/src/main/resources/application-dev.yml index df4ab142..fcd44792 100644 --- a/urbanLifelineServ/gateway/src/main/resources/application-dev.yml +++ b/urbanLifelineServ/gateway/src/main/resources/application-dev.yml @@ -4,8 +4,9 @@ # 开发环境日志 logging: + config: classpath:log4j2.xml + charset: + console: UTF-8 + file: UTF-8 level: - org.springframework.cloud.gateway: DEBUG - org.springframework.web.reactive: DEBUG - reactor.netty: DEBUG - org.xyzh: DEBUG + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/gateway/src/main/resources/application.yml b/urbanLifelineServ/gateway/src/main/resources/application.yml index 5e25b021..6fcb5312 100644 --- a/urbanLifelineServ/gateway/src/main/resources/application.yml +++ b/urbanLifelineServ/gateway/src/main/resources/application.yml @@ -187,6 +187,7 @@ auth: - /urban-lifeline/file/download/** # ai 服务白名单 - /urban-lifeline/ai/chat/** + - /urban-lifeline/system/guest/identify security: aes: secret-key: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI= # Base64 编码,32字节(256位) @@ -205,4 +206,6 @@ logging: config: classpath:log4j2.xml charset: console: UTF-8 - file: UTF-8 \ No newline at end of file + file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE \ No newline at end of file diff --git a/urbanLifelineServ/gateway/src/main/resources/log4j2.xml b/urbanLifelineServ/gateway/src/main/resources/log4j2.xml index 26ac111e..a0eeacbf 100644 --- a/urbanLifelineServ/gateway/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/gateway/src/main/resources/log4j2.xml @@ -1,33 +1,21 @@ - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n logs gateway - - + + - - - - - - - - - - - - - + + @@ -37,30 +25,24 @@ - - - - - - diff --git a/urbanLifelineServ/log/src/main/resources/application.yml b/urbanLifelineServ/log/src/main/resources/application.yml index 9afc37c5..5044fc9c 100644 --- a/urbanLifelineServ/log/src/main/resources/application.yml +++ b/urbanLifelineServ/log/src/main/resources/application.yml @@ -5,18 +5,19 @@ server: # context-path: /urban-lifeline/log # 微服务架构下,context-path由Gateway管理 # ================== Auth ==================== -urban-lifeline: - auth: - enabled: true - whitelist: - - /swagger-ui/** - - /swagger-ui.html - - /v3/api-docs/** - - /webjars/** - - /favicon.ico - - /error - - /actuator/health - - /actuator/info + +auth: + enabled: true + gateway-mode: true + whitelist: + - /swagger-ui/** + - /swagger-ui.html + - /v3/api-docs/** + - /webjars/** + - /favicon.ico + - /error + - /actuator/health + - /actuator/info security: aes: @@ -94,4 +95,5 @@ logging: charset: console: UTF-8 file: UTF-8 - + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/log/src/main/resources/log4j2.xml b/urbanLifelineServ/log/src/main/resources/log4j2.xml index ff80139b..3d256d92 100644 --- a/urbanLifelineServ/log/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/log/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/message/src/main/resources/application.yml b/urbanLifelineServ/message/src/main/resources/application.yml index d70a29eb..43cac2fe 100644 --- a/urbanLifelineServ/message/src/main/resources/application.yml +++ b/urbanLifelineServ/message/src/main/resources/application.yml @@ -5,18 +5,19 @@ server: # context-path: /urban-lifeline/message # 微服务架构下,context-path由Gateway管理 # ================== Auth ==================== -urban-lifeline: - auth: - enabled: true - whitelist: - - /swagger-ui/** - - /swagger-ui.html - - /v3/api-docs/** - - /webjars/** - - /favicon.ico - - /error - - /actuator/health - - /actuator/info + +auth: + enabled: true + gateway-mode: true + whitelist: + - /swagger-ui/** + - /swagger-ui.html + - /v3/api-docs/** + - /webjars/** + - /favicon.ico + - /error + - /actuator/health + - /actuator/info security: aes: @@ -86,3 +87,5 @@ logging: charset: console: UTF-8 file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/message/src/main/resources/log4j2.xml b/urbanLifelineServ/message/src/main/resources/log4j2.xml index 422b7078..43a4cb6b 100644 --- a/urbanLifelineServ/message/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/message/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/platform/src/main/resources/application.yml b/urbanLifelineServ/platform/src/main/resources/application.yml index 212fa205..04a39beb 100644 --- a/urbanLifelineServ/platform/src/main/resources/application.yml +++ b/urbanLifelineServ/platform/src/main/resources/application.yml @@ -5,18 +5,19 @@ server: # context-path: /urban-lifeline/platform # 微服务架构下,context-path由Gateway管理 # ================== Auth ==================== -urban-lifeline: - auth: - enabled: true - whitelist: - - /swagger-ui/** - - /swagger-ui.html - - /v3/api-docs/** - - /webjars/** - - /favicon.ico - - /error - - /actuator/health - - /actuator/info + +auth: + enabled: true + gateway-mode: true + whitelist: + - /swagger-ui/** + - /swagger-ui.html + - /v3/api-docs/** + - /webjars/** + - /favicon.ico + - /error + - /actuator/health + - /actuator/info security: aes: @@ -87,3 +88,5 @@ logging: charset: console: UTF-8 file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/platform/src/main/resources/log4j2.xml b/urbanLifelineServ/platform/src/main/resources/log4j2.xml index c1013b24..9396f7ec 100644 --- a/urbanLifelineServ/platform/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/platform/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/system/src/main/java/org/xyzh/system/controller/GuestController.java b/urbanLifelineServ/system/src/main/java/org/xyzh/system/controller/GuestController.java index aa6456c9..0ebfa35f 100644 --- a/urbanLifelineServ/system/src/main/java/org/xyzh/system/controller/GuestController.java +++ b/urbanLifelineServ/system/src/main/java/org/xyzh/system/controller/GuestController.java @@ -60,7 +60,7 @@ public class GuestController { @DubboReference(version = "1.0.0", group = "auth", timeout = 5000, check = false, retries = 0) private AuthService authService; - @DubboReference(version = "1.0.0", group = "system", timeout = 5000, check = false, retries = 0) + @Autowired private ModulePermissionService modulePermissionService; @Autowired @@ -128,9 +128,12 @@ public class GuestController { // 设置登录类型为微信小程序 loginParam.setLoginType("wechat_miniprogram"); + + // 从 request 中提取客户端 IP 并设置到 loginParam + loginParam.setClientIp(getClientIP(request)); // 1. 尝试通过AuthService登录(员工) - ResultDomain loginResult = authService.login(loginParam, request); + ResultDomain loginResult = authService.login(loginParam); if (loginResult.getSuccess() && loginResult.getData() != null) { // 登录成功,是系统员工 return loginResult; @@ -261,4 +264,24 @@ public class GuestController { return loginDomain; } + + /** + * 获取客户端IP地址 + */ + private String getClientIP(HttpServletRequest request) { + String ip = request.getHeader("X-Forwarded-For"); + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + if (ip != null && ip.contains(",")) { + ip = ip.split(",")[0].trim(); + } + return ip; + } } diff --git a/urbanLifelineServ/system/src/main/resources/application-dev.yml b/urbanLifelineServ/system/src/main/resources/application-dev.yml index af62a4ba..f0acf0bc 100644 --- a/urbanLifelineServ/system/src/main/resources/application-dev.yml +++ b/urbanLifelineServ/system/src/main/resources/application-dev.yml @@ -1,9 +1,10 @@ # ================== Server ================== server: - port: 8082 - servlet: - context-path: /urban-lifeline/system + port: 8182 + # servlet: + # context-path: /urban-lifeline/system # 微服务架构下,context-path由Gateway管理 # ================== Auth ==================== + auth: enabled: true gateway-mode: true @@ -28,13 +29,11 @@ auth: # 健康检查 - /actuator/health - /actuator/info - + - /system/guest/identify # 其他需要放行的路径 # - /public/** # - /api/public/** - -# ================== Security ================== security: aes: # AES-256 密钥(Base64编码) @@ -43,6 +42,17 @@ security: # ================== Spring ================== spring: + application: + name: system-service + + # ================== Spring Cloud Nacos ================== + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + namespace: dev + group: DEFAULT_GROUP + # ================== DataSource ================== datasource: # 按你的实际库名改一下,比如 urban-lifeline_system @@ -57,7 +67,7 @@ spring: host: 127.0.0.1 # 如果是 docker 跑的 redis,按实际 host / 端口改 port: 6379 database: 0 - # password: "" # 如果有密码就填上,没密码可以去掉这一行 + password: 123456 # 如果有密码就填上,没密码可以去掉这一行 # ================== SpringDoc ================== springdoc: api-docs: @@ -103,3 +113,12 @@ dubbo: mybatis-plus: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: org.xyzh.common.dto, org.xyzh.api + +# ================== Logging ================== +logging: + config: classpath:log4j2.xml + charset: + console: UTF-8 + file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/system/src/main/resources/application.yml b/urbanLifelineServ/system/src/main/resources/application.yml index 29142845..f5158608 100644 --- a/urbanLifelineServ/system/src/main/resources/application.yml +++ b/urbanLifelineServ/system/src/main/resources/application.yml @@ -29,15 +29,14 @@ auth: # 健康检查 - /actuator/health - /actuator/info - + - /system/guest/identify # 其他需要放行的路径 # - /public/** # - /api/public/** security: aes: - secret-key: 1234567890qwer - + secret-key: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI= # ================== Spring ================== spring: @@ -119,3 +118,5 @@ logging: charset: console: UTF-8 file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE \ No newline at end of file diff --git a/urbanLifelineServ/system/src/main/resources/log4j2.xml b/urbanLifelineServ/system/src/main/resources/log4j2.xml index 50f2d7df..81a36da0 100644 --- a/urbanLifelineServ/system/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/system/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineServ/workcase/src/main/resources/application-dev.yml b/urbanLifelineServ/workcase/src/main/resources/application-dev.yml index 6e703674..8e568254 100644 --- a/urbanLifelineServ/workcase/src/main/resources/application-dev.yml +++ b/urbanLifelineServ/workcase/src/main/resources/application-dev.yml @@ -86,3 +86,10 @@ dubbo: mybatis-plus: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: org.xyzh.common.dto, org.xyzh.api +logging: + config: classpath:log4j2.xml + charset: + console: UTF-8 + file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE \ No newline at end of file diff --git a/urbanLifelineServ/workcase/src/main/resources/application.yml b/urbanLifelineServ/workcase/src/main/resources/application.yml index 54306e66..d671c900 100644 --- a/urbanLifelineServ/workcase/src/main/resources/application.yml +++ b/urbanLifelineServ/workcase/src/main/resources/application.yml @@ -93,3 +93,5 @@ logging: charset: console: UTF-8 file: UTF-8 + level: + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE diff --git a/urbanLifelineServ/workcase/src/main/resources/log4j2.xml b/urbanLifelineServ/workcase/src/main/resources/log4j2.xml index 2b1f3af2..1eb66924 100644 --- a/urbanLifelineServ/workcase/src/main/resources/log4j2.xml +++ b/urbanLifelineServ/workcase/src/main/resources/log4j2.xml @@ -11,34 +11,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + @@ -51,35 +29,37 @@ + + + + + + + + - - - + - - - + - - - + diff --git a/urbanLifelineWeb/packages/workcase_wechat/App.uvue b/urbanLifelineWeb/packages/workcase_wechat/App.uvue index 89fb3507..36b13375 100644 --- a/urbanLifelineWeb/packages/workcase_wechat/App.uvue +++ b/urbanLifelineWeb/packages/workcase_wechat/App.uvue @@ -84,6 +84,12 @@