1
zj
11 hours ago f658569891db433854221b80f0a9fa99608cff64
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
@@ -1,6 +1,7 @@
package com.yami.trading.api.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.yami.trading.api.dto.UserDto;
import com.yami.trading.api.model.SetSafewordModel;
import com.yami.trading.api.service.UserCacheService;
@@ -11,6 +12,7 @@
import com.yami.trading.bean.model.UserRecom;
import com.yami.trading.bean.model.UserSimRelation;
import com.yami.trading.bean.model.UserSafewordApply;
import com.yami.trading.bean.model.RiskClient;
import com.yami.trading.bean.syspara.domain.Syspara;
import com.yami.trading.common.constants.Constants;
import com.yami.trading.common.domain.Result;
@@ -32,6 +34,7 @@
import com.yami.trading.security.common.manager.TokenStore;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.security.common.vo.TokenInfoVO;
import com.yami.trading.security.common.util.RiskClientUtil;
import com.yami.trading.service.HighLevelAuthRecordService;
import com.yami.trading.service.IdentifyingCodeTimeWindowService;
import com.yami.trading.service.QRGenerateService;
@@ -110,6 +113,7 @@
     */
    @GetMapping("login")
    public Result login(String username, String password) {
        validateMainlandIpAccess();
        if (StringUtils.isEmptyString(username)) {
            throw new YamiShopBindException("用户名不能为空");
        }
@@ -287,11 +291,13 @@
     */
    @RequestMapping("register")
    public Object register(String username, String password, String safeword, String verifcode, String usercode, String type) {
        validateMainlandIpAccess();
        // 注册类型:1/手机;2/邮箱;
        String error = this.validateParam(username, verifcode, password, type);
        if (!StringUtils.isNullOrEmpty(error)) {
            throw new YamiShopBindException(error);
        }
        validateMainlandEmailRegister(username, type);
//        if (StringUtils.isEmptyString(safeword)) {
//            throw new YamiShopBindException("资金密码不能为空");
//        }
@@ -972,6 +978,7 @@
        String username = null;
        try {
            username = request.getParameter("username").replace(" ", "");
            validateMainlandIpAccess();
            String password = request.getParameter("password").replace(" ", "");
            String safeword = request.getParameter("safeword").replace(" ", "");
            String usercode = request.getParameter("usercode");
@@ -1101,4 +1108,31 @@
        return null;
    }
    private void validateMainlandIpAccess() {
        String clientIp = IPHelper.getIpAddr();
        List<RiskClient> riskList = RiskClientUtil.getRiskInfoByIp(clientIp, "badnetwork");
        if (CollectionUtil.isNotEmpty(riskList)) {
            throw new YamiShopBindException("大陆IP禁止访问");
        }
    }
    private void validateMainlandEmailRegister(String username, String type) {
        if (!"2".equals(type) || StringUtils.isEmptyString(username)) {
            return;
        }
        int atPos = username.lastIndexOf("@");
        if (atPos <= 0 || atPos >= username.length() - 1) {
            return;
        }
        String domain = username.substring(atPos + 1).trim().toLowerCase();
        if (domain.endsWith(".cn")) {
            throw new YamiShopBindException("大陆邮箱不支持注册");
        }
        if (Arrays.asList("qq.com", "foxmail.com", "163.com", "126.com", "yeah.net",
                "sina.com", "sina.cn", "sohu.com", "aliyun.com", "21cn.com",
                "189.cn", "tom.com").contains(domain)) {
            throw new YamiShopBindException("大陆邮箱不支持注册");
        }
    }
}