(1)IP复用提交

(2)修改保存区域IP的Dao为AreaIpCfgDao
(3)共用页面兼容性调整
(4)针对IP复用的loop action做了特殊处理,此处审核不是走callback
This commit is contained in:
wangxin
2018-06-25 16:55:45 +08:00
parent ea43be405a
commit 393c0f9917
20 changed files with 307 additions and 87 deletions

View File

@@ -46,7 +46,22 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
protected Integer portPattern;
protected String srcPort;
protected String destPort;
protected Long dnsStrategyId;
protected String groupName;
/**
* groupName
* @return groupName
*/
public String getGroupName() {
return groupName;
}
/**
* @param groupName the groupName to set
*/
public void setGroupName(String groupName) {
this.groupName = groupName;
}
/**
* 方向
*/
@@ -227,6 +242,21 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
public void setDestPort(String destPort) {
this.destPort = destPort;
}
/**
* dnsStrategyId
* @return dnsStrategyId
*/
public Long getDnsStrategyId() {
return dnsStrategyId;
}
/**
* @param dnsStrategyId the dnsStrategyId to set
*/
public void setDnsStrategyId(Long dnsStrategyId) {
this.dnsStrategyId = dnsStrategyId;
}
@Override
public void initDefaultValue(){
super.initDefaultValue();

View File

@@ -7,6 +7,10 @@ import java.util.Map;
import com.google.gson.GsonBuilder;
public final class Constants {
/**
* IP复用业务类型
*/
public static final int SERVICE_IP_MULITIPLEX = Configurations.getIntProperty("service_ip_mulitiplex", 768);
/**
* 当前时区
*/

View File

@@ -0,0 +1,90 @@
/**
*@Title: ControlController.java
*@Package com.nis.web.controller.configuration.proxy
*@Description TODO
*@author dell
*@date 2018年6月22日 下午4:35:42
*@version 版本号
*/
package com.nis.web.controller.configuration.manipulation;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.util.DictUtils;
import com.nis.web.controller.configuration.CommonController;
/**
* @ClassName: ControlController.java
* @Description: TODO
* @author (dell)
* @date 2018年6月22日 下午4:35:42
* @version V1.0
*/
@Controller
@RequestMapping("${adminPath}/manipulation/ipmulitiplex")
public class IpMultiplexController extends CommonController {
@RequestMapping(value = {"/list"})
@RequiresPermissions(value={"ip:mulitiplex:config","ip:mulitiplex:audit"},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","/manipulation/ipmulitiplex");
model.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
return "/cfg/common/ipList";
}
@RequestMapping(value = {"/form"})
@RequiresPermissions(value={"ip:mulitiplex:config"})
public String ipForm(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) {
this._ipForm(cfgName,model, ids, functionId, entity);
SysDataDictionaryItem dict=null;
List<SysDataDictionaryItem> dictList= DictUtils.getDictList("POLICY_GROUP_TYPE");
for(SysDataDictionaryItem di:dictList){
if("ipmulitiplex_type".equals(di.getItemValue())){
dict=di;
break;
}
}
if(dict!=null){
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(Integer.parseInt(dict.getItemCode()));
model.addAttribute("policyGroups", policyGroups);
}
model.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
model.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
return "/cfg/common/ipForm";
}
@RequestMapping(value = {"/saveOrUpdate"})
public String saveOrUpdateIp(String cfgName,RedirectAttributes model, IpPortCfg cfg) {
this._saveOrUpdateIp(cfgName,model, cfg);
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
}
@RequestMapping(value = {"/delete"})
@RequiresPermissions("ip:mulitiplex: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/ipmulitiplex");
model.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+functionId;
}
@RequestMapping(value = {"/audit"})
// @RequiresPermissions("ip:mulitiplex:audit")
public String auditIp(String cfgName,String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) {
this._auditIp(cfgName,ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
}
}

View File

@@ -39,7 +39,7 @@ public class RatelimitController extends CommonController {
@RequiresPermissions(value={"ip:ratelimit:config","ip:ratelimit:audit"},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","/manipulation/ratelimit");
model.addAttribute("urlPrefix","/manipulation/ratelimit/ip");
model.addAttribute("requiresPermissionPrefix","ip:ratelimit");
return "/cfg/common/ipList";
}
@@ -47,7 +47,7 @@ public class RatelimitController extends CommonController {
@RequiresPermissions(value={"domain:ratelimit:config","domain:ratelimit:audit"},logical=Logical.OR)
public String domainList(String cfgName,Model model,@ModelAttribute("cfg")HttpUrlCfg cfg,HttpServletRequest request,HttpServletResponse response) {
this._domainList(cfgName,model, cfg, request, response);
model.addAttribute("urlPrefix","/manipulation/ratelimit");
model.addAttribute("urlPrefix","/manipulation/ratelimit/domain");
model.addAttribute("requiresPermissionPrefix","domain:ratelimit");
return "/cfg/common/domainList";
}
@@ -55,7 +55,7 @@ public class RatelimitController extends CommonController {
@RequiresPermissions(value={"ip:ratelimit:config"})
public String ipForm(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) {
this._ipForm(cfgName,model, ids, functionId, entity);
model.addAttribute("urlPrefix","/manipulation/ratelimit");
model.addAttribute("urlPrefix","/manipulation/ratelimit/ip");
model.addAttribute("requiresPermissionPrefix","ip:ratelimit");
return "/cfg/common/ipForm";
}
@@ -63,7 +63,7 @@ public class RatelimitController extends CommonController {
@RequiresPermissions(value={"domain:ratelimit:config"})
public String domainForm(String cfgName,Model model,String ids,Integer functionId,BaseStringCfg entity) {
this._domainForm(cfgName, model, ids, functionId, entity);
model.addAttribute("urlPrefix","/manipulation/ratelimit");
model.addAttribute("urlPrefix","/manipulation/ratelimit/domain");
model.addAttribute("requiresPermissionPrefix","domain:ratelimit");
return "/cfg/common/domainForm";
}
@@ -81,7 +81,7 @@ public class RatelimitController extends CommonController {
@RequiresPermissions("ip:ratelimit: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/ratelimit");
model.addAttribute("urlPrefix","/proxy/ratelimit/ip");
model.addAttribute("requiresPermissionPrefix","ip:ratelimit");
return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+functionId;
}
@@ -89,7 +89,7 @@ public class RatelimitController extends CommonController {
@RequiresPermissions("domain:ratelimit:config")
public String deleteDomain(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
this._deleteDomain(cfgName, ids, compileIds, functionId, model);
model.addAttribute("urlPrefix","/manipulation/ratelimit");
model.addAttribute("urlPrefix","/manipulation/ratelimit/domain");
model.addAttribute("requiresPermissionPrefix","domain:ratelimit");
return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+functionId;
}
@@ -97,7 +97,7 @@ public class RatelimitController extends CommonController {
// @RequiresPermissions("ip:ratelimit:audit")
public String auditIp(String cfgName,String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) {
this._auditIp(cfgName,ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/manipulation/ratelimit");
redirectAttributes.addAttribute("urlPrefix","/manipulation/ratelimit/ip");
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:ratelimit");
return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+cfg.getFunctionId();
}
@@ -105,7 +105,7 @@ public class RatelimitController extends CommonController {
// @RequiresPermissions("domain:ratelimit:audit")
public String auditDomain(String ids,HttpUrlCfg cfg,RedirectAttributes redirectAttributes) {
this._auditDomain(ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/manipulation/ratelimit");
redirectAttributes.addAttribute("urlPrefix","/manipulation/ratelimit/domain");
redirectAttributes.addAttribute("requiresPermissionPrefix","domain:ratelimit");
return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+cfg.getFunctionId();
}

View File

@@ -129,7 +129,7 @@ public class WhiteListController extends BaseController{
}else{//修改
cfg.setEditorId(cfg.getCurrentUser().getId());
cfg.setEditTime(new Date());
stringCfgService.updateStringCfg((BaseStringCfg)cfg,null,null,null);
stringCfgService.updateStringCfg((BaseStringCfg)cfg);
}
addMessage(model,"save_success");
}catch(Exception e){

View File

@@ -39,7 +39,7 @@ public class ControlController extends CommonController {
@RequiresPermissions(value={"control:ip:config","control:ip:audit"},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/control");
model.addAttribute("urlPrefix","/proxy/control/ip");
model.addAttribute("requiresPermissionPrefix","control:ip");
return "/cfg/common/ipList";
}
@@ -47,7 +47,7 @@ public class ControlController extends CommonController {
@RequiresPermissions(value={"control:domain:config","control:domain:audit"},logical=Logical.OR)
public String domainList(String cfgName,Model model,@ModelAttribute("cfg")HttpUrlCfg cfg,HttpServletRequest request,HttpServletResponse response) {
this._domainList(cfgName,model, cfg, request, response);
model.addAttribute("urlPrefix","/proxy/control");
model.addAttribute("urlPrefix","/proxy/control/domain");
model.addAttribute("requiresPermissionPrefix","control:domain");
return "/cfg/common/domainList";
}
@@ -55,7 +55,7 @@ public class ControlController extends CommonController {
@RequiresPermissions(value={"control: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/control");
model.addAttribute("urlPrefix","/proxy/control/ip");
model.addAttribute("requiresPermissionPrefix","control:ip");
return "/cfg/common/ipForm";
}
@@ -63,7 +63,7 @@ public class ControlController extends CommonController {
@RequiresPermissions(value={"control:domain:config"})
public String domainForm(String cfgName,Model model,String ids,Integer functionId,BaseStringCfg entity) {
this._domainForm(cfgName, model, ids, functionId, entity);
model.addAttribute("urlPrefix","/proxy/control");
model.addAttribute("urlPrefix","/proxy/control/domain");
model.addAttribute("requiresPermissionPrefix","control:domain");
return "/cfg/common/domainForm";
}
@@ -81,7 +81,7 @@ public class ControlController extends CommonController {
@RequiresPermissions("control: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/control");
model.addAttribute("urlPrefix","/proxy/control/ip");
model.addAttribute("requiresPermissionPrefix","control:ip");
return "redirect:" + adminPath +"/proxy/control/ip/list?functionId="+functionId;
}
@@ -89,7 +89,7 @@ public class ControlController extends CommonController {
@RequiresPermissions("config:domain:config")
public String deleteDomain(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
this._deleteDomain(cfgName, ids, compileIds, functionId, model);
model.addAttribute("urlPrefix","/proxy/control");
model.addAttribute("urlPrefix","/proxy/control/domain");
model.addAttribute("requiresPermissionPrefix","control:domain");
return "redirect:" + adminPath +"/proxy/control/domain/list?functionId="+functionId;
}
@@ -97,7 +97,7 @@ public class ControlController extends CommonController {
// @RequiresPermissions("control:ip:audit")
public String auditIp(String cfgName,String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) {
this._auditIp(cfgName,ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/proxy/control");
redirectAttributes.addAttribute("urlPrefix","/proxy/control/ip");
redirectAttributes.addAttribute("requiresPermissionPrefix","control:ip");
return "redirect:" + adminPath +"/proxy/control/ip/list?functionId="+cfg.getFunctionId();
}
@@ -105,7 +105,7 @@ public class ControlController extends CommonController {
// @RequiresPermissions("control:domain:audit")
public String auditDomain(String ids,HttpUrlCfg cfg,RedirectAttributes redirectAttributes) {
this._auditDomain(ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/proxy/control");
redirectAttributes.addAttribute("urlPrefix","/proxy/control/domain");
redirectAttributes.addAttribute("requiresPermissionPrefix","control:domain");
return "redirect:" + adminPath +"/proxy/control/domain/list?functionId="+cfg.getFunctionId();
}

View File

@@ -29,7 +29,7 @@ public class InterceptController extends CommonController{
@RequiresPermissions(value={"intercept:ip:config","intercept:ip:audit"},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");
model.addAttribute("urlPrefix","/proxy/intercept/ip");
model.addAttribute("requiresPermissionPrefix","intercept:ip");
return "/cfg/common/ipList";
}
@@ -37,7 +37,7 @@ public class InterceptController extends CommonController{
@RequiresPermissions(value={"intercept:domain:config","intercept:domain:audit"},logical=Logical.OR)
public String domainList(String cfgName,Model model,@ModelAttribute("cfg")HttpUrlCfg cfg,HttpServletRequest request,HttpServletResponse response) {
this._domainList(cfgName,model, cfg, request, response);
model.addAttribute("urlPrefix","/proxy/intercept");
model.addAttribute("urlPrefix","/proxy/intercept/domain");
model.addAttribute("requiresPermissionPrefix","intercept:domain");
return "/cfg/common/domainList";
}
@@ -45,7 +45,7 @@ public class InterceptController extends CommonController{
@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");
model.addAttribute("urlPrefix","/proxy/intercept/ip");
model.addAttribute("requiresPermissionPrefix","intercept:ip");
return "/cfg/common/ipForm";
}
@@ -53,7 +53,7 @@ public class InterceptController extends CommonController{
@RequiresPermissions(value={"intercept:domain:config"})
public String domainForm(String cfgName,Model model,String ids,Integer functionId,BaseStringCfg entity) {
this._domainForm(cfgName, model, ids, functionId, entity);
model.addAttribute("urlPrefix","/proxy/intercept");
model.addAttribute("urlPrefix","/proxy/intercept/domain");
model.addAttribute("requiresPermissionPrefix","intercept:domain");
return "/cfg/common/domainForm";
}
@@ -71,7 +71,7 @@ public class InterceptController extends CommonController{
@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");
model.addAttribute("urlPrefix","/proxy/intercept/ip");
model.addAttribute("requiresPermissionPrefix","intercept:ip");
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId;
}
@@ -79,7 +79,7 @@ public class InterceptController extends CommonController{
@RequiresPermissions("intercept:domain:config")
public String deleteDomain(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
this._deleteDomain(cfgName, ids, compileIds, functionId, model);
model.addAttribute("urlPrefix","/proxy/intercept");
model.addAttribute("urlPrefix","/proxy/intercept/domain");
model.addAttribute("requiresPermissionPrefix","intercept:domain");
return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+functionId;
}
@@ -87,7 +87,7 @@ public class InterceptController extends CommonController{
// @RequiresPermissions("intercept:ip:audit")
public String auditIp(String cfgName,String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) {
this._auditIp(cfgName,ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/proxy/intercept");
redirectAttributes.addAttribute("urlPrefix","/proxy/intercept/ip");
redirectAttributes.addAttribute("requiresPermissionPrefix","intercept:ip");
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+cfg.getFunctionId();
}
@@ -95,7 +95,7 @@ public class InterceptController extends CommonController{
// @RequiresPermissions("intercept:domain:audit")
public String auditDomain(String ids,HttpUrlCfg cfg,RedirectAttributes redirectAttributes) {
this._auditDomain(ids, cfg, redirectAttributes);
redirectAttributes.addAttribute("urlPrefix","/proxy/intercept");
redirectAttributes.addAttribute("urlPrefix","/proxy/intercept/domain");
redirectAttributes.addAttribute("requiresPermissionPrefix","intercept:domain");
return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+cfg.getFunctionId();
}

View File

@@ -11,6 +11,7 @@ import com.nis.web.dao.MyBatisDao;
public interface PolicyGroupInfoDao extends CrudDao<PolicyGroupInfo> {
List<PolicyGroupInfo> findPolicyGroupInfoList(PolicyGroupInfo policyGroupInfo);
List<PolicyGroupInfo> findPolicyGroupInfos();
List<PolicyGroupInfo> findPolicyGroupInfosByType(int groupType);
PolicyGroupInfo getById(int id);
}

View File

@@ -66,6 +66,12 @@
FROM policy_group_info r
where r.is_valid=1
</select>
<select id="findPolicyGroupInfosByType" resultMap="PolicyGroupInfoMap">
SELECT
<include refid="PolicyGroupInfoColumns"/>
FROM policy_group_info r
where r.is_valid=1 and r.group_type=#{groupType,jdbcType=INTEGER}
</select>
<insert id="insert" parameterType="com.nis.domain.basics.PolicyGroupInfo" >
insert into policy_group_info(
IS_VALID,

View File

@@ -121,6 +121,77 @@
#{cfgRegionCode,jdbcType=INTEGER}
)
</insert>
<!-- insert 方法用于区域IP的批量处理请勿删除 -->
<insert id="insert" parameterType="com.nis.domain.configuration.AreaIpCfg" >
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="cfgId">
SELECT LAST_INSERT_ID()
</selectKey>
insert into area_ip_cfg (
CFG_DESC,
ACTION,
IS_VALID,
IS_AUDIT,
CREATOR_ID,
CREATE_TIME,
EDITOR_ID,
EDIT_TIME,
AUDITOR_ID,
AUDIT_TIME,
SERVICE_ID,
REQUEST_ID,
COMPILE_ID,
IS_AREA_EFFECTIVE,
CLASSIFY,
ATTRIBUTE,
LABLE,
AREA_EFFECTIVE_IDS,
function_id,
ip_type,
src_ip_address,
ip_pattern,
port_pattern,
src_port,
protocol,
protocol_id,
direction,
dest_port,
dest_ip_address,
cfg_type,
cfg_region_code
)values (
#{cfgDesc,jdbcType=VARCHAR},
#{action,jdbcType=INTEGER},
0,
0,
#{creatorId,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP},
#{editorId,jdbcType=INTEGER},
#{editTime,jdbcType=TIMESTAMP},
#{auditorId,jdbcType=INTEGER},
#{auditTime,jdbcType=TIMESTAMP},
#{serviceId,jdbcType=INTEGER},
#{requestId,jdbcType=INTEGER},
#{compileId,jdbcType=INTEGER},
#{isAreaEffective,jdbcType=INTEGER},
#{classify,jdbcType=VARCHAR},
#{attribute,jdbcType=VARCHAR},
#{lable,jdbcType=VARCHAR},
#{areaEffectiveIds,jdbcType=VARCHAR},
#{functionId,jdbcType=INTEGER},
#{ipType,jdbcType=INTEGER},
#{srcIpAddress,jdbcType=VARCHAR},
#{ipPattern,jdbcType=INTEGER},
#{portPattern,jdbcType=INTEGER},
#{srcPort,jdbcType=VARCHAR},
#{protocol,jdbcType=INTEGER},
#{protocolId,jdbcType=INTEGER},
#{direction,jdbcType=INTEGER},
#{destPort,jdbcType=VARCHAR},
#{destIpAddress,jdbcType=VARCHAR},
#{cfgType,jdbcType=VARCHAR},
#{cfgRegionCode,jdbcType=INTEGER}
)
</insert>
<!-- update av_voip_ip_cfg表信息 -->
<update id="updateAreaIpCfg" parameterType="com.nis.domain.configuration.AreaIpCfg" >

View File

@@ -35,13 +35,13 @@
<result column="area_effective_ids" property="areaEffectiveIds" jdbcType="VARCHAR" />
<result column="function_id" property="functionId" jdbcType="INTEGER" />
<result column="ratelimit" property="ratelimit" jdbcType="INTEGER" />
<result column="dns_strategy_id" property="dnsStrategyId" jdbcType="INTEGER" />
</resultMap>
<resultMap id="BaseIpMapWithUser" type="com.nis.domain.configuration.BaseIpCfg" extends="BaseIpMap" >
<result column="creator_name" property="creatorName" jdbcType="VARCHAR" />
<result column="auditor_name" property="auditorName" jdbcType="VARCHAR" />
<result column="editor_name" property="editorName" jdbcType="VARCHAR" />
<result column="group_name" property="groupName" jdbcType="VARCHAR" />
</resultMap>
<sql id="BaseIpCfg_Column_List_with_id" >
@@ -49,7 +49,7 @@
DIRECTION,PROTOCOL,PROTOCOL_ID,ACTION,IS_VALID,IS_AUDIT,
CREATOR_ID,CREATE_TIME,EDITOR_ID,EDIT_TIME,AUDITOR_ID,AUDIT_TIME,
SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY,
ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,FUNCTION_ID,RATELIMIT
ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,FUNCTION_ID,RATELIMIT,DNS_STRATEGY_ID
</sql>
<sql id="BaseIpCfg_Column_List_with_id_alias" >
<choose>
@@ -59,7 +59,8 @@
${page.alias}.DIRECTION as direction,${page.alias}.PROTOCOL as protocol,${page.alias}.PROTOCOL_ID as protocolId,${page.alias}.ACTION as action,${page.alias}.IS_VALID as isValid,${page.alias}.IS_AUDIT as isAudit,
${page.alias}.CREATOR_ID as creatorId,${page.alias}.CREATE_TIME AS createTime,${page.alias}.EDITOR_ID as editorId,${page.alias}.EDIT_TIME AS editTime,${page.alias}.AUDITOR_ID as auditorId,${page.alias}.AUDIT_TIME AS auditTime,
${page.alias}.SERVICE_ID as serviceId,${page.alias}.REQUEST_ID AS requestId,${page.alias}.COMPILE_ID AS compileId,${page.alias}.IS_AREA_EFFECTIVE as isAreaEffective,${page.alias}.classify,
${page.alias}.ATTRIBUTE AS attribute,${page.alias}.LABLE AS lable,${page.alias}.AREA_EFFECTIVE_IDS AS areaEffectiveIds,${page.alias}.FUNCTION_ID AS functionId,${page.alias}.RATELIMIT AS ratelimit
${page.alias}.ATTRIBUTE AS attribute,${page.alias}.LABLE AS lable,${page.alias}.AREA_EFFECTIVE_IDS AS areaEffectiveIds,${page.alias}.FUNCTION_ID AS functionId,${page.alias}.RATELIMIT AS ratelimit,
${page.alias}.DNS_STRATEGY_ID AS dnsStrategyId
</when>
<otherwise>
r.CFG_ID as cfgId, r.CFG_DESC as cfgDesc,r.CFG_REGION_CODE as cfgRegionCode,r.CFG_TYPE as cfgType, r.IP_TYPE as ipType,
@@ -67,7 +68,8 @@
r.DIRECTION as direction,r.PROTOCOL as protocol,r.PROTOCOL_ID as protocolId,r.ACTION as action,r.IS_VALID as isValid,r.IS_AUDIT as isAudit,
r.CREATOR_ID as creatorId,r.CREATE_TIME AS createTime,r.EDITOR_ID as editorId,r.EDIT_TIME AS editTime,r.AUDITOR_ID as auditorId,r.AUDIT_TIME AS auditTime,
r.SERVICE_ID as serviceId,r.REQUEST_ID AS requestId,r.COMPILE_ID AS compileId,r.IS_AREA_EFFECTIVE as isAreaEffective,r.classify,
r.ATTRIBUTE AS attribute,r.LABLE AS lable,r.AREA_EFFECTIVE_IDS AS areaEffectiveIds,r.FUNCTION_ID as functionId,r.RATELIMIT AS ratelimit
r.ATTRIBUTE AS attribute,r.LABLE AS lable,r.AREA_EFFECTIVE_IDS AS areaEffectiveIds,r.FUNCTION_ID as functionId,r.RATELIMIT AS ratelimit,
r.DNS_STRATEGY_ID AS dnsStrategyId
</otherwise>
</choose>
</sql>
@@ -81,7 +83,7 @@
AUDITOR_ID,AUDIT_TIME,SERVICE_ID,
REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,
CLASSIFY,ATTRIBUTE,LABLE,
AREA_EFFECTIVE_IDS,FUNCTION_ID,RATELIMIT
AREA_EFFECTIVE_IDS,FUNCTION_ID,RATELIMIT,DNS_STRATEGY_ID
</sql>
<sql id="BaseIpCfg_Value_List" >
#{cfgDesc,jdbcType=VARCHAR},#{cfgRegionCode,jdbcType=INTEGER},#{cfgType,jdbcType=VARCHAR},
@@ -93,7 +95,8 @@
#{auditorId,jdbcType=INTEGER},#{auditTime,jdbcType=TIMESTAMP},#{serviceId,jdbcType=INTEGER},
#{requestId,jdbcType=INTEGER},#{compileId,jdbcType=INTEGER},#{isAreaEffective,jdbcType=INTEGER},
#{classify,jdbcType=VARCHAR},#{attribute,jdbcType=VARCHAR},#{lable,jdbcType=VARCHAR},
#{areaEffectiveIds,jdbcType=VARCHAR}, #{functionId,jdbcType=INTEGER}, #{ratelimit,jdbcType=INTEGER}
#{areaEffectiveIds,jdbcType=VARCHAR}, #{functionId,jdbcType=INTEGER}, #{ratelimit,jdbcType=INTEGER},
#{dnsStrategyId,jdbcType=INTEGER}
</sql>
<select id="getById" resultMap="BaseIpMap" parameterType="java.lang.Long" >
SELECT
@@ -142,7 +145,7 @@
</choose> -->
<trim prefix="," prefixOverrides=",">
, s.name as creator_name,e.name as editor_name,u.name as auditor_name
,ri.request_title as requestName
,ri.request_title as requestName,po.group_name as group_name
</trim>
from ${tableName}
<choose>
@@ -155,6 +158,7 @@
left join sys_user e on r.editor_id=e.id
left join sys_user u on r.auditor_id=u.id
left join request_info ri on r.request_id=ri.id
left join policy_group_info po on r.dns_strategy_id=po.group_id
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="page !=null and page.where != null and page.where != ''">
AND ${page.where}
@@ -263,6 +267,9 @@
<if test="ratelimit != null">
AND ${page.alias}.RATELIMIT=#{ratelimit,jdbcType=INTEGER}
</if>
<if test="dnsStrategyId != null">
AND ${page.alias}.DNS_STRATEGY_ID=#{dnsStrategyId,jdbcType=INTEGER}
</if>
</when>
<otherwise>
<if test="cfgId != null">
@@ -367,6 +374,9 @@
<if test="ratelimit != null">
AND r.RATELIMIT=#{ratelimit,jdbcType=INTEGER}
</if>
<if test="dnsStrategyId != null">
AND r.DNS_STRATEGY_ID=#{dnsStrategyId,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<!-- 数据范围过滤 -->
@@ -511,11 +521,14 @@
area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR},
</if>
<if test="functionId != null">
FUNCTION_ID=#{functionId,jdbcType=INTEGER}
FUNCTION_ID=#{functionId,jdbcType=INTEGER},
</if>
<if test="ratelimit != null">
RATELIMIT=#{ratelimit,jdbcType=INTEGER}
RATELIMIT=#{ratelimit,jdbcType=INTEGER},
</if>
<if test="dnsStrategyId != null">
DNS_STRATEGY_ID=#{dnsStrategyId,jdbcType=INTEGER},
</if>
</trim>
</set>
where cfg_id = #{cfgId,jdbcType=BIGINT}

View File

@@ -16,6 +16,7 @@ import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.web.dao.CrudDao;
import com.nis.web.dao.configuration.AreaIpCfgDao;
import com.nis.web.dao.configuration.IpCfgDao;
/**
@@ -133,7 +134,7 @@ public abstract class CrudService<D extends CrudDao<T>, T extends BaseEntity<T>>
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
for(int index = 0; index < areaIpCfgs.size();index++){
AreaIpCfg t = areaIpCfgs.get(index);
((CrudDao<BaseIpCfg>) batchSqlSession.getMapper(IpCfgDao.class)).insert(t);
((CrudDao<AreaIpCfg>) batchSqlSession.getMapper(AreaIpCfgDao.class)).insert(t);
}
batchSqlSession.commit();
}finally {

View File

@@ -1,22 +1,14 @@
package com.nis.web.service.basics;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.Page;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.StringUtil;
import com.nis.web.dao.basics.PolicyGroupInfoDao;
import com.nis.web.security.UserUtils;
@@ -44,6 +36,10 @@ public class PolicyGroupInfoService extends BaseService{
List<PolicyGroupInfo> list=policyGroupInfoDao.findPolicyGroupInfos();
return list;
}
public List<PolicyGroupInfo> findPolicyGroupInfosByType(int type) {
List<PolicyGroupInfo> list=policyGroupInfoDao.findPolicyGroupInfosByType(type);
return list;
}
public PolicyGroupInfo getById(int id) {
PolicyGroupInfo policyGroupInfo=policyGroupInfoDao.getById(id);

View File

@@ -155,7 +155,7 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
BeanUtils.copyProperties(cfg, maatCfg);
String json="";
if(cfg.getIsAudit()==1){
if(Constants.DROP_ACTION==cfg.getAction()||Constants.LOOP_ACTION==cfg.getAction()){
if(Constants.SERVICE_IP_MULITIPLEX!=cfg.getServiceId().intValue() &&(Constants.DROP_ACTION==cfg.getAction()||Constants.LOOP_ACTION==cfg.getAction())){
List<InlineIp> ipList=new ArrayList<>();
InlineIp ip=convertCallBackIp(cfg,null);
ipList.add(ip);

View File

@@ -111,29 +111,6 @@ public class StringCfgService extends CrudService<StringCfgDao,BaseStringCfg> {
}
}
/**
*
* updateStringCfg(更新IP类配置)
* (继承BaseStringCfg这个类方可使用)
* @param baseStringCfg
* @return
*int
* @exception
* @since 1.0.0
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public int updateStringCfg(BaseStringCfg baseStringCfg,List<BaseIpCfg> addAreaCfg,List<BaseIpCfg> updateAreaCfg,List<BaseIpCfg> deleteAreaCfgs){
if(addAreaCfg!=null&&addAreaCfg.size()>0){
// this.saveIpBatch(addAreaCfg);
}
if(updateAreaCfg!=null&&updateAreaCfg.size()>0){
this.updateIpBatch(updateAreaCfg);
}
if(deleteAreaCfgs!=null&&deleteAreaCfgs.size()>0){
this.deleteIpBatch(deleteAreaCfgs);
}
return stringCfgDao.update(baseStringCfg);
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void updateStringCfg(BaseStringCfg cfg){
AreaIpCfg area=new AreaIpCfg();

View File

@@ -288,4 +288,5 @@ keyword_expr=***and***
#时区
time_zone=8
#需要特殊处理的业务类型
service_pxy_domain_intercept=513
service_pxy_domain_intercept=513
service_ip_mulitiplex=768

View File

@@ -76,7 +76,7 @@
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form id="cfgFrom"
action="${ctx}/proxy/intercept/domain/saveOrUpdate" method="post"
action="${ctx}/proxy/intercept/saveOrUpdate" method="post"
class="form-horizontal">
<input type="hidden" name="cfgName" value="${cfgName}">
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">

View File

@@ -55,7 +55,7 @@
<%-- <button type="button" class="btn btn-default" onclick="location='${ctx}/cfg/string/list?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}'"><spring:message code="refresh"></spring:message></button> --%>
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/proxy/intercept/domain/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
onClick="javascript:window.location='${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
</shiro:hasPermission>
@@ -71,7 +71,7 @@
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}${urlPrefix}/domain/list" method="post" class="form-search">
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}${urlPrefix}/list" method="post" class="form-search">
<input id="functionId" name="functionId" type="hidden" value="${cfg.functionId}"/>
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
@@ -114,8 +114,8 @@
</div>
<div class="pull-right">
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<sys:delRow url="${ctx}${urlPrefix}/domain/form?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}${urlPrefix}/domain/delete?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="delete"></sys:delRow>
<sys:delRow url="${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}${urlPrefix}/delete?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="delete"></sys:delRow>
</shiro:hasPermission>
<!-- <button type="button" class="btn btn-default">
<i class="fa fa-download"></i> 导出</button> -->
@@ -126,9 +126,9 @@
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right">
<li><sys:delRow url="${ctx}${urlPrefix}/domain/audit?isAudit=1&isValid=1&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/domain/audit?isAudit=2&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/domain/audit?isAudit=3&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="cancelPass"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/audit?isAudit=1&isValid=1&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/audit?isAudit=2&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/audit?isAudit=3&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission>

View File

@@ -41,7 +41,10 @@ $(function(){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
},
submitHandler: function(form){
if($("#dnsStrategyId")){
$("#cfgRegionCode").val($("#cfgRegionCodeMaat").val());
$("#cfgType").val($("#cfgTypeMaat").val());
}
//loading('onloading...');
form.submit();
},
@@ -67,7 +70,7 @@ $(function(){
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form id="ipCfgFrom" action="${ctx}${urlPrefix}/ip/saveOrUpdate" method="post" class="form-horizontal">
<form id="ipCfgFrom" action="${ctx}${urlPrefix}/saveOrUpdate" method="post" class="form-horizontal">
<div class="form-body row">
<input name="cfgName" type="hidden" value="${cfgName}"/>
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
@@ -145,6 +148,23 @@ $(function(){
</c:if>
</c:forEach>
<%@include file="/WEB-INF/include/form/ipInfo.jsp" %>
<c:if test="${specialProtocol ne null and specialProtocol eq 'ipmulitiplex'}">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="group_name"/></label>
<div class="col-md-6">
<select id="dnsStrategyId" name="dnsStrategyId" class="selectpicker show-tick form-control">
<option value="0"><spring:message code="select"/></option>
<c:forEach items="${policyGroups }" var="policyGroup">
<option value="${policyGroup.groupId}" <c:if test="${_cfg.dnsStrategyId==policyGroup.groupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach>
</select>
</div>
</div>
</div>
</div>
</c:if>
<%@include file="/WEB-INF/include/form/areaInfo.jsp" %>
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</div>

View File

@@ -63,12 +63,16 @@
</script>
</head>
<body>
<c:forEach items="${fns:getDictList('SPECIAL_FUNCTION_ID')}" var="sfi">
<c:if test="${sfi.itemCode==cfg.functionId}">
<c:set var="specialFunctionId" value="${sfi.itemValue}"/>
</c:if>
</c:forEach>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}${urlPrefix}/ip/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
onClick="javascript:window.location='${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
</shiro:hasPermission>
@@ -83,7 +87,7 @@
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}${urlPrefix}/ip/list" method="post" class="form-search">
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}${urlPrefix}/list" method="post" class="form-search">
<input id="functionId" name="functionId" type="hidden" value="${cfg.functionId}"/>
<input name="cfgName" type="hidden" value="${cfgName}"/>
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
@@ -128,8 +132,8 @@
</div>
<div class="pull-right">
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<sys:delRow url="${ctx}${urlPrefix}/ip/form?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}${urlPrefix}/ip/delete?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="delete"></sys:delRow>
<sys:delRow url="${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}${urlPrefix}/delete?functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="delete"></sys:delRow>
</shiro:hasPermission>
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<div class="btn-group">
@@ -138,9 +142,9 @@
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right">
<li><sys:delRow url="${ctx}${urlPrefix}/ip/audit?isAudit=1&isValid=1&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/ip/audit?isAudit=2&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/ip/audit?isAudit=3&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="cancelPass"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/audit?isAudit=1&isValid=1&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/audit?isAudit=2&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="${ctx}${urlPrefix}/audit?isAudit=3&isValid=0&functionId=${cfg.functionId}&cfgName=${cfgName}" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission>
@@ -226,6 +230,9 @@
<th><spring:message code="direction"/></th>
<th><spring:message code="protocol"/></th>
<th><spring:message code="whether_area_block"/></th>
<c:if test="${specialFunctionId ne null and specialFunctionId eq 'ipmulitiplex'}">
<th><spring:message code="group_name"/></th>
</c:if>
<th><spring:message code="letter"/></th>
<th><spring:message code="type"/></th>
<th><spring:message code="attribute"/></th>
@@ -278,6 +285,9 @@
</a>
</c:if>
</td>
<c:if test="${specialFunctionId ne null and specialFunctionId eq 'ipmulitiplex'}">
<td>${cfg.groupName }</td>
</c:if>
<td>${cfg.requestName }</td>
<td>
<c:set var="classify"></c:set>