ip隔离-测试环境跳过
This commit is contained in:
@@ -4,6 +4,7 @@ import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.device.DeviceInfo;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.CommonUtil;
|
||||
import com.accompany.common.utils.EnvComponent;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.Account;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
@@ -28,11 +29,13 @@ public class IpRegionService {
|
||||
private AccountService accountService;
|
||||
@Autowired
|
||||
private RegionService regionService;
|
||||
@Autowired
|
||||
private EnvComponent envComponent;
|
||||
|
||||
public Long check(Long uid, String ip, DeviceInfo deviceInfo) {
|
||||
String ipRegion = regionService.getRegion(ip);
|
||||
|
||||
if (recordService.isInLimitRecord(uid, ip, ipRegion, deviceInfo.getDeviceId())){
|
||||
if (!recordService.isInLimitRecord(uid, ip, ipRegion, deviceInfo.getDeviceId())){
|
||||
log.error("[ipRegionCheck] 被拦截,已在限制访问记录中 uid {} ip {} ipRegion {} deviceId {} mcc {} lang {}",
|
||||
uid, ip, ipRegion, deviceInfo.getDeviceId(), deviceInfo.getMcc(), deviceInfo.getLang());
|
||||
throw new ServiceException(BusiStatus.IP_REGION_HAD_LIMIT);
|
||||
@@ -45,7 +48,7 @@ public class IpRegionService {
|
||||
throw new ServiceException(BusiStatus.IP_REGION_HAD_LIMIT);
|
||||
}
|
||||
|
||||
if (whiteService.isInWhileList(account.getUid(), account.getPhone())){
|
||||
if (whiteService.isInWhileList(account.getUid(), account.getPhone()) || envComponent.getDevEnv()){
|
||||
return getNextTimestampInterval();
|
||||
}
|
||||
|
||||
|
@@ -30,6 +30,8 @@ public class IpRegionController extends BaseController {
|
||||
private BusiResult<Long> check(HttpServletRequest request, String mcc, String lang){
|
||||
Long uid = getUid(request);
|
||||
DeviceInfo deviceInfo = getDeviceInfo(request);
|
||||
deviceInfo.setMcc(mcc);
|
||||
deviceInfo.setLang(lang);
|
||||
String ip = IPUtils.getRealIpAddress(request);
|
||||
Long nextTime = SpringContextHolder.getBean(IpRegionService.class).check(uid, ip, deviceInfo);
|
||||
return new BusiResult<>(nextTime);
|
||||
|
Reference in New Issue
Block a user