ludc
2023-03-23 05a7b85b78eb154bdef86134ee9c5630956f8943
修改ip访问白名单配置开启
已修改5个文件
102 ■■■■ 文件已修改
Source/BladeX/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/service-stop.sh 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
@@ -18,7 +18,8 @@
import com.alibaba.nacos.common.utils.StringUtils;
import io.jsonwebtoken.Claims;
import lombok.*;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import me.zhyd.oauth.log.Log;
import org.springblade.auth.constant.AuthConstant;
import org.springblade.auth.utils.TokenUtil;
@@ -36,11 +37,9 @@
import org.springblade.system.user.entity.UserInfo;
import org.springblade.system.user.enums.UserEnum;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.authority.GrantedAuthoritiesContainer;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -50,11 +49,7 @@
import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.function.Predicate;
import java.util.stream.Stream;
/**
 * 用户信息
@@ -91,10 +86,12 @@
    private String userName;
    @Value("${user-info.passwrod}")
    private String password;
    @Value("#{'${user-info.ip}'.split(',')}")
    private List<String> ips;
    @Value("${user-info.id}")
    private String id;
    @Value("${ip-whitelist.ip-enable}")
    private Boolean ipEnable;
    @Value("#{'${ip-whitelist.ip}'.split(',')}")
    private List<String> ips;
    @Override
    @SneakyThrows
@@ -131,12 +128,14 @@
                setFailCount(tenantId, username, count);
                throw new UsernameNotFoundException(TokenUtil.USER_NOT_FOUND);
            }
            Log.debug(getIpAddress(request));
            //如果ip比对后get抛出异常No value present就直接抛异常结束登录
            try {
                ips.stream().filter(s -> s.equals(getIpAddress(request))).findFirst().get();
            } catch (Exception e){
                throw new UserDeniedAuthorizationException(TokenUtil.IP_NOT_FOND);
            if(ipEnable){
                Log.debug("当前访问IP:"+getIpAddress(request));
                try {
                    ips.stream().filter(s -> s.equals(getIpAddress(request))).findFirst().get();
                } catch (Exception e){
                    throw new UserDeniedAuthorizationException(TokenUtil.IP_NOT_FOND);
                }
            }
            ArrayList<GrantedAuthority> authorities = new ArrayList<>();
@@ -229,11 +228,7 @@
        String ip = request.getHeader("x-forwarded-for");
        if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
            // 多次反向代理后会有多个ip值,第一个ip才是真实ip
            if( ip.indexOf(",")!=-1 && !ip.split(",")[0].equals("127.0.0.1")){
                ip = ip.split(",")[0];
            }else {
                ip = ip.split(",")[1];
            }
            ip = ip.split(",")[0];
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
Source/BladeX/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
@@ -40,8 +40,8 @@
    /**
     * nacos dev 地址
     */
    //String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
    String NACOS_DEV_ADDR = "192.168.93.133:38848";
    String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
    //String NACOS_DEV_ADDR = "192.168.93.133:38848";
    /**
     * nacos prod 地址
@@ -88,7 +88,7 @@
    /**
     * zipkin dev 地址
     */
    String ZIPKIN_DEV_ADDR = "http://127.0.0.1:9411";
    String ZIPKIN_DEV_ADDR = "http://dev.vci-tech.com:38006";
    /**
     * zipkin prod 地址
Source/BladeX/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
@@ -16,6 +16,7 @@
 */
package org.springblade.system.user.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -51,6 +52,11 @@
     * 密码
     */
    private String password;
    @TableField(exist = false)
    /**
     * 密码策略
     */
    private String pwdStrategy;
    /**
     * 昵称
     */
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
@@ -16,6 +16,7 @@
        <result column="user_type" property="userType"/>
        <result column="account" property="account"/>
        <result column="password" property="password"/>
        <result column="strategy_name" property="pwdStrategy"/>
        <result column="name" property="name"/>
        <result column="real_name" property="realName"/>
        <result column="email" property="email"/>
@@ -28,7 +29,11 @@
    </resultMap>
    <select id="selectUserPage" resultMap="userResultMap">
        select * from pl_org_user where is_deleted = 0
        SELECT pou.id, pou.tenant_id, user_type, account, name, real_name, email, phone, birthday,role_id, dept_id, post_id,nvl(pss.STRATEGY_NAME,(SELECT STRATEGY_NAME FROM PL_SYS_STRATEGY WHERE IS_DEFAULT=1)) strategy_name
        FROM pl_org_user pou
            LEFT JOIN PL_SYS_USER_PWDSTRATEGY plup on plup.USER_ID=pou.ID
            LEFT JOIN PL_SYS_STRATEGY pss on pss.ID=plup.PWDSTRATEGY_ID
        WHERE is_deleted = 0
        <if test="tenantId!=null and tenantId != ''">
            and tenant_id = #{tenantId}
        </if>
