From 7647ae9a3db4712b4154adc6317584b66429212b Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 18 九月 2023 15:05: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 | 31 +++++++++++++++++++++++++++---- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java | 8 ++++++-- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java | 2 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java | 15 ++++++++------- 4 files changed, 43 insertions(+), 13 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java index 61bc9e2..b82489f 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java @@ -1,6 +1,7 @@ package com.vci.ubcs.code.controller; import com.vci.ubcs.code.service.UniversalInterfaceI; +import org.apache.tools.ant.taskdefs.condition.Http; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.tool.api.R; @@ -13,6 +14,7 @@ import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Context; +import java.util.concurrent.ConcurrentHashMap; /** * 涓婚搴撳垎绫绘帶鍒跺櫒 @@ -43,10 +45,12 @@ * @throws Throwable */ @PostMapping("/applyCode") - public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, ServletRequest request) { + public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, HttpServletRequest request) { String result=""; - HttpServletRequest httpServletRequest = (HttpServletRequest) request; try { + ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<>(); + threadLocal.set(request); + universalInterfaceI.setThreadLocal(threadLocal); result = universalInterfaceI.applyCode(dataString, dataType); }catch (Throwable e){ e.printStackTrace(); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java index 5770889..428b3e0 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java @@ -27,6 +27,8 @@ */ public String applyCode(String data, String dataType)throws Throwable; + public void setThreadLocal(ThreadLocal<HttpServletRequest> threadLocal); + /**** * 浜哄憳鏁版嵁鍚屾 * @param personData diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java index 1457d0a..7008270 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java @@ -11,6 +11,7 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.support.Kv; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.ObjectUtil; @@ -84,9 +85,11 @@ String ipAddr = request.getRemoteAddr(); // 鍏堝皾璇曚粠缂撳瓨褰撲腑鍙栵紝瀛樺湪灏辩洿鎺ヤ粠缂撳瓨涓幏鍙� String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName); - BladeUser user = null; + // 瑙f瀽token瀛樻斁杩沘ttr涓� + String token2 = JwtUtil.getToken(authToken); + BladeUser user = this.getUser(token2); //涓嶅瓨鍦ㄥ氨璇锋眰 - if(Func.isEmpty(authToken)){ + if(Func.isEmpty(authToken) || Func.isEmpty(user)){ // 鍏嶅瘑鐧诲綍鎺ュ彛鍦板潃 String loginUrl = "http://localhost:"+this.getGatewayPort("ubcs-gateway")+"/ubcs-auth/oauth/token"; // 璇锋眰ubcs-auth鏈嶅姟鑾峰彇token锛屽厛璁剧疆璇锋眰澶� @@ -118,10 +121,10 @@ authToken = "bearer " + tokenUserObject.getAccess_token(); // 灏唗oken瀛樺叆缂撳瓨褰撲腑,杩囨湡鏃堕棿涓�24灏忔椂 bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName,"bearer "+tokenUserObject.getAccess_token(),tokenRedisExpire); + token2 = JwtUtil.getToken(authToken); + user = this.getUser(token2); } - // 瑙f瀽token瀛樻斁杩沘ttr涓� - String token2 = JwtUtil.getToken(authToken); - user = this.getUser(token2); + //request.setAttribute("Blade-Auth",token); request.setAttribute("_BLADE_USER_REQUEST_ATTR_",user); return true; @@ -186,11 +189,9 @@ if (StringUtil.isNotBlank(authToken)) { token = JwtUtil.getToken(authToken); } - if (StringUtil.isNotBlank(token)) { claims = parseJWT(token); } - if (ObjectUtil.isNotEmpty(claims) && getJwtProperties().getState()) { tenantId = Func.toStr(claims.get("tenant_id")); String userId = Func.toStr(claims.get("user_id")); 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..31b61e1 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; } @@ -215,6 +238,7 @@ UserVO userVo = interParameterVO.getData().getUser(); //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); + AuthUtil.getUser(); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; //杩欐槸璐﹀彿淇℃伅 @@ -1463,7 +1487,6 @@ @Override public String queryClassifyRule(String data, String dataType) throws Throwable { - boolean issucess=false; String resultStr = ""; String errorid="0"; -- Gitblit v1.9.3