ludc
2023-09-11 056a96fcdcefb6c48acd3147559713c8e93068d7
代码提交
已修改4个文件
60 ■■■■ 文件已修改
Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/SocialTokenGranter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/SocialTokenGranter.java
@@ -79,7 +79,7 @@
        String source = socialProperties.getAlias().getOrDefault(sourceParameter, sourceParameter);
        // 开放平台授权码
        String code = parameters.get("code");
        // 开放平台状态吗
        // 开放平台状态码
        String state = parameters.get("state");
        // 获取开放平台授权数据
Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/service/BladeUserDetailsServiceImpl.java
@@ -63,9 +63,9 @@
public class BladeUserDetailsServiceImpl implements UserDetailsService {
    /**
     * 允许错误次数
     * 默认允许错误次数
     */
    //public static final Integer FAIL_COUNT = 5;
    public static final Integer FAIL_COUNT = 5;
    public static final String FAIL_COUNT_VALUE = "account.failCount";
    /**
@@ -78,7 +78,6 @@
    private final BladeRedis bladeRedis;
    private final JwtProperties jwtProperties;
    /**
     * 超级管理员信息
@@ -126,14 +125,13 @@
        // 判断登录是否锁定
        int count = getFailCount(tenantId, username);
        //为防止取值为空报错的情况,当为空的时候给默认只为5次便锁定用户登录,但是一般很难出现这种情况,因为我feign里面是给了默认密码策略查询的
        int failCountValue = Func.isEmpty(strategy) ? 5:Func.toInt(strategy.getLockingNum());
        int failCountValue = Func.isEmpty(strategy) ? FAIL_COUNT:Func.toInt(strategy.getLockingNum());
        int failCount = Func.toInt(ParamCache.getValue(FAIL_COUNT_VALUE), failCountValue);
        if (count >= failCount) {
            throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_TOO_MANY_FAILS);
        }
        // 将请求头放进线程中
        //超级管理员配置文件配置账号密码,实现登录, 默认租户id为000000
        if(tenantId.equals(this.tenantId)){
            if (!this.userName.equals(username) && !password.equalsIgnoreCase(this.password)) {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -283,7 +283,7 @@
            }
            // 判断是否为引用码段,如果是应用码段的话,为了适配前端组件,这里要对表进行处理一下,按照以前的参照格式进行转换
            codeBasicSecDO.setReferValueInfo(referConfigToUIUiTable(codeReferConfigVO));
            if(codeReferConfigVO.getIsPersistence()=="true"){
            if(Func.toBoolean(codeReferConfigVO.getIsPersistence())){
                codeReferConfigService.insert(codeReferConfigVO);
            }
        }
@@ -324,8 +324,11 @@
                BeanUtil.copy(showField,tableColVO);
                tableColVO.setSortField(showField.getAttrSortField());
                uiTableFieldVOs.add(tableColVO);
                if(showField.getIsQuery().equals("true")){
                    queryColumns.add(tableColVO);
                if(Func.toBoolean(showField.getIsQuery())){
                    TableColVO tableQueryColumns = new TableColVO();
                    BeanUtil.copy(showField,tableQueryColumns);
                    tableColVO.setSortField(showField.getAttrSortField());
                    queryColumns.add(tableQueryColumns);
                }
            });
        }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -1,9 +1,17 @@
package com.vci.ubcs.code.service.impl;
import com.vci.ubcs.code.service.IPasswordFreeLoginService;
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.http.HttpMethod;
import org.springframework.web.client.RestTemplate;
/**
 * 免密登录服务
@@ -13,16 +21,41 @@
@Service
public class PasswordFreeLoginServiceImpl implements IPasswordFreeLoginService {
    private RestTemplate restTemplate;
    /**
     * 免密登录方法
     * 免密登录
     * @param account 账号
     * @return
     */
    @Override
    public boolean passwordFreeLogin(String account) {
        // 免密登录接口地址
        String loginUrl = "http://ubcs-auth/auth/login";
        // 设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        //设置请求体参数
        MultiValueMap<String,String> bodyParams = new LinkedMultiValueMap<String,String>();
        bodyParams.add("account",account);
        // 创建请求实体
        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(bodyParams, headers);
        // 发送POST请求
        ResponseEntity<String> responseEntity = restTemplate.exchange(loginUrl, HttpMethod.POST, requestEntity, String.class);
        String responseBody = responseEntity.getBody();
        //拿到响应体将token存入到redis中,以account作为存储的key
        // 解析响应体获取令牌
        // 这里假设响应体是JSON格式,包含一个名为"token"的字段
        // 根据实际情况进行解析
        // JSONObject json = new JSONObject(responseBody);
        // String token = json.getString("token");
        return false;
    }