From 70aeac289c132085e91d59dc82bc1facd41889fa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 24 二月 2025 15:33:53 +0800
Subject: [PATCH] 有关表阀一体机(王江海制定)通信协议: 1、根据新版本协议,解析部分更新; 2、根据测试一体阀协议数据处理需求与逻辑,进行表阀一体机数据处理。
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java | 96 ++++++++++++++++++++++++-----------------------
1 files changed, 49 insertions(+), 47 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..5180006 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,10 +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.http.*;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
@@ -31,8 +28,11 @@
@Component
public class SsoAspect {
+ @Value("${pipIrr.global.dev}")
+ public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈�
+
@Value("${pipIrr.sso.checkUrl}")
- public String SsoCheckUrl ;
+ public String ssoCheckUrl;
private RestTemplate restTemplate;
@@ -42,70 +42,68 @@
}
@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.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)
+ private Object check(String token){
+ 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();
+ headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
+
HttpEntity<?> httpEntity = new HttpEntity<>(headers);
ResponseEntity<SsoVo> response = null;
try {
@@ -113,9 +111,13 @@
response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, SsoVo.class);
} catch (Exception e) {
e.printStackTrace();
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛岃闂崟鐐圭櫥褰曠郴缁熷紓甯�");
}
- assert response != null;
- return response.getBody();
+ if(response == null){
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛岃闂崟鐐圭櫥褰曠郴缁熷紓甯�");
+ }else{
+ return response.getBody();
+ }
}else {
return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌SsoCheckUrl");
}
--
Gitblit v1.8.0