proxy intercept ip功能完成
http\dns\ssl\mail dolog添加
This commit is contained in:
@@ -15,8 +15,8 @@ package com.nis.domain.configuration;
|
||||
* @date 2018年2月5日 下午3:34:14
|
||||
* @version V1.0
|
||||
*/
|
||||
public class InterceptPktBin extends ComplexkeywordCfg {
|
||||
private static final String tableName="pxy_intercept_pkt_bin";
|
||||
public class InterceptPktBin extends BaseStringCfg<InterceptPktBin> {
|
||||
private static final String tableName="intercept_pkt_bin";
|
||||
/**
|
||||
* @Fields serialVersionUID:TODO(用一句话描述这个变量表示什么)
|
||||
*
|
||||
|
||||
@@ -126,6 +126,11 @@ public final class Constants {
|
||||
public static final int ACTION_HMD = 8;
|
||||
public static final Integer DROP_ACTION = Configurations.getIntProperty("drop_action",32);
|
||||
public static final Integer LOOP_ACTION = Configurations.getIntProperty("loop_action",96);
|
||||
public static final Integer RATELIMIT_ACTION = Configurations.getIntProperty("ratelimit_action",64);
|
||||
public static final Integer REPLACE_ACTION = Configurations.getIntProperty("replace_action",80);
|
||||
public static final Integer MONIT_ACTION = Configurations.getIntProperty("monit_action",1);
|
||||
public static final Integer REJECT_ACTION = Configurations.getIntProperty("reject_action",16);
|
||||
public static final Integer WHITELIST_ACTION = Configurations.getIntProperty("reject_action",128);
|
||||
public static final int CFG_PAGE = 0;
|
||||
public static final int AUDIT_PAGE = 1;
|
||||
public static final String DEFAULT_CAPTCHA_PARAM = "captcha";
|
||||
@@ -569,6 +574,10 @@ public final class Constants {
|
||||
//P2P自定义域参数
|
||||
public static String P2P_IP_TYPE_USER_REGION_KEY=Configurations.getStringProperty("p2p_ip_type_user_region_key", "P2P_IP_TYPE");
|
||||
public static String P2P_HASH_TYPE_USER_REGION_KEY=Configurations.getStringProperty("p2p_hash_type_user_region_key", "P2P_HASH_TYPE");
|
||||
//PROXY INTERCEPT IP自定义域参数
|
||||
public static String INTERCEPT_IP_MONIT_USER_REGION_KEY=Configurations.getStringProperty("keyring_id", "keyring_id");
|
||||
public static String INTERCEPT_IP_RATELIMIT_DROPRATE_USER_REGION_KEY=Configurations.getStringProperty("Droprate", "Droprate");
|
||||
public static String INTERCEPT_IP_RATELIMIT_BANDWITH_USER_REGION_KEY=Configurations.getStringProperty("Bandwidth", "Bandwidth");
|
||||
|
||||
//大屏统计分析查询接口URL
|
||||
public static final String DASHBOARD_URL = Configurations.getStringProperty("dashboardUrl","dashboardUrl");
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.nis.web.controller.configuration.proxy;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -18,12 +20,17 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.configuration.BaseStringCfg;
|
||||
import com.nis.domain.configuration.CfgIndexInfo;
|
||||
import com.nis.domain.configuration.ComplexkeywordCfg;
|
||||
import com.nis.domain.configuration.DnsResStrategy;
|
||||
import com.nis.domain.configuration.HttpUrlCfg;
|
||||
import com.nis.domain.configuration.InterceptPktBin;
|
||||
import com.nis.domain.configuration.IpPortCfg;
|
||||
import com.nis.domain.configuration.template.IpAddrTemplate;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.web.controller.configuration.CommonController;
|
||||
import com.nis.web.security.UserUtils;
|
||||
|
||||
/**
|
||||
* IP相关配置控制类
|
||||
@@ -35,21 +42,13 @@ import com.nis.web.controller.configuration.CommonController;
|
||||
public class InterceptController extends CommonController{
|
||||
@RequestMapping(value = {"/ip/list"})
|
||||
// @RequiresPermissions(value={"website:dns:config"})
|
||||
public String dnsList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) {
|
||||
public String ipList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) {
|
||||
Page<CfgIndexInfo> searchPage=new Page<CfgIndexInfo>(request,response,"a");
|
||||
Page<CfgIndexInfo> page = websiteCfgService.getWebsiteList(searchPage, cfg);
|
||||
model.addAttribute("page", page);
|
||||
initPageCondition(model,cfg);
|
||||
return "/cfg/intercept/interceptIpList";
|
||||
}
|
||||
/*@RequestMapping(value = {"/ip/list"})
|
||||
// @RequiresPermissions(value={"intercept:ip:config","intercept:ip:confirm"},logical=Logical.OR)
|
||||
public String ipList(String cfgName,Model model,@ModelAttribute("cfg")IpPortCfg cfg,HttpServletRequest request,HttpServletResponse response) {
|
||||
this._ipList(cfgName,model, cfg, request, response);
|
||||
model.addAttribute("urlPrefix","/proxy/intercept/ip");
|
||||
model.addAttribute("requiresPermissionPrefix","intercept:ip");
|
||||
return "/cfg/common/ipList";
|
||||
}*/
|
||||
@RequestMapping(value = {"/domain/list"})
|
||||
// @RequiresPermissions(value={"intercept:domain:config","intercept:domain:confirm"},logical=Logical.OR)
|
||||
public String domainList(String cfgName,Model model,@ModelAttribute("cfg")HttpUrlCfg cfg,HttpServletRequest request,HttpServletResponse response) {
|
||||
@@ -61,7 +60,7 @@ public class InterceptController extends CommonController{
|
||||
|
||||
@RequestMapping(value = {"/interceptIpForm"})
|
||||
@RequiresPermissions(value={"intercept:ip:config"})
|
||||
public String dnsForm(Model model,String ids,CfgIndexInfo entity) {
|
||||
public String interceptIpForm(Model model,String ids,CfgIndexInfo entity) {
|
||||
if(StringUtils.isNotBlank(ids)){
|
||||
entity = interceptCfgService.getInterceptIpCfg(Long.parseLong(ids));
|
||||
initUpdateFormCondition(model,entity);
|
||||
@@ -75,14 +74,6 @@ public class InterceptController extends CommonController{
|
||||
model.addAttribute("_cfg", entity);
|
||||
return "/cfg/intercept/interceptIpForm";
|
||||
}
|
||||
/*@RequestMapping(value = {"/ip/form"})
|
||||
@RequiresPermissions(value={"intercept:ip:config"})
|
||||
public String ipForm(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) {
|
||||
this._ipForm(cfgName,model, ids, functionId, entity);
|
||||
model.addAttribute("urlPrefix","/proxy/intercept/ip");
|
||||
model.addAttribute("requiresPermissionPrefix","intercept:ip");
|
||||
return "/cfg/common/ipForm";
|
||||
}*/
|
||||
@RequestMapping(value = {"/domain/form"})
|
||||
@RequiresPermissions(value={"intercept:domain:config"})
|
||||
public String domainForm(String cfgName,Model model,String ids,Integer functionId,HttpUrlCfg entity) {
|
||||
@@ -91,29 +82,87 @@ public class InterceptController extends CommonController{
|
||||
model.addAttribute("requiresPermissionPrefix","intercept:domain");
|
||||
return "/cfg/common/domainForm";
|
||||
}
|
||||
@RequestMapping(value = {"saveOrUpdate"})
|
||||
public String saveInterceptIpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) {
|
||||
interceptCfgService.saveInterceptIpCfg(entity);
|
||||
@RequestMapping(value = {"/ip/saveOrUpdate"})
|
||||
public String saveInterceptIpCfg(RedirectAttributes redirectAttributes,Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) {
|
||||
try {
|
||||
interceptCfgService.saveInterceptIpCfg(entity);
|
||||
addMessage(redirectAttributes,"save_success");
|
||||
} catch (Exception e) {
|
||||
addMessage(redirectAttributes,"save_failed");
|
||||
}
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+entity.getFunctionId();
|
||||
}
|
||||
/*@RequestMapping(value = {"/ip/saveOrUpdate"})
|
||||
public String saveOrUpdateIp(String cfgName,RedirectAttributes model, IpPortCfg cfg) {
|
||||
this._saveOrUpdateIp(cfgName,model, cfg);
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+cfg.getFunctionId();
|
||||
}*/
|
||||
|
||||
@RequestMapping(value = {"ajaxInterceptIpSubList"})
|
||||
public String ajaxInterceptIpSubList(Model model,Long cfgId,Integer index) {
|
||||
CfgIndexInfo cfg = interceptCfgService.getInterceptIpCfg(cfgId);
|
||||
List<String[]> tabList = new ArrayList();
|
||||
if(cfg.getIpPortList()!=null){
|
||||
String cfgType = null;
|
||||
for(IpPortCfg ip:cfg.getIpPortList()){
|
||||
if(!ip.getCfgType().equals(cfgType)){
|
||||
tabList.add(new String[]{"1",ip.getCfgType()});
|
||||
cfgType = ip.getCfgType();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(cfg.getInterceptPktBinList()!=null){
|
||||
String cfgType = null;
|
||||
for(BaseStringCfg keyword:cfg.getInterceptPktBinList()){
|
||||
if(!keyword.getCfgType().equals(cfgType)){
|
||||
tabList.add(new String[]{"2",keyword.getCfgType()});
|
||||
cfgType = keyword.getCfgType();
|
||||
}
|
||||
}
|
||||
}
|
||||
model.addAttribute("_cfg", cfg);
|
||||
model.addAttribute("index", index);
|
||||
model.addAttribute("tabList", tabList);
|
||||
return "/cfg/intercept/interceptIpSubList";
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"auditInterceptIpCfg"})
|
||||
@RequiresPermissions(value={"intercept:ip:confirm"})
|
||||
public String auditInterceptIpCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) {
|
||||
CfgIndexInfo entity = new CfgIndexInfo();
|
||||
String[] idArray = ids.split(",");
|
||||
for(String id :idArray){
|
||||
entity = interceptCfgService.getInterceptIpCfg(Long.parseLong(id));
|
||||
entity.setIsAudit(isAudit);
|
||||
entity.setIsValid(isValid);
|
||||
entity.setAuditorId(UserUtils.getUser().getId());
|
||||
entity.setAuditTime(new Date());
|
||||
entity.setFunctionId(functionId);
|
||||
try {
|
||||
interceptCfgService.auditInterceptIpCfg(entity,isAudit);
|
||||
addMessage(redirectAttributes,"audit_success");
|
||||
} catch (MaatConvertException e) {
|
||||
logger.error("intercept ip audit failed",e);
|
||||
addMessage(redirectAttributes,"audit_failed");
|
||||
}
|
||||
}
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId;
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"updateInterceptIpValid"})
|
||||
@RequiresPermissions(value={"intercept:ip:config"})
|
||||
public String updateInterceptIpValid(Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) {
|
||||
try {
|
||||
interceptCfgService.updatInterceptValid(isValid,ids,functionId);
|
||||
addMessage(redirectAttributes,"delete_success");
|
||||
} catch (Exception e) {
|
||||
logger.error("intercept ip delete failed",e);
|
||||
addMessage(redirectAttributes,"delete_failed");
|
||||
}
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId;
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"/domain/saveOrUpdate"})
|
||||
public String saveOrUpdateDomain(String cfgName,RedirectAttributes model, HttpUrlCfg cfg) {
|
||||
this._saveOrUpdateDomain(cfgName, model, cfg);
|
||||
return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
@RequestMapping(value = {"/ip/delete"})
|
||||
@RequiresPermissions("intercept:ip:config")
|
||||
public String deleteIp(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
|
||||
this._deleteIp(cfgName,ids, compileIds, functionId, model);
|
||||
model.addAttribute("urlPrefix","/proxy/intercept/ip");
|
||||
model.addAttribute("requiresPermissionPrefix","intercept:ip");
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId;
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"/domain/delete"})
|
||||
@RequiresPermissions("intercept:domain:config")
|
||||
public String deleteDomain(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
|
||||
@@ -122,14 +171,6 @@ public class InterceptController extends CommonController{
|
||||
model.addAttribute("requiresPermissionPrefix","intercept:domain");
|
||||
return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+functionId;
|
||||
}
|
||||
@RequestMapping(value = {"/ip/audit"})
|
||||
@RequiresPermissions("intercept:ip:confirm")
|
||||
public String auditIp(String cfgName,String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) {
|
||||
this._auditIp(cfgName,ids, cfg, redirectAttributes);
|
||||
redirectAttributes.addAttribute("urlPrefix","/proxy/intercept/ip");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","intercept:ip");
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
@RequestMapping(value = {"/domain/audit"})
|
||||
@RequiresPermissions("intercept:domain:confirm")
|
||||
public String auditDomain(String ids,HttpUrlCfg cfg,RedirectAttributes redirectAttributes) {
|
||||
|
||||
@@ -30,7 +30,7 @@ import com.nis.web.dao.MyBatisDao;
|
||||
public interface InterceptCfgDao extends CrudDao<CfgIndexInfo>{
|
||||
|
||||
public List<InterceptPktBin> getInterceptPktBin(CfgIndexInfo entity);
|
||||
public void insertInterceptPktBin(InterceptPktBin entity);
|
||||
public void saveInterceptPktBin(InterceptPktBin entity);
|
||||
public void deleteInterceptPktBin(CfgIndexInfo entity);
|
||||
public void deleteInterceptIpCfg(CfgIndexInfo entity);
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
a.audit_time,a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable,
|
||||
a.expr_type,a.match_method,a.is_hexbin,a.area_effective_ids,a.function_id,a.cfg_region_code
|
||||
</sql>
|
||||
<select id="getInterceptPktBinList" resultMap="stringCfgMap">
|
||||
<select id="getInterceptPktBin" resultMap="stringCfgMap">
|
||||
SELECT
|
||||
<include refid="StrCfg_Column" />
|
||||
FROM intercept_pkt_bin a where compile_id=#{compileId} and function_id=#{functionId}
|
||||
@@ -109,7 +109,7 @@
|
||||
#{userRegion5,jdbcType=VARCHAR}
|
||||
)
|
||||
</insert>
|
||||
<delete id="deleteDnsIpCfg" >
|
||||
<delete id="deleteInterceptIpCfg" >
|
||||
delete from ip_port_cfg where compile_id=#{compileId} and function_id=#{functionId}
|
||||
</delete>
|
||||
<!-- 删除pkt bin子配置 -->
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<result column="function_id" property="functionId" jdbcType="INTEGER" />
|
||||
<result column="dns_strategy_id" property="dnsStrategyId" jdbcType="INTEGER" />
|
||||
<result column="dns_strategy_name" property="dnsStrategyName" jdbcType="VARCHAR" />
|
||||
<result column="do_log" property="doLog" jdbcType="INTEGER" />
|
||||
<result column="user_region1" property="userRegion1" jdbcType="VARCHAR" />
|
||||
<result column="user_region2" property="userRegion2" jdbcType="VARCHAR" />
|
||||
<result column="user_region3" property="userRegion3" jdbcType="VARCHAR" />
|
||||
@@ -129,7 +130,7 @@
|
||||
a.CREATOR_ID,a.CREATE_TIME,a.EDITOR_ID,a.EDIT_TIME,a.AUDITOR_ID,a.AUDIT_TIME,
|
||||
a.SERVICE_ID,a.REQUEST_ID,a.COMPILE_ID,a.IS_AREA_EFFECTIVE,a.CLASSIFY,
|
||||
a.ATTRIBUTE,a.LABLE,a.AREA_EFFECTIVE_IDS,a.function_id,a.dns_strategy_id,a.user_region1,
|
||||
a.user_region2,a.user_region3,a.user_region4,a.user_region5
|
||||
a.user_region2,a.user_region3,a.user_region4,a.user_region5,a.do_log
|
||||
</sql>
|
||||
<sql id="IpCfg_Column" >
|
||||
a.cfg_id,a.cfg_desc,a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port
|
||||
@@ -405,7 +406,8 @@
|
||||
user_region2,
|
||||
user_region3,
|
||||
user_region4,
|
||||
user_region5
|
||||
user_region5,
|
||||
do_log
|
||||
)values (
|
||||
#{cfgDesc,jdbcType=VARCHAR},
|
||||
#{action,jdbcType=INTEGER},
|
||||
@@ -431,7 +433,8 @@
|
||||
#{userRegion2,jdbcType=VARCHAR},
|
||||
#{userRegion3,jdbcType=VARCHAR},
|
||||
#{userRegion4,jdbcType=VARCHAR},
|
||||
#{userRegion5,jdbcType=VARCHAR}
|
||||
#{userRegion5,jdbcType=VARCHAR},
|
||||
#{doLog,jdbcType=INTEGER}
|
||||
)
|
||||
</insert>
|
||||
<!-- insert ip_port_cfg表信息 -->
|
||||
@@ -807,6 +810,9 @@
|
||||
<if test="action != null" >
|
||||
action = #{action,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="doLog != null" >
|
||||
do_log = #{doLog,jdbcType=INTEGER},
|
||||
</if>
|
||||
<if test="isValid != null" >
|
||||
is_valid = #{isValid,jdbcType=INTEGER},
|
||||
</if>
|
||||
|
||||
@@ -94,6 +94,12 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
*/
|
||||
|
||||
public void saveInterceptIpCfg(CfgIndexInfo entity){
|
||||
if(!entity.getAction().equals(Constants.REPLACE_ACTION)){
|
||||
entity.setInterceptPktBinList(null);
|
||||
}
|
||||
|
||||
entity.setIsValid(0);
|
||||
|
||||
//设置区域运营商信息
|
||||
setAreaEffectiveIds(entity);
|
||||
if(entity.getCfgId()==null){
|
||||
@@ -102,7 +108,12 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
List<Integer> idList = ConfigServiceUtil.getId(1, 1);
|
||||
if(idList!=null && idList.size()>0){
|
||||
compileId = idList.get(0);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.info("获取编译ID出错");
|
||||
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
|
||||
}
|
||||
entity.setCompileId(compileId);
|
||||
entity.setCreateTime(new Date());
|
||||
entity.setCreatorId(entity.getCurrentUser().getId());
|
||||
@@ -113,11 +124,12 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
websiteCfgDao.saveIpPortCfg(cfg);
|
||||
}
|
||||
}
|
||||
if(entity.getInterceptPktBinList()!=null){
|
||||
|
||||
if(entity.getInterceptPktBinList()!=null ){
|
||||
for(InterceptPktBin cfg:entity.getInterceptPktBinList()){
|
||||
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
|
||||
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
|
||||
interceptCfgDao.insertInterceptPktBin(cfg);
|
||||
interceptCfgDao.saveInterceptPktBin(cfg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -129,11 +141,7 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
areaIpCfgDao.saveAreaIpCfg(cfg);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.info("获取编译ID出错");
|
||||
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
@@ -160,7 +168,7 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
for(InterceptPktBin cfg:entity.getInterceptPktBinList()){
|
||||
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
|
||||
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
|
||||
interceptCfgDao.insertInterceptPktBin(cfg);
|
||||
interceptCfgDao.saveInterceptPktBin(cfg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -174,13 +182,13 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
}
|
||||
}
|
||||
}
|
||||
/**//**
|
||||
/**
|
||||
* dns配置删除
|
||||
* @param isValid
|
||||
* @param ids
|
||||
* @param functionId
|
||||
*//*
|
||||
public void updateDnsCfgValid(Integer isValid,String ids,Integer functionId){
|
||||
*/
|
||||
public void updatInterceptValid(Integer isValid,String ids,Integer functionId){
|
||||
CfgIndexInfo entity = new CfgIndexInfo();
|
||||
String[] idArray = ids.split(",");
|
||||
for(String id :idArray){
|
||||
@@ -192,18 +200,18 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
entity.setFunctionId(functionId);
|
||||
websiteCfgDao.updateCfgValid(entity);
|
||||
//查询子配置
|
||||
entity = this.getDnsCfg(Long.parseLong(id));
|
||||
entity = this.getInterceptIpCfg(Long.parseLong(id));
|
||||
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
|
||||
IpPortCfg cfg = new IpPortCfg();
|
||||
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
|
||||
cfg.setTableName(IpPortCfg.getTablename());
|
||||
websiteCfgDao.updateCfgValid(cfg);
|
||||
}
|
||||
if(entity.getDomainList()!=null && entity.getDomainList().size()>0)
|
||||
if(entity.getInterceptPktBinList()!=null && entity.getInterceptPktBinList().size()>0)
|
||||
{
|
||||
SslKeywordCfg cfg = new SslKeywordCfg();
|
||||
InterceptPktBin cfg = new InterceptPktBin();
|
||||
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
|
||||
cfg.setTableName(DnsDomainCfg.getTablename());
|
||||
cfg.setTableName(InterceptPktBin.getTablename());
|
||||
websiteCfgDao.updateCfgValid(cfg);
|
||||
}
|
||||
//保存区域IP信息
|
||||
@@ -217,13 +225,13 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
}
|
||||
|
||||
}
|
||||
*//**
|
||||
/**
|
||||
* dns配置审核
|
||||
* @param entity
|
||||
* @param isAudit
|
||||
* @throws MaatConvertException
|
||||
*//*
|
||||
public void auditDnsCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{
|
||||
*/
|
||||
public void auditInterceptIpCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{
|
||||
//修改数据库审核状态信息
|
||||
entity.setTableName(CfgIndexInfo.getTablename());
|
||||
websiteCfgDao.auditCfg(entity);
|
||||
@@ -239,7 +247,7 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
List<IpCfg> areaIpRegionList = new ArrayList();
|
||||
|
||||
//查询子配置并修改审核状态
|
||||
entity = this.getDnsCfg(entity.getCfgId());
|
||||
entity = this.getInterceptIpCfg(entity.getCfgId());
|
||||
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
|
||||
IpPortCfg cfg = new IpPortCfg();
|
||||
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
|
||||
@@ -254,13 +262,13 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
}
|
||||
}
|
||||
}
|
||||
if(entity.getDomainList()!=null && entity.getDomainList().size()>0){
|
||||
DnsDomainCfg cfg = new DnsDomainCfg();
|
||||
if(entity.getInterceptPktBinList()!=null && entity.getInterceptPktBinList().size()>0){
|
||||
InterceptPktBin cfg = new InterceptPktBin();
|
||||
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
|
||||
cfg.setTableName(DnsDomainCfg.getTablename());
|
||||
cfg.setTableName(InterceptPktBin.getTablename());
|
||||
websiteCfgDao.auditCfg(cfg);
|
||||
if(isAudit==1){
|
||||
Map<String,List> map = cfgConvert(strRegionList,entity.getDomainList(),2,entity,groupRelationList);
|
||||
Map<String,List> map = cfgConvert(strRegionList,entity.getInterceptPktBinList(),2,entity,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
}
|
||||
@@ -293,11 +301,41 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
maatCfg.setGroupNum(groupRelationList.size());
|
||||
maatCfg.setAreaIpRegionList(areaIpRegionList);
|
||||
maatCfg.setIsValid(entity.getIsValid());
|
||||
// dns reject userRegion=;dnsStrategyId;
|
||||
if(!StringUtil.isEmpty(entity.getDnsStrategyId())){
|
||||
// maatCfg.setUserRegion(Constants.USER_REGION_SPLIT+entity.getDnsStrategyId()+Constants.USER_REGION_SPLIT);
|
||||
maatCfg.setUserRegion(Constants.DNS_STRATEGY_USER_REGION_KEY+"="+entity.getDnsStrategyId());
|
||||
|
||||
//监测需要发keyring_id
|
||||
if(entity.getAction().equals(Constants.MONIT_ACTION)){
|
||||
entity.setUserRegion1(StringUtil.isEmpty(entity.getUserRegion1()) ? "0":entity.getUserRegion1());
|
||||
maatCfg.setUserRegion(Constants.INTERCEPT_IP_MONIT_USER_REGION_KEY+"="+entity.getUserRegion1());
|
||||
}
|
||||
//限速需要发Droprate=0.001 ,暂不支持Bandwidth=200kbps
|
||||
if(entity.getAction().equals(Constants.RATELIMIT_ACTION)){
|
||||
entity.setUserRegion2(StringUtil.isEmpty(entity.getUserRegion2()) ? "":entity.getUserRegion2());
|
||||
|
||||
maatCfg.setUserRegion(Constants.INTERCEPT_IP_RATELIMIT_DROPRATE_USER_REGION_KEY+"="+entity.getUserRegion2());
|
||||
}
|
||||
String userRegion="";
|
||||
//替换需要发zone
|
||||
if(entity.getAction().equals(Constants.REPLACE_ACTION)){
|
||||
//HTTP replace: replace type is not null ;find is not null;replace with is not null(userRegion is not null)
|
||||
userRegion=Constants.REPLACE_ZONE_KEY+"="+entity.getUserRegion3();
|
||||
String substitute="";
|
||||
String userRegion4=StringUtil.isEmpty(entity.getUserRegion4()) ? "":entity.getUserRegion4();
|
||||
substitute="/";
|
||||
userRegion4 = BaseService.replaceContentEscape(userRegion4);
|
||||
substitute=substitute+userRegion4;
|
||||
|
||||
String userRegion5=StringUtil.isEmpty(entity.getUserRegion5()) ? "":entity.getUserRegion5();
|
||||
userRegion5 = BaseService.replaceContentEscape(userRegion5);
|
||||
substitute=substitute+"/"+userRegion5;
|
||||
|
||||
userRegion=userRegion+";"+Constants.REPLACE_SUBSTITUTE_KEY+"="+substitute;
|
||||
maatCfg.setUserRegion(userRegion);
|
||||
}
|
||||
|
||||
if(StringUtil.isEmpty(maatCfg.getUserRegion())){
|
||||
maatCfg.setUserRegion(Constants.USER_REGION_PLACEHOLDER);
|
||||
}
|
||||
|
||||
configCompileList.add(maatCfg);
|
||||
maatBean.setConfigCompileList(configCompileList);
|
||||
maatBean.setAuditTime(entity.getAuditTime());
|
||||
@@ -306,10 +344,10 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
maatBean.setOpAction(Constants.INSERT_ACTION);
|
||||
//调用服务接口下发配置数据
|
||||
String json=gsonToJson(maatBean);
|
||||
logger.info("dns配置下发配置参数:"+json);
|
||||
logger.info("intercept IP 配置下发配置参数:"+json);
|
||||
//调用服务接口下发配置
|
||||
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
|
||||
logger.info("dns配置下发响应信息:"+result.getMsg());
|
||||
logger.info("intercept IP 配置下发响应信息:"+result.getMsg());
|
||||
|
||||
}else if(isAudit==3){
|
||||
maatCfg.setCompileId(entity.getCompileId());
|
||||
@@ -323,10 +361,10 @@ public class InterceptCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo>
|
||||
maatBean.setOpAction(Constants.UPDATE_ACTION);
|
||||
//调用服务接口取消配置
|
||||
String json=gsonToJson(maatBean);
|
||||
logger.info("dns配置下发配置参数:"+json);
|
||||
logger.info("intercept IP 配置下发配置参数:"+json);
|
||||
//调用服务接口下发配置
|
||||
ToMaatResult result = ConfigServiceUtil.put(json,1);
|
||||
logger.info("dns配置取消配置响应信息:"+result.getMsg());
|
||||
logger.info("intercept IP 配置取消配置响应信息:"+result.getMsg());
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,6 +440,10 @@ specific_service_cfg_type_encrypted_tunnel_behavior=encrypted_tunnel_behavior
|
||||
specific_service_cfg_type_basic_protocol=basic_protocol
|
||||
#\u57fa\u7840\u534f\u8bae\u81ea\u5b9a\u4e49\u57df
|
||||
proto_id_region=PROTO_ID
|
||||
#拦截IP自定义域key
|
||||
keyring_id=keyring_id
|
||||
droprate=Droprate
|
||||
bandwidth=Bandwidth
|
||||
#IP\u9ed8\u8ba4\u503c
|
||||
ipv4_default_ip_value=\:\:
|
||||
ipv4_default_ip_subnet_value=0.0.0.0/32
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
<mapping path="/nis/basicprotocol/ajax*" exclue="true"/>
|
||||
<mapping path="/nis/encryptedtunnelbehav/ajax*" exclue="true"/>
|
||||
<mapping path="/nis/ntc/av/ajax*" exclue="true"/>
|
||||
<mapping path="/proxy/intercept/ajax*" exclue="true"/>
|
||||
<!-- 对同一路径,启用多个装饰器 -->
|
||||
<mapping>
|
||||
<path>/articles/*</path>
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
<div class="col-md-6">
|
||||
<select name="userRegion1"
|
||||
class="selectpicker show-tick form-control required">
|
||||
<c:forEach items="${fns:getDictList('REPLACE_ZONE')}" var="replaceZoneC">
|
||||
<c:forEach items="${fns:getDictList('CONTROL_REPLACE_ZONE')}" var="replaceZoneC">
|
||||
<option value="${replaceZoneC.itemCode}" <c:if test="${_cfg.userRegion1==replaceZoneC.itemCode || _cfg.userRegion1==null}">selected</c:if>><spring:message code="${replaceZoneC.itemValue}"/></option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
|
||||
@@ -16,12 +16,6 @@
|
||||
$("#cancel").on("click", function() {
|
||||
window.history.back();
|
||||
});
|
||||
setDefaultInfo();
|
||||
$(".action").on("change", function() {
|
||||
$("#serviceId").val($(this).attr("serviceId"));
|
||||
$("#protocolId").val($(this).attr("protocolId"));
|
||||
setDefaultInfo();
|
||||
});
|
||||
$("#serviceId").val($(".action:checked").attr("serviceId"));
|
||||
$("#protocolId").val($(".action:checked").attr("protocolId"));
|
||||
$("#cfgFrom").validate(
|
||||
@@ -82,24 +76,25 @@
|
||||
$(this).remove();
|
||||
});
|
||||
$("input[name$='exprType']").attr("disabled",false);
|
||||
var action=$("input[name='action']").val();
|
||||
var action=$("input[name='action']:checked").val();
|
||||
if(action==1){ //监测
|
||||
$("input[name='userRegion2']").val("");
|
||||
$("select[name='userRegion3']").val();
|
||||
$("select[name='userRegion3']").val("");
|
||||
$("input[name='userRegion4']").val("");
|
||||
$("input[name='userRegion5']").val("");
|
||||
}else if(action==64){//限速
|
||||
$("select[name='userRegion1']").val("");
|
||||
$("select[name='userRegion3']").val();
|
||||
$("select[name='userRegion3']").val("");
|
||||
$("input[name='userRegion4']").val("");
|
||||
$("input[name='userRegion5']").val("");
|
||||
}else if(action==80){//替换
|
||||
$("input[name='userRegion1']").val("");
|
||||
$("input[name='userRegion2']").val("");
|
||||
}else {//白名单
|
||||
$("select[name='userRegion1']").val();
|
||||
$("input[name='userRegion2']").val("");
|
||||
$("select[name='userRegion3']").val();
|
||||
}else {//白名单
|
||||
$("select[name='userRegion1']").val("");
|
||||
$("input[name='userRegion2']").val("");
|
||||
$("select[name='userRegion3']").val("");
|
||||
$("input[name='userRegion4']").val("");
|
||||
$("input[name='userRegion5']").val("");
|
||||
}
|
||||
@@ -118,72 +113,7 @@
|
||||
}); */
|
||||
|
||||
});
|
||||
var setDefaultInfo=function(){
|
||||
var action=$("input[name='action']").val();
|
||||
var serviceRegionType="";
|
||||
var protocolNamePrefix="";
|
||||
$("input[name$='configServiceType']").each(function(){
|
||||
//替换动作非tcp
|
||||
var serviceRegionTypeValue=$(this).val();
|
||||
var serviceRegionTypeValue=$(this).attr("name");
|
||||
if(serviceRegionTypeValue.indexOf(".") >-1){
|
||||
serviceRegionTypeValue=serviceRegionTypeValue.substring(0,serviceRegionTypeValue.indexOf(".")+1);
|
||||
}else{
|
||||
serviceRegionTypeValue="";
|
||||
}
|
||||
if(serviceRegionType == 'intercept_ratelimit'){
|
||||
serviceRegionType=serviceRegionTypeValue;
|
||||
protocolNamePrefix=serviceRegionTypeValue;
|
||||
}
|
||||
});
|
||||
|
||||
if(action==1){
|
||||
//监测
|
||||
$(".monitAction").removeClass("hidden");
|
||||
$(".monitAction").find(".hidden").removeClass("hidden");
|
||||
$(".monitAction").find("[disabled=disabled]").attr("disabled","");
|
||||
$(".ratelimitAction").addClass("hidden");
|
||||
$(".replaceAction").addClass("hidden");
|
||||
if(serviceRegionType == 'intercept_ratelimit'){
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=1]").hide();
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=6]").show();
|
||||
}
|
||||
}else if(action==64){
|
||||
//限速
|
||||
$(".monitAction").addClass("hidden");
|
||||
$(".ratelimitAction").removeClass("hidden");
|
||||
$(".ratelimitAction").find(".hidden").removeClass("hidden");
|
||||
$(".ratelimitAction").find("[disabled=disabled]").attr("disabled","");
|
||||
$(".replaceAction").addClass("hidden");
|
||||
if(serviceRegionType == 'intercept_ratelimit'){
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=1]").hide();
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=6]").show();
|
||||
}
|
||||
}else if(action==80){
|
||||
//替换
|
||||
$(".monitAction").addClass("hidden");
|
||||
$(".ratelimitAction").addClass("hidden");
|
||||
$(".replaceAction").removeClass("hidden");
|
||||
$(".replaceAction").find(".hidden").removeClass("hidden");
|
||||
$(".replaceAction").find("[disabled=disabled]").attr("disabled","");
|
||||
if(serviceRegionType == 'intercept_ratelimit'){
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=1]").show();
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=6]").hide();
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
//白名单
|
||||
$(".monitAction").hide();
|
||||
$(".ratelimitAction").hide();
|
||||
$(".replaceAction").hide();
|
||||
if(serviceRegionType == 'intercept_ratelimit'){
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=1]").hide();
|
||||
$("select[name="+protocolNamePrefix+"'protocol']").find("option[value=6]").show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//业务窗口打开
|
||||
var addContent = function(obj, contentClassName) {
|
||||
@@ -229,7 +159,7 @@
|
||||
</div>
|
||||
<div class="portlet-body form">
|
||||
<!-- BEGIN FORM-->
|
||||
<form id="cfgFrom" action="${ctx}/ntc/website/saveDnsCfg"
|
||||
<form id="cfgFrom" action="${ctx}/proxy/intercept/ip/saveOrUpdate"
|
||||
method="post" class="form-horizontal">
|
||||
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
|
||||
<input type="hidden" name="compileId" value="${_cfg.compileId}">
|
||||
@@ -278,9 +208,33 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog begin-->
|
||||
<div class="row doLog">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:choose>
|
||||
<c:when test="${dict.itemCode eq _cfg.doLog}">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</c:forEach>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog end-->
|
||||
<%-- action 为1 监测时 可以选择证书--%>
|
||||
<div class="row monitAction hidden">
|
||||
<div class="col-md-6 policy">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message
|
||||
code="policy_name" /></label>
|
||||
@@ -298,9 +252,9 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ratelimit"/></label>
|
||||
<div class="col-md-6">
|
||||
<input class="form-control required number" range="[0,100]" type="text" name="userRegion2">
|
||||
<input class="form-control required number" range="[0,100]" type="text" name="userRegion2" value="${_cfg.userRegion2 }">
|
||||
</div>
|
||||
<div for="ratelimit"></div>
|
||||
<div for="userRegion2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -319,12 +273,13 @@
|
||||
<div class="col-md-6">
|
||||
<select name="userRegion3"
|
||||
class="selectpicker show-tick form-control required">
|
||||
<c:forEach items="${fns:getDictList('REPLACE_ZONE')}" var="replaceZoneC">
|
||||
<option value="" ><spring:message code="selected"/></option>
|
||||
<c:forEach items="${fns:getDictList('INTERCEPT_REPLACE_ZONE')}" var="replaceZoneC">
|
||||
<option value="${replaceZoneC.itemCode}" <c:if test="${_cfg.userRegion3==replaceZoneC.itemCode || _cfg.userRegion3==null}">selected</c:if>><spring:message code="${replaceZoneC.itemValue}"/></option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</div>
|
||||
<div for="userRegion1"></div>
|
||||
<div for="userRegion3"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -391,7 +346,7 @@
|
||||
</c:if>
|
||||
<c:if test="${region.regionType eq 2 }">
|
||||
<c:set var="tabName" value="${region.configRegionValue}Tab"></c:set>
|
||||
<h4 class="form-section">
|
||||
<h4 class="form-section ${region.configServiceType }">
|
||||
<spring:message code="${region.configRegionValue}" />
|
||||
<small> <span
|
||||
class="glyphicon glyphicon-plus ${tabName}Add"
|
||||
@@ -402,10 +357,10 @@
|
||||
<c:choose>
|
||||
<c:when test="${fn:length(_cfg.interceptPktBinList)>0}">
|
||||
<c:set var="isBreak" value="false" ></c:set>
|
||||
<c:forEach items="${_cfg.domainList}" var="cfg">
|
||||
<c:forEach items="${_cfg.interceptPktBinList}" var="cfg">
|
||||
<c:choose>
|
||||
<c:when test="${region.configRegionValue eq cfg.cfgType and !isBreak}">
|
||||
<div class="row boxSolid ${tabName}${status.index}">
|
||||
<div class="row boxSolid ${region.configServiceType }_div ${tabName}${status.index}">
|
||||
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
|
||||
</div>
|
||||
<c:set var="isBreak" value="true" ></c:set>
|
||||
@@ -414,14 +369,14 @@
|
||||
</c:choose>
|
||||
</c:forEach>
|
||||
<c:if test="${!isBreak}">
|
||||
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
|
||||
<div class="row boxSolid ${region.configServiceType }_div ${tabName}${status.index} hidden disabled">
|
||||
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
|
||||
</div>
|
||||
<c:set var="complexCfgIndex" value="${complexCfgIndex+1 }"></c:set>
|
||||
</c:if>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
|
||||
<div class="row boxSolid ${region.configServiceType }_div ${tabName}${status.index} hidden disabled">
|
||||
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
|
||||
</div>
|
||||
<c:set var="complexCfgIndex" value="${complexCfgIndex+1 }"></c:set>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
$.ajax({
|
||||
type:'post',
|
||||
async:false,
|
||||
url:'${ctx}/ntc/website/ajaxDnsSubList',
|
||||
url:'${ctx}/proxy/intercept/ajaxInterceptIpSubList',
|
||||
data:{"cfgId":cfgId,"index":index},
|
||||
dataType:"html",
|
||||
success:function(data){
|
||||
@@ -102,7 +102,7 @@
|
||||
<div class="portlet-body">
|
||||
<div class="row" >
|
||||
<sys:message content="${message}"/>
|
||||
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}/proxy/intercept/interceptIpList?functionId=${cfg.functionId}" method="post" class="form-search">
|
||||
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}/proxy/intercept/ip/list?functionId=${cfg.functionId}" method="post" class="form-search">
|
||||
<input id="functionId" name="functionId" type="hidden" value="${cfg.functionId}"/>
|
||||
<input id="audit" name="audit" type="hidden" value="${audit}"/>
|
||||
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
|
||||
@@ -150,8 +150,8 @@
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<shiro:hasPermission name="intercept:ip:config">
|
||||
<sys:delRow url="${ctx}/ntc/website/dnsForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/website/updateDnsCfgValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/proxy/intercept/interceptIpForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/proxy/intercept/updateInterceptIpValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="intercept:ip:confirm">
|
||||
<div class="btn-group">
|
||||
@@ -311,6 +311,7 @@
|
||||
<th><spring:message code="replaced_content"/></th>
|
||||
<th><spring:message code="replace_content"/></th>
|
||||
<th><spring:message code="block_type"/></th>
|
||||
<th><spring:message code="do_log"/></th>
|
||||
<th><spring:message code="whether_area_block"/></th>
|
||||
<th><spring:message code="letter"/></th>
|
||||
<th><spring:message code="classification"/></th>
|
||||
@@ -342,7 +343,7 @@
|
||||
${indexCfg.userRegion2 }
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('REPLACE_ZONE')}" var="replaceZoneC">
|
||||
<c:forEach items="${fns:getDictList('INTERCEPT_REPLACE_ZONE')}" var="replaceZoneC">
|
||||
<c:if test="${indexCfg.userRegion3==replaceZoneC.itemCode}">
|
||||
<spring:message code="${replaceZoneC.itemValue}"/>
|
||||
</c:if>
|
||||
@@ -361,6 +362,13 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:if test="${dict.itemCode eq indexCfg.doLog }">
|
||||
<spring:message code="${dict.itemValue }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
|
||||
<c:if test="${indexCfg.isAreaEffective==1}">
|
||||
|
||||
@@ -120,17 +120,10 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</c:if>
|
||||
<c:if test="${region[0] eq 3 }">
|
||||
<c:forEach items="${_cfg.domainList}" var="cfg">
|
||||
<c:if test="${region[0] eq 2 }">
|
||||
<c:forEach items="${_cfg.interceptPktBinList}" var="cfg">
|
||||
<c:if test="${region[1] eq cfg.cfgType }">
|
||||
<div id="${region[1]}Info${index}" class="content" name="subCfg${index}">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label><spring:message code='district' />:</label><label>${cfg.district }</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="form-group">
|
||||
|
||||
@@ -197,6 +197,30 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog begin-->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:choose>
|
||||
<c:when test="${dict.itemCode eq _cfg.doLog}">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</c:forEach>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog end-->
|
||||
<c:set var="ipCfgIndex" value="0"></c:set>
|
||||
<c:set var="complexCfgIndex" value="0"></c:set>
|
||||
<c:set var="digestCfgIndex" value="0"></c:set>
|
||||
|
||||
@@ -307,6 +307,7 @@
|
||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||
<th class="cfgDesc"><spring:message code="config_describe"/></th>
|
||||
<th><spring:message code="block_type"/></th>
|
||||
<th><spring:message code="do_log"/></th>
|
||||
<th><spring:message code="whether_area_block"/></th>
|
||||
<th><spring:message code="letter"/></th>
|
||||
<th><spring:message code="classification"/></th>
|
||||
@@ -338,6 +339,13 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:if test="${dict.itemCode eq indexCfg.doLog }">
|
||||
<spring:message code="${dict.itemValue }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
|
||||
<c:if test="${indexCfg.isAreaEffective==1}">
|
||||
|
||||
@@ -592,7 +592,7 @@
|
||||
</c:if>
|
||||
<c:if test="${action == 80}">
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('REPLACE_ZONE') }" var="dict3">
|
||||
<c:forEach items="${fns:getDictList('CONTROL_REPLACE_ZONE') }" var="dict3">
|
||||
<c:if test="${dict3.itemCode eq indexCfg.userRegion1 }">
|
||||
<spring:message code="${dict3.itemValue }"/>
|
||||
</c:if>
|
||||
|
||||
@@ -190,6 +190,26 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:choose>
|
||||
<c:when test="${dict.itemCode eq _cfg.doLog}">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</c:forEach>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 policy">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message
|
||||
|
||||
@@ -307,6 +307,7 @@
|
||||
<th class="cfgDesc"><spring:message code="config_describe"/></th>
|
||||
<th><spring:message code="policy_name"/></th>
|
||||
<th><spring:message code="block_type"/></th>
|
||||
<th><spring:message code="do_log"/></th>
|
||||
<th><spring:message code="whether_area_block"/></th>
|
||||
<th><spring:message code="letter"/></th>
|
||||
<th><spring:message code="classification"/></th>
|
||||
@@ -343,6 +344,13 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:if test="${dict.itemCode eq indexCfg.doLog }">
|
||||
<spring:message code="${dict.itemValue }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
|
||||
<c:if test="${indexCfg.isAreaEffective==1}">
|
||||
|
||||
@@ -258,6 +258,30 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog begin-->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:choose>
|
||||
<c:when test="${dict.itemCode eq _cfg.doLog}">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</c:forEach>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog end-->
|
||||
<c:forEach items="${regionList}" var="region" varStatus="status">
|
||||
<c:if test="${region.regionType eq 1 }">
|
||||
<!--ip info-->
|
||||
|
||||
@@ -464,6 +464,7 @@
|
||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||
<th class="cfgDesc"><spring:message code="config_describe"/></th>
|
||||
<th><spring:message code="block_type"/></th>
|
||||
<th><spring:message code="do_log"/></th>
|
||||
<th><spring:message code="whether_area_block"/></th>
|
||||
<th><spring:message code="letter"/></th>
|
||||
<th><spring:message code="classification"/></th>
|
||||
@@ -495,6 +496,13 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:if test="${dict.itemCode eq indexCfg.doLog }">
|
||||
<spring:message code="${dict.itemValue }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
|
||||
<c:if test="${indexCfg.isAreaEffective==1}">
|
||||
|
||||
@@ -191,6 +191,30 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog begin-->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:choose>
|
||||
<c:when test="${dict.itemCode eq _cfg.doLog}">
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
|
||||
</label>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</c:forEach>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dolog end-->
|
||||
<c:set var="ipCfgIndex" value="0"></c:set>
|
||||
<c:set var="strCfgIndex" value="0"></c:set>
|
||||
<c:forEach items="${regionList}" var="region" varStatus="status">
|
||||
|
||||
@@ -306,6 +306,7 @@
|
||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||
<th class="cfgDesc"><spring:message code="config_describe"/></th>
|
||||
<th><spring:message code="block_type"/></th>
|
||||
<th><spring:message code="do_log"/></th>
|
||||
<th><spring:message code="whether_area_block"/></th>
|
||||
<th><spring:message code="letter"/></th>
|
||||
<th><spring:message code="classification"/></th>
|
||||
@@ -337,6 +338,13 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
|
||||
<c:if test="${dict.itemCode eq indexCfg.doLog }">
|
||||
<spring:message code="${dict.itemValue }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
|
||||
<c:if test="${indexCfg.isAreaEffective==1}">
|
||||
|
||||
@@ -63,12 +63,10 @@ $(function(){
|
||||
$("select[name$='portPattern']").on("change",function(){
|
||||
switchIpInfo(this);
|
||||
});
|
||||
|
||||
switchAction($("input[name='action']:checked").val());
|
||||
//DNS REJECT 时选择dnsStrategyId
|
||||
$("input[name='action']").on('change',function(){
|
||||
var action=$(this).val();
|
||||
switchAction(action);
|
||||
});
|
||||
setInterceptDefaultInfo($("input[name='cfgId']").val());
|
||||
|
||||
$(".glyphicon-plus").on("click",function(){
|
||||
var obj=$(this).parents(".form-section").next(".container-fluid").clone();
|
||||
var len=$(this).parents("div").find(".container-fluid:visible").size();
|
||||
@@ -360,6 +358,23 @@ $(function(){
|
||||
}
|
||||
});
|
||||
$(".action").on("change", function() {
|
||||
//DNS REJECT 时选择dnsStrategyId
|
||||
var action=$("input[name='action']:checked").val();
|
||||
switchAction(action);
|
||||
|
||||
//拦截根据action切换动作部分
|
||||
setInterceptDefaultInfo("");
|
||||
|
||||
//dolog 白名单默认不显示,不记录日志
|
||||
if(action == 128 || action == 32){
|
||||
$(".doLog").addClass("hidden");
|
||||
$("input[name='doLog'][value=0]").prop("checked",true);
|
||||
}else{
|
||||
$(".doLog").removeClass("hidden");
|
||||
$("input[name='doLog'][value=2]").prop("checked",true);
|
||||
|
||||
}
|
||||
|
||||
$("#serviceId").val($(this).attr("serviceId"));
|
||||
$("#protocolId").val($(this).attr("protocolId"));
|
||||
var actionCode=$(this).val();
|
||||
@@ -641,7 +656,83 @@ window.onload=function(){
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
var setInterceptDefaultInfo=function(cfgId){
|
||||
var action=$("input[name='action']:checked").val();
|
||||
var interceptRatelimitIp="";
|
||||
var interceptReplacePktBin="";
|
||||
var protocolNamePrefix="";
|
||||
//查找当前业务中的serviceRegionType,是否存在intercept_ratelimit_ip
|
||||
$("input[name$='configServiceType']").each(function(){
|
||||
//替换动作非tcp
|
||||
var serviceRegionTypeValue=$(this).val();
|
||||
var serviceRegionTypeName=$(this).attr("name");
|
||||
if(serviceRegionTypeName.indexOf(".") >-1){
|
||||
serviceRegionTypeName=serviceRegionTypeName.substring(0,serviceRegionTypeName.indexOf(".")+1);
|
||||
}else{
|
||||
serviceRegionTypeName="";
|
||||
}
|
||||
if(serviceRegionTypeValue == 'intercept_ratelimit_ip'){
|
||||
interceptRatelimitIp=serviceRegionTypeValue;
|
||||
protocolNamePrefix=serviceRegionTypeName;
|
||||
}
|
||||
if(serviceRegionTypeValue == 'intercept_replace_pkt_bin'){
|
||||
interceptReplacePktBin=serviceRegionTypeValue;
|
||||
}
|
||||
});
|
||||
|
||||
if(action==1){
|
||||
//监测
|
||||
$(".monitAction").removeClass("hidden");
|
||||
$(".ratelimitAction").addClass("hidden");
|
||||
$(".replaceAction").addClass("hidden");
|
||||
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
|
||||
//TODO隐藏不可选IP 协议
|
||||
}
|
||||
if(interceptReplacePktBin == 'intercept_replace_pkt_bin'){
|
||||
$("."+interceptReplacePktBin).addClass("hidden");
|
||||
$("."+interceptReplacePktBin+"_div").addClass("hidden");
|
||||
}
|
||||
}else if(action==64){
|
||||
//限速
|
||||
$(".monitAction").addClass("hidden");
|
||||
$(".ratelimitAction").removeClass("hidden");
|
||||
$(".replaceAction").addClass("hidden");
|
||||
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
|
||||
//TODO隐藏不可选IP 协议
|
||||
}
|
||||
if(interceptReplacePktBin == 'intercept_replace_pkt_bin'){
|
||||
$("."+interceptReplacePktBin).addClass("hidden");
|
||||
$("."+interceptReplacePktBin+"_div").addClass("hidden");
|
||||
}
|
||||
}else if(action==80){
|
||||
//替换
|
||||
$(".monitAction").addClass("hidden");
|
||||
$(".ratelimitAction").addClass("hidden");
|
||||
$(".replaceAction").removeClass("hidden");
|
||||
if(interceptRatelimitIp == 'intercept_ratelimit_ip'){
|
||||
//TODO隐藏不可选IP 协议
|
||||
}
|
||||
if(interceptReplacePktBin == 'intercept_replace_pkt_bin' && cfgId == ""){
|
||||
$("."+interceptReplacePktBin).removeClass("hidden");
|
||||
$("."+interceptReplacePktBin).find("span").removeClass("hidden");
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
//白名单
|
||||
$(".monitAction").addClass("hidden");
|
||||
$(".ratelimitAction").addClass("hidden");
|
||||
$(".replaceAction").addClass("hidden");
|
||||
if(interceptRatelimitIp == 'intercept_ratelimit'){
|
||||
//TODO隐藏不可选IP 协议
|
||||
}
|
||||
if(interceptReplacePktBin == 'intercept_replace_pkt_bin'){
|
||||
$("."+interceptReplacePktBin).addClass("hidden");
|
||||
$("."+interceptReplacePktBin+"_div").addClass("hidden");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//0 非十六进制 大小不敏感 1 十六进制,大小写不敏感 2非十六进制 大小写敏感
|
||||
var setIsHexBin=function(obj){
|
||||
var profix="";
|
||||
|
||||
Reference in New Issue
Block a user