From eb2d3ef0e4fa144d5a76823709a1ab2bc27a2ae9 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期二, 22 七月 2025 17:42:34 +0800 Subject: [PATCH] 1、通信中间件去除上报消息测试类(去除注解) ; 2、remote模块,webSocket模块修改完善,增加机构orgTag控制; 3、从SSO模块获取当前用户信息部分进行集成完善,以供其他部分共享应用。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java | 112 ++++++++++++++++++-------------------------------------- 1 files changed, 36 insertions(+), 76 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java index 8ff3393..ebd9d33 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java @@ -4,7 +4,7 @@ import com.dy.common.multiDataSource.DataSourceContext; import com.dy.common.webFilter.UserTokenContext; import com.dy.common.webUtil.BaseResponseUtils; -import com.mysql.jdbc.StringUtils; +import com.mysql.cj.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; @@ -14,13 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.annotation.Order; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.util.UriComponentsBuilder; import java.lang.reflect.Method; import java.util.Objects; @@ -31,94 +25,60 @@ @Component public class SsoAspect { - @Value("${pipIrr.sso.checkUrl}") - public String SsoCheckUrl ; - - private RestTemplate restTemplate; + @Value("${pipIrr.global.dev}") + public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈� @Autowired - public void setRestTemplate(RestTemplate restTemplate){ - this.restTemplate = restTemplate ; - } + private SsoCheck ssoCheck ; @Pointcut("@annotation(com.dy.common.aop.SsoAop)") - public void dyPointCut() { + public void ssoPointCut() { } - @Around("dyPointCut()") + @Around("ssoPointCut()") public Object execute(ProceedingJoinPoint point) throws Throwable { - MethodSignature signature = (MethodSignature) point.getSignature(); - Method method = signature.getMethod(); - SsoAop aop = method.getAnnotation(SsoAop.class) ; - if (Objects.nonNull(aop)){ - String token = UserTokenContext.get() ; - String power = aop.power() ; - String[] allPower = aop.ifAllPower() ; - String[] anyPower = aop.ifAnyPower() ; - Object rObj = this.check(token, power, allPower, anyPower); - if(rObj != null){ - if(rObj instanceof SsoVo ssoVo){ - if(ssoVo.logined){ - if(ssoVo.hasPower){ - if(!StringUtils.isNullOrEmpty(ssoVo.dataSourceName)){ - DataSourceContext.set(ssoVo.dataSourceName); - return point.proceed(); + if(isDevStage != null && !isDevStage.trim().equals("") && isDevStage.trim().equalsIgnoreCase("true")){ + return point.proceed(); + }else{ + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + SsoAop aop = method.getAnnotation(SsoAop.class) ; + if (Objects.nonNull(aop)){ + String token = UserTokenContext.get() ; + Object rObj = this.ssoCheck.check(token); + if(rObj != null){ + if(rObj instanceof SsoVo ssoVo){ + if(ssoVo.logined){ + if(ssoVo.hasPower){ + if(!StringUtils.isNullOrEmpty(ssoVo.dataSourceName)){ + DataSourceContext.set(ssoVo.dataSourceName); + Object obj = point.proceed(); + DataSourceContext.remove(); + return obj ; + }else{ + //鏃犳暟鎹簮 + return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌褰撳墠鐧诲綍鐢ㄦ埛鎵�灞炴満鏋勬爣绛撅紙鏁版嵁婧愬悕锛�") ; + } }else{ - //鏃犳暟鎹簮 - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌褰撳墠鐧诲綍鐢ㄦ埛鎵�灞炴満鏋勬爣绛撅紙鏁版嵁婧愬悕锛�") ; + //鏃犳潈闄� + return BaseResponseUtils.buildNoPower() ; } }else{ - //鏃犳潈闄� - return BaseResponseUtils.buildNoPower() ; + //鏈櫥褰� + return BaseResponseUtils.buildToLogin() ; } }else{ - //鏈櫥褰� - return BaseResponseUtils.buildToLogin() ; + return rObj ; } }else{ - return rObj ; + return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛宑heck鏂规硶杩斿洖null") ; } }else{ - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛宑heck鏂规硶杩斿洖null") ; + //宸茬粡杩涘叆娉ㄨВ澶勭悊浜嗭紝杩樺緱涓嶅埌娉ㄨВ锛岃繖绉嶆儏鍐垫槸涓嶅彲鑳界殑銆� + return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛孌yAop娉ㄨВ涓簄ull") ; } - }else{ - //宸茬粡杩涘叆娉ㄨВ澶勭悊浜嗭紝杩樺緱涓嶅埌娉ㄨВ锛岃繖绉嶆儏鍐垫槸涓嶅彲鑳界殑銆� - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛孌yAop娉ㄨВ涓簄ull") ; } } - /** - * 璋冪敤SSO绯荤粺杩涜楠岃瘉 - * @param token Header涓殑鐢ㄦ埛token - * @param power 涓�涓潈闄� - * @param allPower 澶氫釜鏉冮檺 - * @param anyPower 澶氫釜鏉冮檺 - * @return 杩斿洖瀵硅薄 - */ - private Object check(String token, String power, String[] allPower, String[] anyPower){ - if(!StringUtils.isNullOrEmpty(SsoCheckUrl)){ - String url = UriComponentsBuilder.fromUriString(SsoCheckUrl) - .queryParam("token", token) - .queryParam("power", power) - .queryParam("allPower", (Object) allPower) - .queryParam("anyPower", (Object) anyPower) - .build() - .toUriString(); - // 鐢变簬鑾峰彇student鎺ュ彛鍜变滑璁剧疆浜哹asicauth锛屾墍浠ラ渶瑕佸湪璇锋眰鏃堕厤缃� - HttpHeaders headers = new HttpHeaders(); - HttpEntity<?> httpEntity = new HttpEntity<>(headers); - ResponseEntity<SsoVo> response = null; - try { - // 閫氳繃Get鏂瑰紡璋冪敤鎺ュ彛 - response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, SsoVo.class); - } catch (Exception e) { - e.printStackTrace(); - } - assert response != null; - return response.getBody(); - }else { - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌SsoCheckUrl"); - } - } } -- Gitblit v1.8.0