用户登录问题修改
This commit is contained in:
parent
2635e025ca
commit
061e62431e
|
|
@ -281,48 +281,65 @@ public class PasswordValidatorService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ipFilter(SysUser user){
|
public void ipFilter(SysUser user){
|
||||||
|
// 获取黑名单列表
|
||||||
List<Map<String, Object>> cacheList = redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST);
|
List<Map<String, Object>> cacheList = redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST);
|
||||||
|
|
||||||
// 获取客户端的 IP 地址
|
// 获取客户端的 IP 地址
|
||||||
String ip = IpUtils.getIpAddr();
|
String ip = IpUtils.getIpAddr();
|
||||||
|
|
||||||
|
// 遍历黑名单
|
||||||
for (Map<String, Object> map : cacheList) {
|
for (Map<String, Object> map : cacheList) {
|
||||||
String ipAddress = map.containsKey("ipAddress") ? map.get("ipAddress").toString() : null;
|
String ipAddress = (String) map.getOrDefault("ipAddress", null);
|
||||||
String ipRangeEnd = map.containsKey("ipRangeEnd") ?map.get("ipRangeEnd").toString(): null;
|
String ipRangeEnd = (String) map.getOrDefault("ipRangeEnd", null);
|
||||||
String ipRangeStart = map.containsKey("ipRangeStart")?map.get("ipRangeStart").toString():null;
|
String ipRangeStart = (String) map.getOrDefault("ipRangeStart", null);
|
||||||
String accessStartTime =map.containsKey("accessStartTime")? map.get("accessStartTime").toString():null;
|
String accessStartTime = (String) map.getOrDefault("accessStartTime", null);
|
||||||
String accessEndTime = map.containsKey("accessEndTime")?map.get("accessEndTime").toString():null;
|
String accessEndTime = (String) map.getOrDefault("accessEndTime", null);
|
||||||
|
|
||||||
|
// 如果 ipAddress 为空,检查是否在 ip 范围内
|
||||||
if (ObjectUtils.isEmpty(ipAddress)) {
|
if (ObjectUtils.isEmpty(ipAddress)) {
|
||||||
if (isIpInRange(ip, ipRangeStart, ipRangeEnd)) {
|
if (isIpInRange(ip, ipRangeStart, ipRangeEnd)) {
|
||||||
|
handleAccessTimeCheck(accessStartTime, accessEndTime);
|
||||||
|
}
|
||||||
|
} else if (ipAddress.equals(ip)) {
|
||||||
|
handleAccessTimeCheck(accessStartTime, accessEndTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查当前时间是否在有效的访问时间范围内
|
||||||
|
* @param accessStartTime 访问开始时间
|
||||||
|
* @param accessEndTime 访问结束时间
|
||||||
|
*/
|
||||||
|
private void handleAccessTimeCheck(String accessStartTime, String accessEndTime) {
|
||||||
if (ObjectUtils.isNotEmpty(accessStartTime)) {
|
if (ObjectUtils.isNotEmpty(accessStartTime)) {
|
||||||
boolean currentTimeInRange = isCurrentTimeInRange(accessStartTime, accessEndTime);
|
boolean currentTimeInRange = isCurrentTimeInRange(accessStartTime, accessEndTime);
|
||||||
if (!currentTimeInRange) {
|
if (!currentTimeInRange) {
|
||||||
// 异常处理
|
handleException(); // 异常处理
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//正常处理
|
handleNormalProcess(); // 正常处理
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//正常处理
|
handleNormalProcess(); // 正常处理
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
/**
|
||||||
}else {
|
* 处理异常情况
|
||||||
if (ipAddress.equals(ip)){
|
*/
|
||||||
if (ObjectUtils.isNotEmpty(accessStartTime)){
|
private void handleException() {
|
||||||
boolean currentTimeInRange = isCurrentTimeInRange(accessStartTime, accessEndTime);
|
// 异常处理的具体逻辑
|
||||||
if (!currentTimeInRange){
|
System.out.println("IP access is outside the allowed time range or other error occurred.");
|
||||||
// 异常处理
|
|
||||||
}else {
|
|
||||||
//正常处理
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
//正常处理
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//异常处理
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理正常情况
|
||||||
|
*/
|
||||||
|
private void handleNormalProcess() {
|
||||||
|
// 正常处理的具体逻辑
|
||||||
|
System.out.println("IP access is within the allowed time range.");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查给定的IP地址是否在指定的网段区间内
|
* 检查给定的IP地址是否在指定的网段区间内
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue