增加白名单配置
This commit is contained in:
parent
f64f225b2e
commit
00829ae822
@ -39,16 +39,19 @@ import java.util.stream.Collectors;
|
||||
public class IpFilter extends OncePerRequestFilter implements ApplicationRunner {
|
||||
|
||||
public static List<String> whiteIps = new ArrayList<>();
|
||||
public static Boolean enableWhiteIp = false;
|
||||
|
||||
@Resource
|
||||
private IpWhitelisttMapper ipWhitelisttMapper;
|
||||
@Resource
|
||||
private ParamConfMapper paramConfMapper;
|
||||
private Boolean enableWhiteIp = false;
|
||||
|
||||
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
|
||||
if (enableWhiteIp && CollectionUtils.isEmpty(whiteIps)) {
|
||||
syncWhiteIps();
|
||||
}
|
||||
String ip = IpUtils.getIpAddress(request);
|
||||
if (!enableWhiteIp || CollectionUtils.isEmpty(whiteIps) || whiteIps.contains(ip)) {
|
||||
chain.doFilter(request, response);
|
||||
@ -56,7 +59,7 @@ public class IpFilter extends OncePerRequestFilter implements ApplicationRunner
|
||||
}
|
||||
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
|
||||
response.setContentType(MediaType.TEXT_PLAIN_VALUE);
|
||||
response.getWriter().println("此ip禁止访问");
|
||||
response.getWriter().println("this ip is forbidden");
|
||||
response.getWriter().flush();
|
||||
}
|
||||
|
||||
@ -71,6 +74,13 @@ public class IpFilter extends OncePerRequestFilter implements ApplicationRunner
|
||||
enableWhiteIp = Objects.equals("true", conf.getValue());
|
||||
}
|
||||
if (enableWhiteIp) {
|
||||
syncWhiteIps();
|
||||
}
|
||||
}, 0L, 5L, TimeUnit.MINUTES);
|
||||
}
|
||||
|
||||
|
||||
private void syncWhiteIps() {
|
||||
List<IpWhitelist> list = ipWhitelisttMapper.selectList(
|
||||
new LambdaQueryWrapper<IpWhitelist>()
|
||||
.eq(IpWhitelist::getScope, "global")
|
||||
@ -78,8 +88,5 @@ public class IpFilter extends OncePerRequestFilter implements ApplicationRunner
|
||||
);
|
||||
whiteIps = list.stream().map(IpWhitelist::getIp).collect(Collectors.toList());
|
||||
}
|
||||
}, 0L, 5L, TimeUnit.MINUTES);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.sunyard.ssp.modules.sysconf.paramconf.serviceimpl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sunyard.chsm.config.IpFilter;
|
||||
import com.sunyard.chsm.mapper.ParamConfMapper;
|
||||
import com.sunyard.chsm.model.entity.ParamConf;
|
||||
import com.sunyard.ssp.modules.sysconf.paramconf.service.IParamConfService;
|
||||
@ -19,6 +20,7 @@ import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.sunyard.chsm.constant.ParamConfKeyConstant.APPROVAL_TRUE;
|
||||
@ -138,6 +140,8 @@ public class ParamConfServiceImpl extends ServiceImpl<ParamConfMapper, ParamConf
|
||||
//白名单通知
|
||||
else if (IP_WHITELIST_ITEM.equals(paramConf.getItem())
|
||||
&& IP_WHITELIST_SWITCH.equals(paramConf.getKey())) {
|
||||
|
||||
IpFilter.enableWhiteIp = Objects.equals("true", paramConf.getValue());
|
||||
// iIpWhitelistService.messengerWhitelistUpdate();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user