From 39080c32db9cd2788eb9b53f9c04b1ef2d1fae2f Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Fri, 22 Mar 2024 14:28:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=A2=E8=AF=95/=E9=9D=A2=E8=B0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/utils/TRTCUtils.java | 12 +- .../cool/store/config/SignValidateFilter.java | 23 ++-- .../store/config/TokenValidateFilter.java | 108 +++++++++--------- .../webc/LineInterviewController.java | 2 +- 4 files changed, 70 insertions(+), 75 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java index f90194b95..a8c522711 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java @@ -16,12 +16,6 @@ public class TRTCUtils { */ private static final Long expired = 60 * 60 * 24L; - @Value("${trtc.sdkAppId}") - private Long sdkAppId; - - @Value("${trtc.secretKey}") - private String key; - /** * 生成 userSig 用于进入会议 * 详见 https://cloud.tencent.com/document/product/647/17275#.E8.B0.83.E8.AF.95.E8.B7.91.E9.80.9A.E9.98.B6.E6.AE.B5.E5.A6.82.E4.BD.95.E8.AE.A1.E7.AE.97-UserSig.EF.BC.9F @@ -36,9 +30,7 @@ public class TRTCUtils { return tlsSigAPIv2.genUserSig(userId, expiredTime); } - public String genUserSig(String userId) { - TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, key); - return tlsSigAPIv2.genUserSig(userId, expired); + public static void main(String[] args) { + System.out.println(genUserSig(1600026212L, "e036b654c665f649f053a01ff6f5652a826980027be298d4d49949f6e26434a5", "6488aeaefa7246de9af141c6c6fdd2c7")); } - } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-web/src/main/java/com/cool/store/config/SignValidateFilter.java index 88ad975cb..c9e884a91 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -48,10 +48,10 @@ public class SignValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**", - "/partner/mini/program/oss/getUploadFileConfig", - "/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo", - "/**/swagger*/**", "/**/webjars/**","/partner/mini/program/v1/partnerManage/openArea/areaApplyQuery"); + "/xfsg/mini/program/doc.html","/xfsg/mini/program/v2/api-docs","/**/test/**", + "/xfsg/mini/program/oss/getUploadFileConfig", + "/xfsg/mini/program/v1/partnerManage/partner/getIdentityCardInfo", + "/**/swagger*/**", "/**/webjars/**","/xfsg/mini/program/v1/partnerManage/openArea/areaApplyQuery"); /** @@ -77,11 +77,16 @@ public class SignValidateFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); - /*HttpServletResponse response = (HttpServletResponse) servletResponse; HttpServletRequest request = (HttpServletRequest) servletRequest; - CustomHttpServletRequestWrapper wrapper = (CustomHttpServletRequestWrapper) request; String uri = request.getRequestURI(); + if(uri.startsWith("/xfsg/pc")){ + filterChain.doFilter(servletRequest, servletResponse); + return; + } + MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); + HttpServletResponse response = (HttpServletResponse) servletResponse; + + CustomHttpServletRequestWrapper wrapper = (CustomHttpServletRequestWrapper) request; String method = request.getMethod(); String userStr = ""; boolean isInWhiteList = excludePath(uri); @@ -120,9 +125,9 @@ public class SignValidateFilter implements Filter { userStr = JSONObject.toJSONString(partnerUserInfoVO); log.info("url:{}, userStr:{}", uri, userStr); } - }*/ + } try { - //PartnerUserHolder.setUser(userStr); + PartnerUserHolder.setUser(userStr); filterChain.doFilter(servletRequest, servletResponse); } finally { PartnerUserHolder.removeUser(); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-web/src/main/java/com/cool/store/config/TokenValidateFilter.java index 1cbbb37b7..9797e8d6d 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/config/TokenValidateFilter.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -44,19 +44,14 @@ public class TokenValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig", + "/xfsg/pc/doc.html","/xfsg/pc/v2/api-docs","/**/test/**","/xfsg/pc/feiShuLogin","/xfsg/pc/oss/getUploadFileConfig", "/**/swagger*/**", "/**/webjars/**", //腾讯音视频回调,单独做验签 - "/partner/pc/video/**", + "/xfsg/pc/video/**", //800回调地址暂时不做验证 - "/partner/pc/flow/qualificationReview/callback", - "/**/ecSync/ecToApplet/**", - "/**/ecSync/labelInfo/**", - "/**/ecSync/getCrmCreateTime/**", - "/**/ecSync/historyLine/**", - "/**/ecSync/historyLineTrajectory/**", - "/partner/pc/websocket/**", - "/partner/pc/call/**"); + "/xfsg/pc/flow/qualificationReview/callback", + "/xfsg/pc/websocket/**", + "/xfsg/pc/call/**"); /** * @param uri @@ -81,52 +76,55 @@ public class TokenValidateFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { -// MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); -// HttpServletResponse response = (HttpServletResponse) servletResponse; -// HttpServletRequest reqs = (HttpServletRequest) servletRequest; -// String uri = reqs.getRequestURI(); -// String method = reqs.getMethod(); -// String userStr = ""; -// LoginUserInfo currentUser = null; -// boolean isInWhiteList = excludePath(uri); -// String accessToken = reqs.getHeader("accessToken"); -// String key = MessageFormat.format(CommonConstants.ACCESS_TOKEN_KEY, accessToken); -// if(StringUtils.isNotBlank(accessToken)){ -// userStr = redisUtilPool.getString(key); -// if(StringUtils.isNotBlank(userStr)){ -// currentUser = JSON.parseObject(userStr, LoginUserInfo.class); -// } -// } -// log.info("url:{}", uri); -// if ( !isInWhiteList && !method.equals("OPTIONS")) { -// if (StringUtils.isEmpty(accessToken)) { -// response.setStatus(HttpStatus.OK.value()); -// response.getWriter().write(JSON.toJSONString( -// ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); -// return; -// } -// if (Objects.isNull(currentUser)) { -// response.setStatus(HttpStatus.OK.value()); -// response.getWriter().write(JSON.toJSONString( -// ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); -// return; -// } -// log.info("url:{}, access_token:{}, userId:{}, username:{}", uri, accessToken, currentUser.getUserId(), currentUser.getName()); -// } -// if(StringUtils.isBlank(userStr) && !isInWhiteList){ -// response.setStatus(HttpStatus.OK.value()); -// response.getWriter().write(JSON.toJSONString( -// ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); -// return; -// } -// try { -// CurrentUserHolder.setUser(userStr); + HttpServletRequest reqs = (HttpServletRequest) servletRequest; + String uri = reqs.getRequestURI(); + if(uri.startsWith("/xfsg/mini")){ filterChain.doFilter(servletRequest, servletResponse); -// } finally { -// CurrentUserHolder.removeUser(); -// MDC.clear(); -// } - //filterChain.doFilter(servletRequest, servletResponse); + return; + } + MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); + HttpServletResponse response = (HttpServletResponse) servletResponse; + String method = reqs.getMethod(); + String userStr = ""; + LoginUserInfo currentUser = null; + boolean isInWhiteList = excludePath(uri); + String accessToken = "1d1c34451b51e7180445b74c49b7ab09";//reqs.getHeader("accessToken"); + String key = MessageFormat.format(CommonConstants.ACCESS_TOKEN_KEY, accessToken); + if(StringUtils.isNotBlank(accessToken)){ + userStr = redisUtilPool.getString(key); + if(StringUtils.isNotBlank(userStr)){ + currentUser = JSON.parseObject(userStr, LoginUserInfo.class); + } + } + log.info("url:{}", uri); + if ( !isInWhiteList && !method.equals("OPTIONS")) { + if (StringUtils.isEmpty(accessToken)) { + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + if (Objects.isNull(currentUser)) { + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + log.info("url:{}, access_token:{}, userId:{}, username:{}", uri, accessToken, currentUser.getUserId(), currentUser.getName()); + } + if(StringUtils.isBlank(userStr) && !isInWhiteList){ + response.setStatus(HttpStatus.OK.value()); + response.getWriter().write(JSON.toJSONString( + ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID))); + return; + } + try { + CurrentUserHolder.setUser(userStr); + filterChain.doFilter(servletRequest, servletResponse); + } finally { + CurrentUserHolder.removeUser(); + MDC.clear(); + } } @Override diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java index 9f806b84b..a5618e4e8 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java @@ -29,7 +29,7 @@ import java.util.List; * @date 2024-03-15 16:04 */ @RestController -@RequestMapping("/interview") +@RequestMapping("/mini/interview") @Api(tags = "加盟商端-面试&面谈") @Slf4j public class LineInterviewController {