地址池IP校验修改.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.nis.web.controller.configuration.maintenance;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -25,6 +27,7 @@ import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.ConfigServiceUtil;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.StringUtil;
|
||||
import com.nis.util.StringUtils;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.service.configuration.IpAddrPoolCfgService;
|
||||
|
||||
@@ -166,7 +169,7 @@ public class IpAddrPoolController extends BaseController{
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验所有地址池配置IP不可重复
|
||||
* 校验所有地址池配置IP+MASK组合不可重复
|
||||
* @param cfg
|
||||
* @param request
|
||||
* @param response
|
||||
@@ -174,10 +177,28 @@ public class IpAddrPoolController extends BaseController{
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value = {"/checkAddrPoolIp"})
|
||||
public boolean checkAddrPoolIp(String ips, HttpServletRequest request, HttpServletResponse response){
|
||||
for (String ip : ips.split(",")) {
|
||||
Long cfgId = ipAddrPoolCfgService.checkAddrPoolIp(ip);
|
||||
if(cfgId != null){
|
||||
public boolean checkAddrPoolIp(String ip, String oldIp, HttpServletRequest request, HttpServletResponse response){
|
||||
List<String> oldIplist = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(oldIp)){
|
||||
oldIplist.add(oldIp);
|
||||
if(oldIp.contains("/32")){
|
||||
oldIplist.add(oldIp.substring(0, oldIp.indexOf("/")));
|
||||
}else if(!oldIp.contains("/")){
|
||||
oldIplist.add(oldIp+"/32");
|
||||
}
|
||||
}
|
||||
|
||||
List<String> searchlist = new ArrayList<>();
|
||||
searchlist.add(ip);
|
||||
if(ip.contains("/32")){
|
||||
searchlist.add(ip.substring(0, ip.indexOf("/")));
|
||||
}else if(!ip.contains("/")){
|
||||
searchlist.add(ip+"/32");
|
||||
}
|
||||
|
||||
for (String searchIp : searchlist) {
|
||||
IpReuseIpCfg cfg = ipAddrPoolCfgService.checkAddrPoolIp(searchIp);
|
||||
if((cfg != null) && (!oldIplist.contains(cfg.getSrcIpAddress()))){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public interface IpAddrPoolCfgDao extends CrudDao<IpAddrPoolCfgDao>{
|
||||
|
||||
Long getAddrPoolIdByName(String addrPoolName);
|
||||
|
||||
Long checkAddrPoolIp(@Param("srcIpAddress")String ip);
|
||||
IpReuseIpCfg checkAddrPoolIp(@Param("srcIpAddress")String ip);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -478,12 +478,15 @@
|
||||
r.addr_pool_name = #{addrPoolName} AND r.is_valid != -1
|
||||
</select>
|
||||
|
||||
<select id="checkAddrPoolIp" resultType="java.lang.Long">
|
||||
<select id="checkAddrPoolIp" resultType="com.nis.domain.basics.IpReuseIpCfg">
|
||||
SELECT
|
||||
r.cfg_id
|
||||
r.cfg_id,r.src_ip_address
|
||||
FROM
|
||||
ip_reuse_ip_cfg r
|
||||
WHERE
|
||||
r.src_ip_address = #{srcIpAddress} AND r.is_valid != -1 AND r.is_audit != 3
|
||||
r.src_ip_address = #{srcIpAddress} AND
|
||||
r.is_valid != -1 AND
|
||||
r.is_audit != 3 AND
|
||||
r.user_region1 IS NOT NULL
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -288,7 +288,7 @@ public class IpAddrPoolCfgService extends BaseService{
|
||||
return ipAddrPoolCfgDao.findAddrPoolCfg();
|
||||
}
|
||||
|
||||
public Long checkAddrPoolIp(String ip) {
|
||||
public IpReuseIpCfg checkAddrPoolIp(String ip) {
|
||||
return ipAddrPoolCfgDao.checkAddrPoolIp(ip);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user