ludc
2023-09-17 fbdbcfab736a7d6ed18e032ed65cf981bbc50ee9
免密登录接口增加,免密登录调用方法增加
已修改12个文件
已删除6个文件
2940 ■■■■■ 文件已修改
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-gateway/src/main/java/com/vci/ubcs/gateway/filter/AuthFilter.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-gateway/src/main/java/com/vci/ubcs/gateway/provider/AuthProvider.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/Dockerfile 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/HeaderMapRequestWrapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/WebServiceTokenFilter.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IPasswordFreeLoginService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeReferConfigMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-admin.log 2323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-admin.log.2023-09-08.zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log.2023-09-08.zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -47,7 +47,7 @@
     * nacos prod åœ°å€
     */
    String NACOS_PROD_ADDR = "127.0.0.1:8848";
    //String NACOS_PROD_ADDR = "192.168.243.130:8848";
    //String NACOS_PROD_ADDR = "dev.vci-tech.com:38848";
    /**
     * nacos test åœ°å€
Source/UBCS/ubcs-gateway/src/main/java/com/vci/ubcs/gateway/filter/AuthFilter.java
@@ -111,7 +111,6 @@
        return resp.writeWith(Flux.just(buffer));
    }
    @Override
    public int getOrder() {
        return -100;
Source/UBCS/ubcs-gateway/src/main/java/com/vci/ubcs/gateway/provider/AuthProvider.java
@@ -34,7 +34,6 @@
    static {
        DEFAULT_SKIP_URL.add("/example");
        DEFAULT_SKIP_URL.add("/oauth/token/**");
        DEFAULT_SKIP_URL.add("/oauth/password-free-login/**");
        DEFAULT_SKIP_URL.add("/oauth/captcha/**");
        DEFAULT_SKIP_URL.add("/oauth/clear-cache/**");
        DEFAULT_SKIP_URL.add("/oauth/user-info");
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/Dockerfile
@@ -8,7 +8,7 @@
#在容器中以多少端口运行
EXPOSE 36016
ADD ./target/ubcs-webservice.jar ./app.jar
ADD ./target/ubcs-applyjtcodeservice.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/HeaderMapRequestWrapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/WebServiceTokenFilter.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
@@ -10,6 +10,10 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
/**
 * ä¸»é¢˜åº“分类控制器
 *
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IPasswordFreeLoginService.java
@@ -1,5 +1,7 @@
package com.vci.ubcs.code.service;
import org.apache.http.auth.AuthenticationException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
@@ -11,18 +13,17 @@
public interface IPasswordFreeLoginService {
    /**
     * æ ¹æ®æœåŠ¡åèŽ·å–ç«¯å£å·
     * @param serviceId
     * @return
     */
    String getGatewayPort(String serviceId);
    /**
     * å…å¯†ç™»å½•方法
     * @param username è´¦å·
     * @return
     */
    String passwordFreeLogin(String username, ServletRequest request);
    /**
     * å…å¯†ç™»å½•方法2
     * @param username
     * @param servletRequest
     * @return
     */
    boolean passwordFreeLogin2(String username, HttpServletRequest servletRequest);
    boolean passwordFreeLogin(String username, ServletRequest request) throws AuthenticationException;
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java
@@ -5,6 +5,9 @@
import org.springframework.web.bind.annotation.RequestParam;
import javax.jws.WebService;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Context;
/**
 * ç»Ÿä¸€æŽ¥å£
@@ -22,7 +25,7 @@
     * @return xml格式/json格式
     * @throws Throwable
     */
    public String applyCode(String data,String dataType)throws Throwable;
    public String applyCode(String data, String dataType)throws Throwable;
    /****
     * äººå‘˜æ•°æ®åŒæ­¥
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java
@@ -20,6 +20,7 @@
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.system.cache.NacosConfigCache;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
@@ -55,6 +56,9 @@
    @Resource
    private ICodeSrchCondConfigService ICodeSrchCondConfigService;
    @Resource
    private NacosConfigCache nacosConfigCache;
    /**
     * é€šè¿‡ID查询单条数据
     *
@@ -79,7 +83,9 @@
        // æ ¹æ®ç§Ÿæˆ·è¿›è¡ŒåŒºåˆ†å¯¹åº”的参照配置
        Map<String, Object> conditionMap = bladeQueryObject.getConditionMap();
        // æŸ¥è¯¢æ‰€å±žç§Ÿæˆ·ä¸‹çš„和开启全局的参照配置信息
        conditionMap.put("tenantId",AuthUtil.getTenantId());
        if(!nacosConfigCache.getAdminUserInfo().getTenantId().equals(AuthUtil.getTenantId())){
            conditionMap.put("tenantId",AuthUtil.getTenantId());
        }
        conditionMap.put("isOpenGlobal","true");
        BeanMap beanMap = BeanMap.create(codeReferConfig);
        beanMap.putAll(conditionMap);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -171,7 +171,7 @@
        LambdaQueryWrapper<CodeRule> wrapper = Wrappers.<CodeRule>query()
            .lambda().eq(CodeRule::getId, codeRuleDTO.getId());
        if(AuthUtil.getTenantId().equals(nacosConfigCache.getAdminUserInfo().getTenantId())){
            wrapper.eq(CodeRule::getTenantId,codeRuleDTO.getTenantId());
            wrapper.eq(CodeRule::getTenantId,AuthUtil.getTenantId());
        }
        // æ ¹æ®è§„则id查询编号
        List<CodeRule> codeRulesList = this.codeRuleMapper.selectList(wrapper);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -1,14 +1,21 @@
package com.vci.ubcs.code.service.impl;
import com.alibaba.fastjson.JSON;
import com.vci.ubcs.code.config.HeaderMapRequestWrapper;
import com.vci.ubcs.code.entity.TokenUserObject;
import com.vci.ubcs.code.service.IPasswordFreeLoginService;
import com.vci.ubcs.code.util.HttpUtils;
import org.springblade.core.cache.utils.CacheUtil;
import io.jsonwebtoken.Claims;
import org.apache.http.auth.AuthenticationException;
import org.springblade.core.jwt.JwtUtil;
import org.springblade.core.jwt.props.JwtProperties;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
@@ -19,11 +26,12 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import javax.annotation.Resource;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import static org.springblade.core.secure.utils.AuthUtil.parseJWT;
/**
 * å…å¯†ç™»å½•服务
@@ -42,64 +50,20 @@
    private BladeRedis bladeRedis;
    // ç¼“存名
    public static final String PWD_FREE_LOGIN_TOKEN = "pwdFreeLogin:Token:";
    private static JwtProperties jwtProperties;
    /**
     * èŽ·å–ç½‘å…³ç«¯å£
     * æ ¹æ®æœåŠ¡åèŽ·å–ç«¯å£å·
     * @param serviceId
     * @return
     */
    private String getGatewayPort() {
        List<ServiceInstance> instances = discoveryClient.getInstances("ubcs-gateway");
    public String getGatewayPort(String serviceId) {
        List<ServiceInstance> instances = discoveryClient.getInstances(serviceId);
        if (!instances.isEmpty()) {
            ServiceInstance gatewayInstance = instances.get(0);
            return String.valueOf(gatewayInstance.getPort());
        }
        return "80";
    }
    /**
     * å…å¯†ç™»å½•并存入缓存,配合过滤器写法
     * @param username è´¦å·
     * @return
     */
    @Override
    public String passwordFreeLogin(String username, ServletRequest servletRequest) {
        // å…å¯†ç™»å½•接口地址
        String loginUrl = "http://localhost:"+this.getGatewayPort()+"/ubcs-auth/oauth/token";
        // è¯·æ±‚来自己哪个ip地址
        HttpServletRequest request = (HeaderMapRequestWrapper) servletRequest;
        String ipAddr = request.getRemoteAddr();
        // å…ˆå°è¯•从缓存当中取,如果不存在就登录
        String redisToken = (String)bladeRedis.get(PWD_FREE_LOGIN_TOKEN+ipAddr);
        if(Func.isNotBlank(redisToken)){
            // ç¼“存中已经存在就直接删除该缓存,主要为了避免统一ip下存在多个token的情况
            bladeRedis.del(PWD_FREE_LOGIN_TOKEN+ipAddr);
        }
        // ä¸å­˜åœ¨å°±é‡æ–°èŽ·å–token
        // è®¾ç½®è¯·æ±‚头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        headers.set("Authorization", "Basic c3dvcmQ6c3dvcmRfc2VjcmV0");
        headers.set("Tenant-Id", pwdFreeTenantId);
        //设置请求体参数
        MultiValueMap<String,String> parameters = new LinkedMultiValueMap<String,String>();
        parameters.add("username",username);
        parameters.add("grant_type", "passwordfree");
        parameters.add("scope", "all");
        parameters.add("type", "account");
        // å‘送POST请求
        String responseBody = HttpUtils.post(loginUrl, parameters,headers);
        //拿到响应体其中包含token,用request中的ip地址作为键值,将token存入缓存
        TokenUserObject tokenUserObject = null;
        try {
            tokenUserObject = JSON.parseObject(responseBody, TokenUserObject.class);
        }catch (Exception e){
            throw new ServiceException("responseBody转换TokenUserObject失败:"+e.getMessage());
        }
        // å°†token存入缓存当中,过期时间为24小时
        bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr,"bearer "+tokenUserObject.getAccess_token(),60*60*60*24L);
        return responseBody;
        return "8080";
    }
    /**
@@ -108,41 +72,139 @@
     * @return
     */
    @Override
    public boolean passwordFreeLogin2(String username, HttpServletRequest servletRequest) {
        // å…å¯†ç™»å½•接口地址
        String loginUrl = "http://localhost:"+this.getGatewayPort()+"/ubcs-auth/oauth/token";
        // èŽ·å–token,先设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        headers.set("Authorization", "Basic c3dvcmQ6c3dvcmRfc2VjcmV0");
        headers.set("Tenant-Id", pwdFreeTenantId);
        //设置请求体参数
        MultiValueMap<String,String> parameters = new LinkedMultiValueMap<String,String>();
        parameters.add("username",username);
        parameters.add("grant_type", "passwordfree");
        parameters.add("scope", "all");
        parameters.add("type", "account");
        // å‘送POST请求
        String responseBody = HttpUtils.post(loginUrl, parameters,headers);
        //拿到响应体其中包含token,用request中的ip地址作为键值,将token存入缓存
        TokenUserObject tokenUserObject = null;
        try {
            tokenUserObject = JSON.parseObject(responseBody, TokenUserObject.class);
        }catch (Exception e){
            throw new ServiceException("responseBody转换TokenUserObject失败:"+e.getMessage());
    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);
        BladeUser user = null;
        //不存在就请求
        if(Func.isEmpty(authToken)){
            // å…å¯†ç™»å½•接口地址
            String loginUrl = "http://localhost:"+this.getGatewayPort("ubcs-gateway")+"/ubcs-auth/oauth/token";
            // è¯·æ±‚ubcs-auth服务获取token,先设置请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
            headers.set("Authorization", "Basic c3dvcmQ6c3dvcmRfc2VjcmV0");
            headers.set("Tenant-Id", pwdFreeTenantId);
            //设置请求体参数
            MultiValueMap<String,String> parameters = new LinkedMultiValueMap<String,String>();
            parameters.add("username",username);
            parameters.add("grant_type", "passwordfree");
            parameters.add("scope", "all");
            parameters.add("type", "account");
            String responseBody = null;
            try {
                // å‘送POST请求
                responseBody = HttpUtils.post(loginUrl, parameters,headers);
            }catch (Exception e){
                throw new AuthenticationException("调用鉴权服务ubcs-auth失败,原因:"+e.getMessage());
            }
            //拿到响应体其中包含token,用request中的ip地址作为键值,将token存入缓存
            TokenUserObject tokenUserObject = null;
            try {
                tokenUserObject = JSON.parseObject(responseBody, TokenUserObject.class);
            }catch (Exception e){
                throw new ServiceException("鉴权响应内容转换为TokenUserObject失败:"+e.getMessage());
            }
            // æ‹¼æŽ¥token格式
            authToken = "bearer " + tokenUserObject.getAccess_token();
            // å°†token存入缓存当中,过期时间为24小时
            bladeRedis.setEx(PWD_FREE_LOGIN_TOKEN+ipAddr,"bearer "+tokenUserObject.getAccess_token(),60*60*60*24L);
        }
        HttpServletRequest request = (HeaderMapRequestWrapper) servletRequest;
        HeaderMapRequestWrapper requestWrapper = new HeaderMapRequestWrapper(request);
        //设置当前web接口的请求头
        String token = "bearer " + tokenUserObject.getAccess_token();
        // å°†token设置到header中
        requestWrapper.setHeader("Blade-Auth", token);
        requestWrapper.setHeader("Authorization","Basic c3dvcmQ6c3dvcmRfc2VjcmV0");
        // å°†token存入缓存当中,过期时间为24小时
        // è§£æž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;
    }
    /**
     * æ ¹æ®token获取用户信息
     * @param token
     * @return
     */
    private static BladeUser getUser(String token) {
        Claims claims = getClaims(token);
        if (claims == null) {
            return null;
        } else {
            String clientId = Func.toStr(claims.get("client_id"));
            Long userId = Func.toLong(claims.get("user_id"));
            String tenantId = Func.toStr(claims.get("tenant_id"));
            String oauthId = Func.toStr(claims.get("oauth_id"));
            String deptId = Func.toStrWithEmpty(claims.get("dept_id"), "-1");
            String postId = Func.toStrWithEmpty(claims.get("post_id"), "-1");
            String roleId = Func.toStrWithEmpty(claims.get("role_id"), "-1");
            String account = Func.toStr(claims.get("account"));
            String roleName = Func.toStr(claims.get("role_name"));
            String userName = Func.toStr(claims.get("user_name"));
            String nickName = Func.toStr(claims.get("nick_name"));
            String tenantName = Func.toStr(claims.get("tenantName"));
            String email = Func.toStr(claims.get("email"));
            String deptName = Func.toStr(claims.get("deptName"));
            String secretGrade = Func.toStr(claims.get("secretGrade"));
            Kv detail = Kv.create().setAll((Map)claims.get("detail"));
            BladeUser bladeUser = new BladeUser();
            bladeUser.setClientId(clientId);
            bladeUser.setUserId(userId);
            bladeUser.setTenantId(tenantId);
            bladeUser.setOauthId(oauthId);
            bladeUser.setAccount(account);
            bladeUser.setDeptId(deptId);
            bladeUser.setPostId(postId);
            bladeUser.setRoleId(roleId);
            bladeUser.setRoleName(roleName);
            bladeUser.setUserName(userName);
            bladeUser.setNickName(nickName);
            detail.put("tenantName", tenantName);
            detail.put("deptName", deptName);
            detail.put("email", email);
            detail.put("secretGrade", secretGrade);
            bladeUser.setDetail(detail);
            return bladeUser;
        }
    }
    /**
     * è§£æžtoken
     * @param authToken
     * @return
     */
    private static Claims getClaims(String authToken) {
        Claims claims = null;
        String token = null;
        String tenantId;
        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"));
            String accessToken = JwtUtil.getAccessToken(tenantId, userId, token);
            if (!token.equalsIgnoreCase(accessToken)) {
                return null;
            }
        }
        return claims;
    }
    private static JwtProperties getJwtProperties() {
        if (jwtProperties == null) {
            jwtProperties = (JwtProperties) SpringUtil.getBean(JwtProperties.class);
        }
        return jwtProperties;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -53,13 +53,19 @@
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.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.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -143,12 +149,25 @@
     */
    @Resource
    private IDockingLogeService dockingLogeService;
    @Resource
    private IPasswordFreeLoginService passwordFreeLoginService;
    private  static String separator="##VCI##";
    private  String errorid="0";
    private String msg="成功";
    private  String objerrorCode="0";
    private String objerrorMsg="成功";
    @Resource
    private WebServiceContext webServiceContext;
    @WebMethod
    public HttpServletRequest getRequest() {
        // èŽ·å–HttpServletRequest对象
        HttpServletRequest request = (HttpServletRequest) webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
        return request;
    }
    /***
     * ç”³è¯·ç¼–码接口
     * @param data ä¼ é€’的数据参数
@@ -191,9 +210,10 @@
            ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
            systemId = interParameterVO.getData().getSystemId();
            UserVO userVo = interParameterVO.getData().getUser();
            //免密登录申请token,header往token中添加
            passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest());
            List<ClassfyVO> classVOList = classfysVO.getClassify();
            InterParameterVO finalInterParameterVO = interParameterVO;
            //这是账号信息
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeReferConfigMapper.xml
@@ -122,7 +122,7 @@
                PCR.TENANTID = #{codeReferConfig.tenantId}
            </if>
            <if test="codeReferConfig.isOpenGlobal != null and codeReferConfig.isOpenGlobal != ''">
                OR PCR.ISOPENGLOBAL = #{codeReferConfig.isOpenGlobal}
                and PCR.ISOPENGLOBAL = #{codeReferConfig.isOpenGlobal}
            </if>
            <if test="codeReferConfig.name != null and codeReferConfig.name != ''">
                and NAME like CONCAT(CONCAT('%', #{codeReferConfig.name}), '%')
Source/data/applogs/xxl-job/xxl-job-admin.log
ÎļþÒÑɾ³ý
Source/data/applogs/xxl-job/xxl-job-admin.log.2023-09-08.zip
Binary files differ
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log
ÎļþÒÑɾ³ý
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log.2023-09-08.zip
Binary files differ