This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/web/service/configuration/IpMultiplexService.java
wangxin 5a5bdddba4 (1)IP Pattern拆分为源IP Pattern,目的IP Pattern,Port Pattern
拆分为源端口Pattern,目的端口Pattern
(2)show more修改,并移动刀ipRegion.js中
(3)IP复用未作修改
(4)删除部分废弃的导入模板以及废弃的导入方法
2019-04-18 10:15:23 +08:00

336 lines
11 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.nis.web.service.configuration;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.Page;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.IpReuseDnatPolicyCfg;
import com.nis.domain.configuration.IpReusePolicyCfg;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.web.dao.configuration.IpMultiplexDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
import com.nis.web.service.SpringContextHolder;
import com.nis.web.service.basics.SysDictInfoService;
@Service
public class IpMultiplexService extends BaseService{
@Autowired
private IpMultiplexDao ipMultiplexDao;
public Page<IpReusePolicyCfg> findPage(Page<IpReusePolicyCfg> page, IpReusePolicyCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r"));
entity.setPage(page);
List<IpReusePolicyCfg> list=ipMultiplexDao.findPage(entity);
page.setList(list);
return page;
}
public List<IpReusePolicyCfg> findByPage(String ids) {
List<IpReusePolicyCfg> list=ipMultiplexDao.findByPage(ids);
return list;
}
public IpReusePolicyCfg getPolicyCfg(Long cfgId, Integer isValid) {
List<IpReusePolicyCfg> list=ipMultiplexDao.findList(cfgId,isValid);
IpReusePolicyCfg policyCfg=null;
if(list != null && list.size()>0){
policyCfg=list.get(0);
}
return policyCfg;
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdate(IpReusePolicyCfg entity, HttpServletRequest request, HttpServletResponse response) {
Date time = new Date();
entity.setIsValid(0);
entity.setIsAudit(0);
setAreaEffectiveIds(entity);
if("VPN".equals(entity.getUserType())){
entity.setIpType(null);
entity.setIpPattern(null);
entity.setSrcIpAddress("");
}else{
entity.setUserName(entity.getSrcIpAddress());
}
// 更新策略信息
if(entity.getCfgId() == null){
entity.initDefaultValue();
entity.setCreateTime(time);
entity.setCreatorId(UserUtils.getUser().getId());
//调用服务接口获取compileId
try {
List<Integer> compileIds = ConfigServiceUtil.getId(1,1);
if(compileIds != null && compileIds.size() > 0 ){
entity.setCompileId(compileIds.get(0));
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
ipMultiplexDao.savePolicyCfg(entity);
}else{
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(time);
ipMultiplexDao.updatePolicyCfg(entity);
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void delete(Integer isValid, String ids, Integer functionId) {
String[] idArray = ids.split(",");
for(String id :idArray){
IpReusePolicyCfg entity = new IpReusePolicyCfg();
entity.setCfgId(Long.valueOf(id));
entity.setFunctionId(functionId);
entity.setIsValid(isValid);
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(new Date());
ipMultiplexDao.updatePolicyCfg(entity);
}
}
/**
* 策略配置审核
* @param ids
* @param cfg
* @param auditTime
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void auditSnatPolicy(Integer isAudit, Integer isValid, Integer functionId, String id, Date auditTime) {
// 更新配置审核状态
IpReusePolicyCfg cfg = new IpReusePolicyCfg();
cfg.setCfgId(Long.valueOf(id));
cfg.setIsValid(isValid);
cfg.setIsAudit(isAudit);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(auditTime);
ipMultiplexDao.updatePolicyAuditStatus(cfg);
SysDictInfoService sysDictInfoService = SpringContextHolder.getBean(SysDictInfoService.class);
// 获取配置信息
cfg = this.getPolicyCfg(cfg.getCfgId(), null);
String json="";
if(cfg.getIsAudit() == Constants.AUDIT_YES){
cfg=convertCallBackSnatPolicy(cfg);
List list = Lists.newArrayList();
list.add(cfg);
//调用服务接口下发配置数据
json=gsonToJson(list);
logger.info("SNAT策略配置下发参数"+json);
//调用服务接口下发配置
try {
ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json);
if(result!=null){
logger.info("SNAT策略配置下发响应信息"+result.getMsg());
}
} catch (Exception e) {
logger.error("SNAT策略配置下发失败",e);
throw e;
}
}else if(cfg.getIsAudit() == Constants.AUDIT_NOT_YES){
cfg=convertCallBackSnatPolicy(cfg);
List list = Lists.newArrayList();
list.add(cfg);
//调用服务接口取消配置
json=gsonToJson(list);
logger.info("SNAT策略配置下发参数"+json);
//调用服务接口取消配置
try {
ToMaatResult result = ConfigServiceUtil.put(json, 2);
logger.info("SNAT策略配置响应信息"+result.getMsg());
} catch (Exception e) {
e.printStackTrace();
logger.info("SNAT策略配置配置失败");
throw e;
}
}
}
/**
* 校验地址池是否被策略引用
* @param addrPoolId
* @return
*/
public List<IpReusePolicyCfg> checkAddrPoolIsUsed(String addrPoolId) {
return ipMultiplexDao.checkAddrPoolIsUsed(addrPoolId);
}
/**
* DNAT策略配置审核
* @param isAudit
* @param isValid
* @param functionId
* @param id
* @param auditTime
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void auditDnatPolicy(Integer isAudit, Integer isValid, Integer functionId, String id, Date auditTime) {
// 更新配置审核状态
IpReuseDnatPolicyCfg cfg = new IpReuseDnatPolicyCfg();
cfg.setCfgId(Long.valueOf(id));
cfg.setIsValid(isValid);
cfg.setIsAudit(isAudit);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(auditTime);
ipMultiplexDao.updateDnatPolicyStatus(cfg);
// 获取配置信息
cfg = this.getDnatPolicyCfg(cfg.getCfgId(), null);
SysDictInfoService sysDictInfoService = SpringContextHolder.getBean(SysDictInfoService.class);
cfg.setAreaEffectiveIds(cfg.getIsAreaEffective() == 1?sysDictInfoService.setEffectiveRange(cfg.getAreaEffectiveIds()):"0");
String json="";
if(cfg.getIsAudit() == Constants.AUDIT_YES){
List list = Lists.newArrayList();
list.add(cfg);
json=gsonToJson(list);
logger.info("DNAT策略配置下发参数"+json);
//调用服务接口下发配置
try {
ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json);
if(result!=null){
logger.info("DNAT策略配置下发响应信息"+result.getMsg());
}
} catch (Exception e) {
logger.error("DNAT策略配置下发失败",e);
throw e;
}
}else if(cfg.getIsAudit() == Constants.AUDIT_NOT_YES){
List list = Lists.newArrayList();
list.add(cfg);
json=gsonToJson(list);
logger.info("DNAT策略配置下发参数"+json);
//调用服务接口取消配置
try {
ToMaatResult result = ConfigServiceUtil.put(json, 2);
logger.info("DNAT策略配置响应信息"+result.getMsg());
} catch (Exception e) {
e.printStackTrace();
logger.info("DNAT策略配置配置失败");
throw e;
}
}
}
/**
* DNAT策略新增
* @param entity
* @param request
* @param response
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdateDnat(IpReuseDnatPolicyCfg entity, HttpServletRequest request, HttpServletResponse response) {
Date time = new Date();
entity.setIsValid(0);
entity.setIsAudit(0);
setAreaEffectiveIds(entity);
if(entity.getCfgId() == null){
entity.initDefaultValue();
entity.setCreateTime(time);
entity.setCreatorId(UserUtils.getUser().getId());
//调用服务接口获取compileId
try {
List<Integer> compileIds = ConfigServiceUtil.getId(1,1);
if(compileIds != null && compileIds.size() > 0 ){
entity.setCompileId(compileIds.get(0));
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
}
ipMultiplexDao.saveDnatPolicyCfg(entity);
}else{
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(time);
ipMultiplexDao.updateDnatPolicyCfg(entity);
}
}
public Page<BaseIpCfg> findPageDnat(Page<BaseIpCfg> page, IpReuseDnatPolicyCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
entity.setPage(page);
List<BaseIpCfg> list=ipMultiplexDao.findPageDnat(entity);
page.setList(list);
return page;
}
public List<BaseIpCfg> findPageByDnat(String ids) {
List<BaseIpCfg> list=ipMultiplexDao.findPageByDnat(ids);
return list;
}
public IpReuseDnatPolicyCfg getDnatPolicyCfg(Long cfgId, Integer isValid) {
List<IpReuseDnatPolicyCfg> list=ipMultiplexDao.findDnatList(cfgId,isValid);
IpReuseDnatPolicyCfg policyCfg=null;
if(list != null && list.size()>0){
policyCfg=list.get(0);
}
return policyCfg;
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void deleteDnat(Integer isValid, String ids, Integer functionId) {
String[] idArray = ids.split(",");
for(String id :idArray){
IpReuseDnatPolicyCfg entity = new IpReuseDnatPolicyCfg();
entity.setCfgId(Long.valueOf(id));
entity.setFunctionId(functionId);
entity.setIsValid(isValid);
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(new Date());
ipMultiplexDao.updateDnatPolicyCfg(entity);
}
}
public IpReusePolicyCfg getSnatCfg(Long cfgId,Integer compileId) {
return ipMultiplexDao.getSnatCfg(cfgId,compileId);
}
public IpReuseDnatPolicyCfg getDnatCfg(Long cfgId,Integer compileId) {
return ipMultiplexDao.getDnatCfg(cfgId,compileId);
}
public List<IpReusePolicyCfg> findByUser(String userName) {
List<IpReusePolicyCfg> list=ipMultiplexDao.findByUser(userName);
return list;
}
public List<IpReuseDnatPolicyCfg> findDnatUser(String userName) {
List<IpReuseDnatPolicyCfg> list=ipMultiplexDao.findDnatUser(userName);
return list;
}
}