From 9440721414f31d1c85094be1a035d9a90f9c4d5a Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 18 八月 2025 10:45:32 +0800
Subject: [PATCH] 完善代码
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java | 101 +++++++++++---------------------------------------
1 files changed, 23 insertions(+), 78 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 fbfa354..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
@@ -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;
@@ -34,21 +28,14 @@
@Value("${pipIrr.global.dev}")
public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈�
- @Value("${pipIrr.sso.checkUrl}")
- public String SsoCheckUrl ;
-
- private RestTemplate restTemplate;
-
@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 {
if(isDevStage != null && !isDevStage.trim().equals("") && isDevStage.trim().equalsIgnoreCase("true")){
return point.proceed();
@@ -57,43 +44,34 @@
Method method = signature.getMethod();
SsoAop aop = method.getAnnotation(SsoAop.class) ;
if (Objects.nonNull(aop)){
- String power = aop.value() ;
- if(power.trim().equals("")){
- power = aop.power() ;
- }
- if(power.trim().equals("-1")){
- //涓嶈繘琛岀櫥褰曞強鏉冮檺楠岃瘉
- return point.proceed();
- }else{
- String[] allPower = aop.ifAllPower() ;
- String[] anyPower = aop.ifAnyPower() ;
- String token = UserTokenContext.get() ;
- 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();
- }else{
- //鏃犳暟鎹簮
- return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌褰撳墠鐧诲綍鐢ㄦ埛鎵�灞炴満鏋勬爣绛撅紙鏁版嵁婧愬悕锛�") ;
- }
+ 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.buildNoPower() ;
+ //鏃犳暟鎹簮
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌褰撳墠鐧诲綍鐢ㄦ埛鎵�灞炴満鏋勬爣绛撅紙鏁版嵁婧愬悕锛�") ;
}
}else{
- //鏈櫥褰�
- return BaseResponseUtils.buildToLogin() ;
+ //鏃犳潈闄�
+ return BaseResponseUtils.buildNoPower() ;
}
}else{
- return rObj ;
+ //鏈櫥褰�
+ return BaseResponseUtils.buildToLogin() ;
}
}else{
- return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛宑heck鏂规硶杩斿洖null") ;
+ return rObj ;
}
+ }else{
+ return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛宑heck鏂规硶杩斿洖null") ;
}
}else{
//宸茬粡杩涘叆娉ㄨВ澶勭悊浜嗭紝杩樺緱涓嶅埌娉ㄨВ锛岃繖绉嶆儏鍐垫槸涓嶅彲鑳界殑銆�
@@ -102,38 +80,5 @@
}
}
- /**
- * 璋冪敤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