Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
@@ -23,15 +23,18 @@ @RestController @RequestMapping("/codeSyncUniversalController") public class CodeSyncUniversalController { /** * 日志 */ private Logger logger = LoggerFactory.getLogger(getClass()); /** * 接口集成服务 */ @Autowired private UniversalInterfaceI universalInterfaceI; /**** * 申请接口 * @param dataString 属性信息 @@ -40,8 +43,9 @@ * @throws Throwable */ @PostMapping("/applyCode") public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType) { public String applyCode(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType, ServletRequest request) { String result=""; HttpServletRequest httpServletRequest = (HttpServletRequest) request; try { result = universalInterfaceI.applyCode(dataString, dataType); }catch (Throwable e){ @@ -50,6 +54,7 @@ } return result; } /**** * 更新/删除/状态接口 * @param dataString 属性信息 @@ -68,7 +73,6 @@ } return result; } /**** * 查询分类口 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IPasswordFreeLoginService.java
@@ -3,7 +3,6 @@ import org.apache.http.auth.AuthenticationException; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; /** * 免密登录服务 @@ -21,9 +20,9 @@ /** * 免密登录方法 * @param username 账号 * @param userName 账号 * @return */ boolean passwordFreeLogin(String username, ServletRequest request) throws AuthenticationException; boolean passwordFreeLogin(String userName, ServletRequest request) throws AuthenticationException; } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -44,10 +44,15 @@ // 通过服务注册中心获取网关的端口号 @Autowired private DiscoveryClient discoveryClient; @Value("${user-info.pwd-free-tenant-id}") // 配置的免密登录的账号所属的租户id @Value("${password-free.pwd-free-tenant-id}") // 配置的token在redis中的生存时间 private String pwdFreeTenantId; @Value("${password-free.token-redis-expire}") private Long tokenRedisExpire; @Autowired private BladeRedis bladeRedis; // 缓存名 public static final String PWD_FREE_LOGIN_TOKEN = "pwdFreeLogin:Token:"; private static JwtProperties jwtProperties; @@ -68,17 +73,17 @@ /** * 免密登录,改变当前webservice请求的header * @param username 账号 * @param userName 账号 * @return */ @Override public boolean passwordFreeLogin(String username, ServletRequest servletRequest) throws AuthenticationException { public boolean passwordFreeLogin(String userName, ServletRequest servletRequest) throws AuthenticationException { //进来先判断缓存中是否存在token // 请求来自己哪个ip地址 HttpServletRequest request = (HttpServletRequest) servletRequest; String ipAddr = request.getRemoteAddr(); // 先尝试从缓存当中取,存在就直接从缓存中获取 String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr); String authToken = bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName); BladeUser user = null; //不存在就请求 if(Func.isEmpty(authToken)){ @@ -91,7 +96,7 @@ headers.set("Tenant-Id", pwdFreeTenantId); //设置请求体参数 MultiValueMap<String,String> parameters = new LinkedMultiValueMap<String,String>(); parameters.add("username",username); parameters.add("username",userName); parameters.add("grant_type", "passwordfree"); parameters.add("scope", "all"); parameters.add("type", "account"); @@ -112,7 +117,7 @@ // 拼接token格式 authToken = "bearer " + tokenUserObject.getAccess_token(); // 将token存入缓存当中,过期时间为24小时 bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr,"bearer "+tokenUserObject.getAccess_token(),60*60*60*24L); bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr+":"+userName,"bearer "+tokenUserObject.getAccess_token(),tokenRedisExpire); } // 解析token存放进attr中 String token2 = JwtUtil.getToken(authToken); Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -53,17 +53,16 @@ import com.vci.ubcs.system.vo.DeptVO; import com.vci.ubcs.system.vo.RoleVO; import lombok.extern.slf4j.Slf4j; 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; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; 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.*; @@ -81,20 +80,25 @@ @Slf4j @VciWebservice(path = "/universalInterface") public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI { @Value("${code.universalinterface.checkSystemConfig:true}") public boolean CODE_CHECKCONFIG; @Autowired(required = false) private AttributeMapConfig attributeMapConfig; /*** * 人员相关配置服务 */ @Autowired(required = false) private PersonAndDeptConfig personAndDeptConfig; /** * 缓存服务 */ //@Autowired //private RedisService redisService; /** * 主题库分类的服务 */ @@ -134,7 +138,6 @@ /** * 密级的服务 */ @Resource private MdmIOService mdmIOService; @@ -164,7 +167,7 @@ @WebMethod public HttpServletRequest getRequest() { // 获取HttpServletRequest对象 HttpServletRequest request = (HttpServletRequest) webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST); HttpServletRequest request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST); return request; } @@ -210,7 +213,7 @@ ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); UserVO userVo = interParameterVO.getData().getUser(); //免密登录申请token,header往token中添加 //免密登录申请token,request中添加用户信息 passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; @@ -362,8 +365,6 @@ //调用集团申请接口申请集团码 return resultStr; } /**** * 人员数据同步 @@ -637,6 +638,7 @@ return resultOrgData; } /**** * 部门数据同步 * @param orgData @@ -903,6 +905,7 @@ } return resultOrgData; } /*** * 统一更新接口(更改状态,更改属性信息)接口 * @param data @@ -947,6 +950,8 @@ ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); UserVO userVo = interParameterVO.getData().getUser(); //免密登录申请token,request中添加用户信息 passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; //这是账号信息 @@ -1118,6 +1123,8 @@ } QueryData queryData=queryClassifyVO.getData(); UserVO userVo=queryData.getUser(); //免密登录申请token,request中添加用户信息 passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); systemId=queryData.getSystemId(); QueryLibraryVO libraryVO= queryData.getLibrary(); String libId= libraryVO.getId(); @@ -1276,6 +1283,8 @@ CondtionsVO condtionsVO=dataCondtionsVO.getCondtions(); systemId=condtionsVO.getSystemId(); UserVO userVo=condtionsVO.getUser(); //免密登录申请token,request中添加用户信息 passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); CondtionVO condtionVO= condtionsVO.getCondtion(); SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); @@ -1452,8 +1461,6 @@ return resultStr; } @Override public String queryClassifyRule(String data, String dataType) throws Throwable { @@ -1492,6 +1499,8 @@ } QueryData queryData=queryClassifyVO.getData(); UserVO userVo=queryData.getUser(); //免密登录申请token,request中添加用户信息 passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); systemId=queryData.getSystemId(); QueryLibraryVO libraryVO= queryData.getLibrary(); String libId= libraryVO.getId();