asn 相关修改提交
(1)asn_ip_cfg增加四列 (2)新增asn_group_info表 (3)asn ip菜单移动到policy object下,新增审核审计菜单 (4)asn ip导入修改,适应新的需求放弃了使用AsnCache,直接从数据库查 (5)asn ip加入审核流程 (6)Packet IP选择asn时,改为选中一个组织,审核下发的配置为as号字符串域 (7)asn ip 新增业务新增function_service_dict字典,serviceId为400
This commit is contained in:
@@ -18,13 +18,13 @@ import com.beust.jcommander.internal.Lists;
|
||||
import com.nis.domain.FunctionRegionDict;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.SysDataDictionaryItem;
|
||||
import com.nis.domain.basics.AsnGroupInfo;
|
||||
import com.nis.domain.basics.PolicyGroupInfo;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.configuration.DnsResStrategy;
|
||||
import com.nis.domain.configuration.IpPortCfg;
|
||||
import com.nis.domain.configuration.template.IpRateLimitTemplate;
|
||||
import com.nis.domain.specific.ConfigGroupInfo;
|
||||
import com.nis.util.AsnCacheUtils;
|
||||
//import com.nis.util.AsnCacheUtils;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.DictUtils;
|
||||
|
||||
@@ -36,7 +36,8 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
// private DnsResStrategyService dnsResStrategyService;
|
||||
private FunctionServiceDict serviceDict;
|
||||
private FunctionRegionDict regionDict;
|
||||
private List<Map<Long,Integer>> asnNoMaps;
|
||||
private List<Map<Long,AsnGroupInfo>> asnNoMaps;
|
||||
private Map<Long,AsnGroupInfo> asnGroupInfos;
|
||||
// private DnsResStrategyDao dnsResStrategyDao;
|
||||
public CheckIpFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue<? extends Object> srcQueue,BlockingQueue<BaseIpCfg> destQueue) {
|
||||
this.serviceDict=serviceDict;
|
||||
@@ -68,7 +69,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
}
|
||||
return msg.toString();
|
||||
}
|
||||
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,Integer>> asnNos, List<Object> list)
|
||||
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,AsnGroupInfo>> asnNos, List<Object> list)
|
||||
throws ServiceException {
|
||||
logger.warn("start to validate ip...");
|
||||
long start=System.currentTimeMillis();
|
||||
@@ -104,7 +105,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
IpPortCfg baseIpCfg = new IpPortCfg();
|
||||
BeanUtils.copyProperties(list.get(i), baseIpCfg);
|
||||
// 配置描述长度限制
|
||||
if(baseIpCfg.getCfgDesc().length() > 128) {
|
||||
if(baseIpCfg.getCfgDesc()!=null&&baseIpCfg.getCfgDesc().length() > 128) {
|
||||
errInfo.append(prop.getProperty("config_describe")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":128") + ";");
|
||||
}
|
||||
|
||||
@@ -231,6 +232,18 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("asn_no"))
|
||||
+ ";");
|
||||
}else if(StringUtils.isBlank(baseIpCfg.getOrganization())){
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("organization","Organization"))
|
||||
+ ";");
|
||||
}else if(StringUtils.isBlank(baseIpCfg.getCountry())){
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("country","Country"))
|
||||
+ ";");
|
||||
}else if(StringUtils.isBlank(baseIpCfg.getDetail())){
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("detail","Detail"))
|
||||
+ ";");
|
||||
}else {
|
||||
try {
|
||||
Long asnNo=Long.parseLong(userRegion1);
|
||||
@@ -240,13 +253,32 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
+ ";");
|
||||
}else {
|
||||
// ConfigGroupInfo configGroupInfo=asnIpCfgService.getConfigGroupInfoByAsnNo(asnNo);
|
||||
ConfigGroupInfo configGroupInfo=AsnCacheUtils.get(asnNo);
|
||||
if(asnNos!=null) {
|
||||
AsnGroupInfo configGroupInfo=asnGroupInfos==null?null:asnGroupInfos.get(asnNo);//从缓存中取
|
||||
//缓存中没有
|
||||
if(configGroupInfo==null) {
|
||||
asnNos.get(0).put(asnNo,-1);
|
||||
synchronized (Constants.IMPORT_LOCK) {
|
||||
AsnGroupInfo groupInfo=new AsnGroupInfo();
|
||||
groupInfo.setOrganization(baseIpCfg.getOrganization().trim());
|
||||
groupInfo.setCountry(baseIpCfg.getCountry().trim());
|
||||
groupInfo.setDetail(baseIpCfg.getDetail().trim());
|
||||
groupInfo.setIsValid(0);
|
||||
groupInfo.setAsnId(asnNo);
|
||||
asnNos.get(0).put(asnNo,groupInfo);
|
||||
}
|
||||
}else {
|
||||
asnNos.get(1).put(asnNo,configGroupInfo.getGroupId());
|
||||
if(!configGroupInfo.getOrganization().equals(baseIpCfg.getOrganization().trim())) {
|
||||
errInfo.append(prop.getProperty("organization","Organization")+" "+prop.getProperty("mismatch","Mismatch"));
|
||||
}
|
||||
if(!configGroupInfo.getCountry().equals(baseIpCfg.getCountry().trim())) {
|
||||
errInfo.append(prop.getProperty("country","Country")+" "+prop.getProperty("mismatch","Mismatch"));
|
||||
}
|
||||
if(!configGroupInfo.getDetail().equals(baseIpCfg.getDetail().trim())) {
|
||||
errInfo.append(prop.getProperty("detail","Detail")+" "+prop.getProperty("mismatch","Mismatch"));
|
||||
}
|
||||
if(StringUtils.isBlank(errInfo.toString())) {
|
||||
asnNos.get(1).put(asnNo,configGroupInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -259,6 +291,28 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
+ ";");
|
||||
}
|
||||
}
|
||||
String organization=baseIpCfg.getOrganization();
|
||||
if(StringUtils.isBlank(organization)) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("organization","Organization"))
|
||||
+ ";");
|
||||
}else {
|
||||
baseIpCfg.setCfgDesc(organization);
|
||||
|
||||
}
|
||||
String country=baseIpCfg.getCountry();
|
||||
if(StringUtils.isBlank(country)) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("country"))
|
||||
+ ";");
|
||||
}
|
||||
String detail=baseIpCfg.getDetail();
|
||||
if(StringUtils.isBlank(detail)) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("detail"))
|
||||
+ ";");
|
||||
}
|
||||
|
||||
}
|
||||
if (regionDict.getFunctionId().equals(301)) {
|
||||
String antiddosProtocol=baseIpCfg.getAntiddosProtocol();
|
||||
@@ -1138,11 +1192,17 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
return matchType;
|
||||
}
|
||||
|
||||
public List<Map<Long, Integer>> getAsnNoMaps() {
|
||||
public List<Map<Long, AsnGroupInfo>> getAsnNoMaps() {
|
||||
return asnNoMaps;
|
||||
}
|
||||
public void setAsnNoMaps(List<Map<Long, Integer>> asnNoMaps) {
|
||||
public void setAsnNoMaps(List<Map<Long, AsnGroupInfo>> asnNoMaps) {
|
||||
this.asnNoMaps = asnNoMaps;
|
||||
}
|
||||
public Map<Long, AsnGroupInfo> getAsnGroupInfos() {
|
||||
return asnGroupInfos;
|
||||
}
|
||||
public void setAsnGroupInfos(Map<Long, AsnGroupInfo> asnGroupInfos) {
|
||||
this.asnGroupInfos = asnGroupInfos;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.nis.util.excel.thread;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
@@ -12,10 +11,12 @@ import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||
|
||||
import com.beust.jcommander.internal.Lists;
|
||||
import com.nis.domain.basics.AsnGroupInfo;
|
||||
import com.nis.domain.basics.AsnIpCfg;
|
||||
import com.nis.domain.specific.ConfigGroupInfo;
|
||||
import com.nis.util.AsnCacheUtils;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.web.dao.basics.AsnGroupInfoDao;
|
||||
import com.nis.web.dao.basics.AsnIpCfgDao;
|
||||
import com.nis.web.dao.specific.ConfigGroupInfoDao;
|
||||
import com.nis.web.service.SpringContextHolder;
|
||||
@@ -23,10 +24,12 @@ import com.nis.web.service.basics.AsnIpCfgService;
|
||||
|
||||
public class DeleteAsnIpTread implements Callable<Throwable> {
|
||||
private BlockingQueue<Long> asnNos;
|
||||
private AsnGroupInfoDao asnGroupInfoDao;
|
||||
private ConfigGroupInfoDao configGroupInfoDao;
|
||||
private AsnIpCfgDao asnIpCfgDao;
|
||||
public DeleteAsnIpTread(BlockingQueue<Long> asnNos) {
|
||||
this.asnNos=asnNos;
|
||||
this.asnGroupInfoDao=SpringContextHolder.getBean(AsnGroupInfoDao.class);
|
||||
this.configGroupInfoDao=SpringContextHolder.getBean(ConfigGroupInfoDao.class);
|
||||
this.asnIpCfgDao=SpringContextHolder.getBean(AsnIpCfgDao.class);
|
||||
}
|
||||
@@ -37,20 +40,29 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
|
||||
List<Long> asnIds=Lists.newArrayList();
|
||||
DataSourceTransactionManager transactionManager=(DataSourceTransactionManager)SpringContextHolder.getBean("transactionManager");
|
||||
LinkedBlockingQueue<AsnIpCfg> toDelAndSendAsnIpCfgs=new LinkedBlockingQueue<AsnIpCfg>();
|
||||
List<ConfigGroupInfo> configGroupInfos=configGroupInfoDao.findAllList(4);
|
||||
while(!asnNos.isEmpty()) {
|
||||
asnNos.drainTo(asnNoList,5);
|
||||
for(Long asnNo:asnNoList) {
|
||||
ConfigGroupInfo configGroupInfo=AsnCacheUtils.get(asnNo);
|
||||
AsnGroupInfo configGroupInfo=AsnCacheUtils.get(asnNo);
|
||||
if(configGroupInfo==null) {
|
||||
configGroupInfo=configGroupInfoDao.getInfoByAsnNo(asnNo);
|
||||
configGroupInfo=new AsnGroupInfo();
|
||||
configGroupInfo.setAsnId(asnNo);
|
||||
configGroupInfo=asnGroupInfoDao.getInfoByAsnNo(configGroupInfo);
|
||||
}
|
||||
if(configGroupInfo.getIsIssued()==1) {//已下发
|
||||
List<AsnIpCfg> _toDelAsnIpCfgs=asnIpCfgDao.getByAsnNo(configGroupInfo.getAsnId());
|
||||
toDelAndSendAsnIpCfgs.addAll(_toDelAsnIpCfgs);
|
||||
}else {
|
||||
asnIds.add(asnNo);
|
||||
for(ConfigGroupInfo cinfo:configGroupInfos) {
|
||||
if(cinfo.getGroupId().intValue()==configGroupInfo.getGroupId().intValue()) {
|
||||
if(cinfo.getIsIssued()==1) {//已下发
|
||||
List<AsnIpCfg> _toDelAsnIpCfgs=asnIpCfgDao.getByAsnNo(configGroupInfo.getAsnId());
|
||||
toDelAndSendAsnIpCfgs.addAll(_toDelAsnIpCfgs);
|
||||
}else {
|
||||
asnIds.add(asnNo);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(asnIds.size()>0) {
|
||||
this.deleteByAsnNo(asnIds);
|
||||
@@ -102,7 +114,7 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
|
||||
}
|
||||
int result=0;
|
||||
do {
|
||||
result=asnIpCfgDao.deleteByAsnGroup(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
|
||||
result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
|
||||
}while(result>0);
|
||||
//剔除
|
||||
asnNoList.subList(0, pointsDataLimit).clear();
|
||||
@@ -115,7 +127,7 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
|
||||
}
|
||||
int result=0;
|
||||
do {
|
||||
result=asnIpCfgDao.deleteByAsnGroup(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
|
||||
result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
|
||||
}while(result>0);
|
||||
asnNoList.clear();
|
||||
}
|
||||
@@ -127,7 +139,7 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
|
||||
}
|
||||
int result=0;
|
||||
do {
|
||||
result=asnIpCfgDao.deleteByAsnGroup(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
|
||||
result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
|
||||
}while(result>0);
|
||||
asnNoList.clear();
|
||||
}
|
||||
|
||||
@@ -18,17 +18,16 @@ import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||
import com.beust.jcommander.internal.Lists;
|
||||
import com.nis.domain.FunctionRegionDict;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.basics.AsnGroupInfo;
|
||||
import com.nis.domain.basics.AsnIpCfg;
|
||||
import com.nis.domain.basics.Varibles;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.specific.ConfigGroupInfo;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.AsnCacheUtils;
|
||||
import com.nis.util.ConfigServiceUtil;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.StringUtil;
|
||||
import com.nis.web.dao.basics.AsnGroupInfoDao;
|
||||
import com.nis.web.dao.basics.AsnIpCfgDao;
|
||||
import com.nis.web.dao.specific.ConfigGroupInfoDao;
|
||||
import com.nis.web.security.UserUtils;
|
||||
import com.nis.web.service.SpringContextHolder;
|
||||
import com.nis.web.service.basics.AsnIpCfgService;
|
||||
@@ -42,7 +41,7 @@ public class SaveAsnIpThread implements Callable<Throwable>{
|
||||
private List<Map<Long,Integer>> asnNoMaps;
|
||||
private Integer requestId;
|
||||
private AsnIpCfgDao asnIpCfgDao;
|
||||
private ConfigGroupInfoDao configGroupInfoDao;
|
||||
private AsnGroupInfoDao configGroupInfoDao;
|
||||
// private AsnIpCfgService asnIpCfgService;
|
||||
public SaveAsnIpThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Integer requestId,BlockingQueue<BaseIpCfg> ipPortCfgs) {
|
||||
this.serviceDict=serviceDict;
|
||||
@@ -50,7 +49,7 @@ public class SaveAsnIpThread implements Callable<Throwable>{
|
||||
this.ipPortCfgs=ipPortCfgs;
|
||||
this.requestId=requestId;
|
||||
this.asnIpCfgDao=SpringContextHolder.getBean(AsnIpCfgDao.class);
|
||||
this.configGroupInfoDao=SpringContextHolder.getBean(ConfigGroupInfoDao.class);
|
||||
this.configGroupInfoDao=SpringContextHolder.getBean(AsnGroupInfoDao.class);
|
||||
}
|
||||
@Override
|
||||
public Throwable call() {
|
||||
@@ -113,9 +112,11 @@ public class SaveAsnIpThread implements Callable<Throwable>{
|
||||
_cfg.setAsnIpGroup(asnNoMaps.get(1).get(Long.parseLong(_cfg.getUserRegion1())));
|
||||
}else {
|
||||
// ConfigGroupInfo info=asnIpCfgService.getConfigGroupInfoByAsnNo(Long.parseLong(_cfg.getUserRegion1()));
|
||||
ConfigGroupInfo info=AsnCacheUtils.get(Long.parseLong(_cfg.getUserRegion1()));
|
||||
AsnGroupInfo info=AsnCacheUtils.get(Long.parseLong(_cfg.getUserRegion1()));
|
||||
if(info==null) {
|
||||
info=configGroupInfoDao.getInfoByAsnNo(Long.parseLong(_cfg.getUserRegion1()));
|
||||
info=new AsnGroupInfo();
|
||||
info.setAsnId(Long.parseLong(_cfg.getUserRegion1()));
|
||||
info=configGroupInfoDao.getInfoByAsnNo(info);
|
||||
}
|
||||
_cfg.setAsnIpGroup(info.getGroupId());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user