ludc
2023-09-18 c43b9d04dea89ee0adf731ce46c4f48eed11ffb9
代码提交
已修改4个文件
59 ■■■■■ 文件已修改
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IPasswordFreeLoginService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();