@@ -45,11 +50,11 @@
            and user_type = #{user.userType}
        </if>
        <if test="deptIdList!=null and deptIdList.size>0">
            and id in (
            and pou.id in (
            SELECT
            user_id
            FROM
            pl_org_user_dept
            pl_org_user_dept poud
            WHERE
            dept_id IN
            <foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
@@ -57,20 +62,24 @@
            </foreach>
            )
        </if>
        ORDER BY id
        ORDER BY pou.id
    </select>
    <select id="getUser" resultMap="userResultMap">
        SELECT
            *
        FROM
            pl_org_user
        SELECT pou.id, tenant_id, user_type, account, name, real_name, email, phone, birthday,role_id, dept_id, post_id,nvl(pss.STRATEGY_NAME,(SELECT STRATEGY_NAME FROM PL_SYS_STRATEGY WHERE IS_DEFAULT=1)) strategy_name
        FROM pl_org_user pou
            LEFT JOIN PL_SYS_USER_PWDSTRATEGY plup on plup.USER_ID=pou.ID
            LEFT JOIN PL_SYS_STRATEGY pss on pss.ID=plup.PWDSTRATEGY_ID
        WHERE
            tenant_id = #{param1} and account = #{param2} and is_deleted = 0
    </select>
    <select id="exportUser" resultType="org.springblade.system.user.excel.UserExcel">
        SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM pl_org_user ${ew.customSqlSegment}
        SELECT pou.id, tenant_id, user_type, account, name, real_name, email, phone, birthday,role_id, dept_id, post_id,nvl(pss.STRATEGY_NAME,(SELECT STRATEGY_NAME FROM PL_SYS_STRATEGY WHERE IS_DEFAULT=1)) strategy_name
        FROM pl_org_user pou
            LEFT JOIN PL_SYS_USER_PWDSTRATEGY plup on plup.USER_ID=pou.ID
            LEFT JOIN PL_SYS_STRATEGY pss on pss.ID=plup.PWDSTRATEGY_ID
            ${ew.customSqlSegment}
    </select>
</mapper>
Source/BladeX/service-stop.sh
@@ -2,7 +2,7 @@
stop(){
    #定义容器和镜像的名称
    imagesName=bladex/blade-auth
    containerName=blade-auth:latest
    containerName=blade-auth
    #如果存在,就关闭并且删除该容器
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
         echo $containerName"is up,we will stop and remove it !!!"
@@ -14,7 +14,7 @@
    fi
    imagesName=bladex/blade-admin
    containerName=blade-admin:latest
    containerName=blade-admin
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -25,7 +25,7 @@
        fi
    imagesName=bladex/blade-auth
    containerName=blade-auth:latest
    containerName=blade-auth
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -36,7 +36,7 @@
    fi
    imagesName=bladex/blade-log
    containerName=blade-log:latest
    containerName=blade-log
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -47,7 +47,7 @@
    fi
    imagesName=bladex/blade-desk
    containerName=blade-desk:latest
    containerName=blade-desk
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -58,7 +58,7 @@
    fi
    imagesName=bladex/blade-flow
    containerName=blade-flow:latest
    containerName=blade-flow
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -69,7 +69,7 @@
    fi
    imagesName=bladex/blade-develop
    containerName=blade-develop:latest
    containerName=blade-develop
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -80,7 +80,7 @@
    fi
    imagesName=bladex/blade-jobadmin
    containerName=blade-jobadmin:latest
    containerName=blade-jobadmin
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -91,7 +91,7 @@
    fi
    imagesName=bladex/blade-job
    containerName=blade-job:latest
    containerName=blade-job
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -102,7 +102,7 @@
    fi
    imagesName=bladex/blade-report
    containerName=blade-report:latest
    containerName=blade-report
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -113,7 +113,7 @@
    fi
    imagesName=bladex/blade-resource
    containerName=blade-resource:latest
    containerName=blade-resource
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -124,7 +124,7 @@
    fi
    imagesName=bladex/blade-swagger
    containerName=blade-swagger:latest
    containerName=blade-swagger
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -135,7 +135,7 @@
    fi
    imagesName=bladex/blade-system
    containerName=blade-system:latest
    containerName=blade-system
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -146,7 +146,7 @@
    fi
    imagesName=bladex/blade-user
    containerName=blade-user:latest
    containerName=blade-user
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName
@@ -157,7 +157,7 @@
    fi
    imagesName=bladex/blade-gateway
    containerName=blade-gateway:latest
    containerName=blade-gateway
    if [[ -n $(docker ps -q -f "name=$containerName") ]];then
             echo $containerName"is up,we will stop and remove it !!!"
             docker stop $containerName