地址池IP校验补充.

This commit is contained in:
zhangwq
2018-12-10 20:18:36 +08:00
parent e19b168af9
commit 64e85ff933
6 changed files with 61 additions and 2 deletions

View File

@@ -165,6 +165,25 @@ public class IpAddrPoolController extends BaseController{
return true; return true;
} }
/**
* 校验所有地址池配置IP不可重复
* @param cfg
* @param request
* @param response
* @return
*/
@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){
return false;
}
}
return true;
}
@ResponseBody @ResponseBody
@RequestMapping(value = {"/getCGIInfo"}) @RequestMapping(value = {"/getCGIInfo"})
public Map<String,Object> getUserInfo(Integer addrPoolId,String cmd,HttpServletRequest request,HttpServletResponse response){ public Map<String,Object> getUserInfo(Integer addrPoolId,String cmd,HttpServletRequest request,HttpServletResponse response){

View File

@@ -4,6 +4,7 @@ import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.nis.domain.basics.IpReuseIpCfg;
import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.IpAddrPoolCfg; import com.nis.domain.configuration.IpAddrPoolCfg;
import com.nis.web.dao.CrudDao; import com.nis.web.dao.CrudDao;
@@ -34,6 +35,8 @@ public interface IpAddrPoolCfgDao extends CrudDao<IpAddrPoolCfgDao>{
Long getAddrPoolIdByName(String addrPoolName); Long getAddrPoolIdByName(String addrPoolName);
Long checkAddrPoolIp(@Param("srcIpAddress")String ip);
} }

View File

@@ -477,4 +477,13 @@
WHERE WHERE
r.addr_pool_name = #{addrPoolName} AND r.is_valid != -1 r.addr_pool_name = #{addrPoolName} AND r.is_valid != -1
</select> </select>
<select id="checkAddrPoolIp" resultType="java.lang.Long">
SELECT
r.cfg_id
FROM
ip_reuse_ip_cfg r
WHERE
r.src_ip_address = #{srcIpAddress} AND r.is_valid != -1 AND r.is_audit != 3
</select>
</mapper> </mapper>

View File

@@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.beust.jcommander.internal.Lists; import com.beust.jcommander.internal.Lists;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.basics.IpReuseIpCfg;
import com.nis.domain.callback.IpAddrPool; import com.nis.domain.callback.IpAddrPool;
import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.IpAddrPoolCfg; import com.nis.domain.configuration.IpAddrPoolCfg;
@@ -286,5 +287,9 @@ public class IpAddrPoolCfgService extends BaseService{
public List<IpAddrPoolCfg> getEffectiveAddrPool() { public List<IpAddrPoolCfg> getEffectiveAddrPool() {
return ipAddrPoolCfgDao.findAddrPoolCfg(); return ipAddrPoolCfgDao.findAddrPoolCfg();
} }
public Long checkAddrPoolIp(String ip) {
return ipAddrPoolCfgDao.checkAddrPoolIp(ip);
}
} }

View File

@@ -246,7 +246,7 @@ var resetIndex = function(){
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required ipCheck ipMaskSole" type="text" name="ipCfgs[0].srcIpAddress" > <input class="form-control required ipCheck ipMaskSole" type="text" name="ipCfgs[0].srcIpAddress" ctx="${ctx }" cfgId="${_cfg.cfgId}">
</div> </div>
<div for="ipCfgs[0].srcIpAddress"></div> <div for="ipCfgs[0].srcIpAddress"></div>
</div> </div>
@@ -393,7 +393,7 @@ var resetIndex = function(){
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required ipCheck ipMaskSole" type="text" name="ipCfgs[0].srcIpAddress" value="${ipCfg.srcIpAddress }" > <input class="form-control required ipCheck ipMaskSole" type="text" name="ipCfgs[0].srcIpAddress" value="${ipCfg.srcIpAddress }" ctx="${ctx }" cfgId="${_cfg.cfgId}">
</div> </div>
<div for="ipCfgs[0].srcIpAddress"></div> <div for="ipCfgs[0].srcIpAddress"></div>
</div> </div>

View File

@@ -980,6 +980,7 @@ jQuery.validator.addMethod("areaUnique",function(value,element) {
jQuery.validator.addMethod("ipMaskSole",function(value,element) { jQuery.validator.addMethod("ipMaskSole",function(value,element) {
var flag = true; var flag = true;
var ipArray = []; var ipArray = [];
var value2 = value;
if(value.indexOf("/") == -1){ if(value.indexOf("/") == -1){
value = value+"/32"; value = value+"/32";
} }
@@ -993,5 +994,27 @@ jQuery.validator.addMethod("ipMaskSole",function(value,element) {
if($.inArray(value,ipArray) != -1){ if($.inArray(value,ipArray) != -1){
flag = false; flag = false;
} }
var cfgId = $(element).attr("cfgId");
if((flag == true) && (!cfgId)){
ipArray = [];
ipArray.push(value2);
$(".ipMaskSole").each(function(){
ipArray.push($(this).val());
});
var ctx = $(element).attr("ctx");
var url = ctx+"/maintenance/ipMultiplexPoolCfg/checkAddrPoolIp";
$.ajax({
type:'post',
async:false,
url: url,
data:{"ips":ipArray.join(',')},
success:function(data){
flag = data;
}
});
}
return flag; return flag;
}); });