Commit 523ce5b3 authored by 技术部-任文超's avatar 技术部-任文超

补充22~06点的危险时期识别

parent f232a9aa
......@@ -42,6 +42,8 @@ public interface Constants {
final Long IPV4_LOCK_MINUTES = 6 * 60L;
final Long IPV4_COUNT_MINUTES = 1L;
final Long IPV4_LOCK_ON_COUNTS = 60L;
final int DANGEROUS_TIME_START = 22;
final int DANGEROUS_TIME_END = 6;
/**
* redis中token的key值前缀
*/
......
......@@ -53,6 +53,9 @@ public class PasswordErrorFiniteValidateAdvisor {
*/
@Around("passwordErrorFiniteValidate()")
private Object doFiniteValidate(ProceedingJoinPoint pjp) throws Throwable {
if(!ValidationUtil.isAtDangerousTime()){
return pjp.proceed();
}
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 客户端IP
String clientIp = getIp(request);
......
......@@ -515,12 +515,16 @@ public class UserController implements IBaseController {
}
String[] credentialArr = bufStr.split(":");
if (credentialArr.length != 2) {
// 向该ipv4添加错误计数器
countErrorByIpv4();
return null;
}
String userName = credentialArr[0];
String pass = credentialArr[1];
User user = userService.findByPhoneWithCache(userName);
if (user == null || !user.getEnable()) {
// 向该ipv4添加错误计数器
countErrorByIpv4();
return null;
}
//验证密码
......@@ -536,6 +540,9 @@ public class UserController implements IBaseController {
* 向该ipv4添加错误计数器
*/
private void countErrorByIpv4() {
if(!ValidationUtil.isAtDangerousTime()){
return;
}
String ipv4 = getIp();
if (StringUtils.isNotBlank(ipv4) && !ValidationUtil.validateLocalIpv4(ipv4)) {
String ipv4Key = getIpKey(getIp());
......
package cn.quantgroup.xyqb.util;
import cn.quantgroup.xyqb.Constants;
import org.apache.commons.lang.StringUtils;
import java.util.Calendar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -14,7 +16,7 @@ public class ValidationUtil {
private static String phoneRegExp = "^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$";
private static String chineseNameRegExp = "^[\u4e00-\u9fa5]+(\\.|·)?[\u4e00-\u9fa5]+$";
private static String ipv4RegExp = "^((2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)\\.){3}(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)$";
private static String localIpv4RegExp = "^172(\\.2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?){3}$";
private static String localIpv4RegExp = "^172\\.(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?){3}$";
private static Pattern phonePattern = Pattern.compile(phoneRegExp);
private static Pattern chinesePattern = Pattern.compile(chineseNameRegExp);
......@@ -54,6 +56,12 @@ public class ValidationUtil {
return matcher.find();
}
public static boolean isAtDangerousTime() {
Calendar now = Calendar.getInstance();
int hour = now.get(Calendar.HOUR_OF_DAY);
return Constants.DANGEROUS_TIME_START <= hour || hour < Constants.DANGEROUS_TIME_END;
}
public static boolean validateChannelId(Long channelId) {
return channelId == 0L ? false : true;
}
......@@ -65,4 +73,13 @@ public class ValidationUtil {
return false;
}
public static void main(String[] args){
System.out.println(ValidationUtil.validateIpv4("49.150.23.2"));
System.out.println(ValidationUtil.validateIpv4("172.16.4.3"));
System.out.println(ValidationUtil.validateIpv4("192.168.8.9"));
System.out.println(ValidationUtil.validateLocalIpv4("49.150.23.2"));
System.out.println(ValidationUtil.validateLocalIpv4("172.16.4.3"));
System.out.println(ValidationUtil.validateLocalIpv4("192.168.8.9"));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment