Commit 83be553d authored by 董建华's avatar 董建华

调整策略

parent 7eaebcb4
...@@ -24,6 +24,7 @@ import javax.annotation.Resource; ...@@ -24,6 +24,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.Set; import java.util.Set;
/** /**
...@@ -53,7 +54,7 @@ public class LoginInterceptorAspect { ...@@ -53,7 +54,7 @@ public class LoginInterceptorAspect {
/** /**
* 风控拒绝策略1设备维度 2 账号维度 * 风控拒绝策略1设备维度 2 账号维度
*/ */
private static final int [] RISK_STRATEGY = {1,2}; private static final int[] RISK_STRATEGY = {1, 2};
/** /**
* 警示语 * 警示语
*/ */
...@@ -173,7 +174,7 @@ public class LoginInterceptorAspect { ...@@ -173,7 +174,7 @@ public class LoginInterceptorAspect {
/** /**
* 总数 * 总数
*/ */
long sum = countDevices.stream().mapToLong(CountDevice::getNum).sum(); // long sum = countDevices.stream().mapToLong(CountDevice::getNum).sum();
Set<Map.Entry<Device, Long>> entries = DEVICE_REFUSE_STRATEGY.entrySet(); Set<Map.Entry<Device, Long>> entries = DEVICE_REFUSE_STRATEGY.entrySet();
...@@ -181,14 +182,24 @@ public class LoginInterceptorAspect { ...@@ -181,14 +182,24 @@ public class LoginInterceptorAspect {
Long threshold = entry.getValue(); Long threshold = entry.getValue();
if (threshold.compareTo(sum) <= 0) { Optional<CountDevice> anyOp = countDevices.stream()
.filter(d -> d.getDevice() == entry.getKey())
.findAny();
Long num = 0L;
if(anyOp.isPresent()){
CountDevice countDevice = anyOp.get();
num = countDevice.getNum();
}
if (threshold.compareTo(num) <= 0) {
if (!isWhite(phone, KeyType.PHONE)) { if (!isWhite(phone, KeyType.PHONE)) {
log.warn("此账户登录命中拒绝策略并且没有白名单phone:{},device", phone); log.warn("此账户登录命中拒绝策略并且没有白名单phone:{},device", phone);
return LoginRefuseResult.builder() return LoginRefuseResult.builder()
.isPass(Boolean.FALSE) .isPass(Boolean.FALSE)
.rule(RISK_STRATEGY[1]) .rule(RISK_STRATEGY[1])
.threshold(threshold.intValue()) .threshold(threshold.intValue())
.value(Long.valueOf(sum).intValue()) .value(Long.valueOf(num).intValue())
.build(); .build();
} }
log.warn("此账户登录命中拒绝策略存在白名单phone:{}", phone); log.warn("此账户登录命中拒绝策略存在白名单phone:{}", phone);
...@@ -221,7 +232,7 @@ public class LoginInterceptorAspect { ...@@ -221,7 +232,7 @@ public class LoginInterceptorAspect {
} }
if (null == phone || "".equals(phone)) { if (null == phone || "".equals(phone)) {
log.warn("没有手机号先不存了"); log.warn("没有手机号先不存了");
return ; return;
} }
Device device = Device.valueOfCode(deviceCode); Device device = Device.valueOfCode(deviceCode);
......
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