Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
@@ -40,7 +40,8 @@ } @Override public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) { public R<Integer> updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels) { return R.fail("更新数据失败"); } } 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(); 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 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; // 解析token存放进attr中 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(); // 将token存入缓存当中,过期时间为24小时 bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName,"bearer "+tokenUserObject.getAccess_token(),tokenRedisExpire); token2 = JwtUtil.getToken(authToken); user = this.getUser(token2); } // 解析token存放进attr中 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")); 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,request中添加用户信息 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";