From 2ef77429e8906bdfec24bfb6fbc07509bd6ea855 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 21 九月 2023 10:32:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |   41 ++++++++++++++++++++++++++++++++---------
 1 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index 540121c..132d2fd 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -53,6 +53,9 @@
 import com.vci.ubcs.system.vo.DeptVO;
 import com.vci.ubcs.system.vo.RoleVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.tools.ant.taskdefs.condition.Http;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,7 +65,9 @@
 
 import javax.annotation.Resource;
 import javax.jws.WebMethod;
+import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.Context;
 import javax.xml.ws.WebServiceContext;
 import javax.xml.ws.handler.MessageContext;
 import java.util.*;
@@ -161,13 +166,31 @@
 	private  String objerrorCode="0";
 	private String objerrorMsg="鎴愬姛";
 
+	private final ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>();
+
 	@Resource
 	private WebServiceContext webServiceContext;
 
+	@Override
+	public void setThreadLocal(ThreadLocal<HttpServletRequest> requestThreadLocal){
+		this.threadLocal.set(requestThreadLocal.get());
+		requestThreadLocal.remove();
+	}
+
 	@WebMethod
-	public HttpServletRequest getRequest() {
-		// 鑾峰彇HttpServletRequest瀵硅薄
-		HttpServletRequest request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
+	private HttpServletRequest getRequest() {
+		//rest璇锋眰鏂瑰紡鑾峰彇request
+		HttpServletRequest request = this.threadLocal.get();
+		if(Func.isEmpty(request)){
+			try {
+				// webservice璇锋眰鏂瑰紡鑾峰彇HttpServletRequest瀵硅薄
+				request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
+			}catch (Exception e){
+				throw new ServiceException("鑾峰彇httpServletRequest澶辫触锛屽師鍥�:"+e.getMessage());
+			}
+		}else {
+			this.threadLocal.remove();
+		}
 		return request;
 	}
 
@@ -214,7 +237,8 @@
 			systemId = interParameterVO.getData().getSystemId();
 			UserVO userVo = interParameterVO.getData().getUser();
 			//鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭�
-			passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
+			passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
+			AuthUtil.getUser();
 			List<ClassfyVO> classVOList = classfysVO.getClassify();
 			InterParameterVO finalInterParameterVO = interParameterVO;
 			//杩欐槸璐﹀彿淇℃伅
@@ -951,7 +975,7 @@
 			systemId = interParameterVO.getData().getSystemId();
 			UserVO userVo = interParameterVO.getData().getUser();
 			//鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭�
-			passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
+			passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
 			List<ClassfyVO> classVOList = classfysVO.getClassify();
 			InterParameterVO finalInterParameterVO = interParameterVO;
 			//杩欐槸璐﹀彿淇℃伅
@@ -1124,7 +1148,7 @@
 			QueryData queryData=queryClassifyVO.getData();
 			UserVO userVo=queryData.getUser();
 			//鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭�
-			passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
+			passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
 			systemId=queryData.getSystemId();
 			QueryLibraryVO libraryVO= queryData.getLibrary();
 			String libId= libraryVO.getId();
@@ -1284,7 +1308,7 @@
 			systemId=condtionsVO.getSystemId();
 			UserVO userVo=condtionsVO.getUser();
 			//鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭�
-			passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
+			passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
 			CondtionVO condtionVO= condtionsVO.getCondtion();
 			SessionInfo sessionInfo = new SessionInfo();
 			sessionInfo.setUserId(userVo.getUserName());
@@ -1463,7 +1487,6 @@
 
 	@Override
 	public String queryClassifyRule(String data, String dataType) throws Throwable {
-
 		boolean issucess=false;
 		String resultStr = "";
 		String errorid="0";
@@ -1500,7 +1523,7 @@
 			QueryData queryData=queryClassifyVO.getData();
 			UserVO userVo=queryData.getUser();
 			//鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭�
-			passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
+			passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest());
 			systemId=queryData.getSystemId();
 			QueryLibraryVO libraryVO= queryData.getLibrary();
 			String libId= libraryVO.getId();

--
Gitblit v1.9.3