From d630f20b17fe1aafa2bea0123c2aee1904bffa86 Mon Sep 17 00:00:00 2001 From: wangxin Date: Sat, 23 Jun 2018 15:34:21 +0800 Subject: [PATCH] =?UTF-8?q?(1)=E5=85=B1=E7=94=A8=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E7=A7=BB=E5=8A=A8=20(2)IP=E9=99=90=E6=B5=81?= =?UTF-8?q?=EF=BC=8C=E5=9F=9F=E5=90=8D=E9=99=90=E6=B5=81=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=20(3)=E9=A1=B5=E9=9D=A2=E9=83=A8=E5=88=86=E6=9D=83=E9=99=90bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20(4)=E9=83=A8=E5=88=86=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manipulation/RatelimitController.java | 112 ++++++++++++++++++ .../proxy/ControlController.java | 14 +-- .../proxy/InterceptController.java | 8 +- .../resources/messages/message_en.properties | 19 ++- .../resources/messages/message_ru.properties | 19 ++- .../messages/message_zh_CN.properties | 19 ++- .../cfg/{proxy => common}/domainForm.jsp | 0 .../cfg/{proxy => common}/domainList.jsp | 0 .../views/cfg/{proxy => common}/ipForm.jsp | 0 .../views/cfg/{proxy => common}/ipList.jsp | 0 10 files changed, 177 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/nis/web/controller/configuration/manipulation/RatelimitController.java rename src/main/webapp/WEB-INF/views/cfg/{proxy => common}/domainForm.jsp (100%) rename src/main/webapp/WEB-INF/views/cfg/{proxy => common}/domainList.jsp (100%) rename src/main/webapp/WEB-INF/views/cfg/{proxy => common}/ipForm.jsp (100%) rename src/main/webapp/WEB-INF/views/cfg/{proxy => common}/ipList.jsp (100%) diff --git a/src/main/java/com/nis/web/controller/configuration/manipulation/RatelimitController.java b/src/main/java/com/nis/web/controller/configuration/manipulation/RatelimitController.java new file mode 100644 index 000000000..4d6e431a3 --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/manipulation/RatelimitController.java @@ -0,0 +1,112 @@ +/** + *@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 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.configuration.BaseIpCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.HttpUrlCfg; +import com.nis.domain.configuration.IpPortCfg; +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 ///manipulation/ratelimit/domain/list?cfgName=domain_ratelimit +@RequestMapping("${adminPath}/manipulation/ratelimit") +public class RatelimitController extends CommonController { + @RequestMapping(value = {"/ip/list"}) + @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("requiresPermissionPrefix","ip:ratelimit"); + return "/cfg/common/ipList"; + } + @RequestMapping(value = {"/domain/list"}) + @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("requiresPermissionPrefix","domain:ratelimit"); + return "/cfg/common/domainList"; + } + @RequestMapping(value = {"/ip/form"}) + @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("requiresPermissionPrefix","ip:ratelimit"); + return "/cfg/common/ipForm"; + } + @RequestMapping(value = {"/domain/form"}) + @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("requiresPermissionPrefix","domain:ratelimit"); + return "/cfg/common/domainForm"; + } + @RequestMapping(value = {"/ip/saveOrUpdate"}) + public String saveOrUpdateIp(String cfgName,RedirectAttributes model, IpPortCfg cfg) { + this._saveOrUpdateIp(cfgName,model, cfg); + return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+cfg.getFunctionId(); + } + @RequestMapping(value = {"/domain/saveOrUpdate"}) + public String saveOrUpdateDomain(String cfgName,RedirectAttributes model, HttpUrlCfg cfg) { + this._saveOrUpdateDomain(cfgName, model, cfg); + return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+cfg.getFunctionId(); + } + @RequestMapping(value = {"/ip/delete"}) + @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("requiresPermissionPrefix","ip:ratelimit"); + return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+functionId; + } + @RequestMapping(value = {"/domain/delete"}) + @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("requiresPermissionPrefix","domain:ratelimit"); + return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+functionId; + } + @RequestMapping(value = {"/ip/audit"}) +// @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("requiresPermissionPrefix","ip:ratelimit"); + return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+cfg.getFunctionId(); + } + @RequestMapping(value = {"/domain/audit"}) +// @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("requiresPermissionPrefix","domain:ratelimit"); + return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+cfg.getFunctionId(); + } +} diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/ControlController.java b/src/main/java/com/nis/web/controller/configuration/proxy/ControlController.java index f645ed554..33f476aa2 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/ControlController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/ControlController.java @@ -41,15 +41,15 @@ public class ControlController extends CommonController { this._ipList(cfgName,model, cfg, request, response); model.addAttribute("urlPrefix","/proxy/control"); model.addAttribute("requiresPermissionPrefix","control:ip"); - return "/cfg/proxy/ipList"; + return "/cfg/common/ipList"; } @RequestMapping(value = {"/domain/list"}) - @RequiresPermissions(value={"control:ip:config","control:ip:audit"},logical=Logical.OR) + @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("requiresPermissionPrefix","control:domain"); - return "/cfg/proxy/domainList"; + return "/cfg/common/domainList"; } @RequestMapping(value = {"/ip/form"}) @RequiresPermissions(value={"control:ip:config"}) @@ -57,15 +57,15 @@ public class ControlController extends CommonController { this._ipForm(cfgName,model, ids, functionId, entity); model.addAttribute("urlPrefix","/proxy/control"); model.addAttribute("requiresPermissionPrefix","control:ip"); - return "/cfg/proxy/ipForm"; + return "/cfg/common/ipForm"; } @RequestMapping(value = {"/domain/form"}) - @RequiresPermissions(value={"intercept:domain:config"}) + @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("requiresPermissionPrefix","control:domain"); - return "/cfg/proxy/domainForm"; + return "/cfg/common/domainForm"; } @RequestMapping(value = {"/ip/saveOrUpdate"}) public String saveOrUpdateIp(String cfgName,RedirectAttributes model, IpPortCfg cfg) { @@ -91,7 +91,7 @@ public class ControlController extends CommonController { this._deleteDomain(cfgName, ids, compileIds, functionId, model); model.addAttribute("urlPrefix","/proxy/control"); model.addAttribute("requiresPermissionPrefix","control:domain"); - return "redirect:" + adminPath +"/proxy/config/domain/list?functionId="+functionId; + return "redirect:" + adminPath +"/proxy/control/domain/list?functionId="+functionId; } @RequestMapping(value = {"/ip/audit"}) // @RequiresPermissions("control:ip:audit") diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java index 85c030d8d..eb61e8519 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java @@ -31,7 +31,7 @@ public class InterceptController extends CommonController{ this._ipList(cfgName,model, cfg, request, response); model.addAttribute("urlPrefix","/proxy/intercept"); model.addAttribute("requiresPermissionPrefix","intercept:ip"); - return "/cfg/proxy/ipList"; + return "/cfg/common/ipList"; } @RequestMapping(value = {"/domain/list"}) @RequiresPermissions(value={"intercept:domain:config","intercept:domain:audit"},logical=Logical.OR) @@ -39,7 +39,7 @@ public class InterceptController extends CommonController{ this._domainList(cfgName,model, cfg, request, response); model.addAttribute("urlPrefix","/proxy/intercept"); model.addAttribute("requiresPermissionPrefix","intercept:domain"); - return "/cfg/proxy/domainList"; + return "/cfg/common/domainList"; } @RequestMapping(value = {"/ip/form"}) @RequiresPermissions(value={"intercept:ip:config"}) @@ -47,7 +47,7 @@ public class InterceptController extends CommonController{ this._ipForm(cfgName,model, ids, functionId, entity); model.addAttribute("urlPrefix","/proxy/intercept"); model.addAttribute("requiresPermissionPrefix","intercept:ip"); - return "/cfg/proxy/ipForm"; + return "/cfg/common/ipForm"; } @RequestMapping(value = {"/domain/form"}) @RequiresPermissions(value={"intercept:domain:config"}) @@ -55,7 +55,7 @@ public class InterceptController extends CommonController{ this._domainForm(cfgName, model, ids, functionId, entity); model.addAttribute("urlPrefix","/proxy/intercept"); model.addAttribute("requiresPermissionPrefix","intercept:domain"); - return "/cfg/proxy/domainForm"; + return "/cfg/common/domainForm"; } @RequestMapping(value = {"/ip/saveOrUpdate"}) public String saveOrUpdateIp(String cfgName,RedirectAttributes model, IpPortCfg cfg) { diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 83d73cc31..62c559e44 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -666,9 +666,26 @@ contrl_message=contrl message data_message=data message user_name=user name #===========log end ============= +#=============about proxy========= +intercept_policy=intercept policy +ip_intercept=ip intercept +domain_intercept=domain intercept +control_policy=control policy +domain_forward=domain forward +http_redirect=http redirect +http_req_replace=http request replace +http_res_replace=http response replace +#=============about proxy========= #===========policy_group_manage start ============= all_types=all types group_type=group type group_name=group name policy_group_manage=strateagy grouping management -#===========policy_group_manage end ============= \ No newline at end of file +#===========policy_group_manage end ============= +#=============about manipulation========= +ip_multiplex_policy=ip multiplex policy +target_ip_protect=target ip protect +ratelimit_config=ratelimit config +ip_ratelimit=ip ratelimit +domain_ratelimit=domain ratelimit +#=============about manipulation========= diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 506e425bf..a4fa09bfc 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -490,9 +490,26 @@ contrl_message=contrl message data_message=data message user_name=user name #===========log end ============= +#=============about proxy========= +intercept_policy=intercept policy +ip_intercept=ip intercept +domain_intercept=domain intercept +control_policy=control policy +domain_forward=domain forward +http_redirect=http redirect +http_req_replace=http request replace +http_res_replace=http response replace +#=============about proxy========= #===========policy_group_manage start ============= all_types=all types group_type=group type group_name=group name policy_group_manage=strateagy grouping management -#===========policy_group_manage end ============= \ No newline at end of file +#===========policy_group_manage end ============= +#=============about manipulation========= +ip_multiplex_policy=ip multiplex policy +target_ip_protect=target ip protect +ratelimit_config=ratelimit config +ip_ratelimit=ip ratelimit +domain_ratelimit=domain ratelimit +#=============about manipulation========= \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 64810f5ba..180943f61 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -696,9 +696,26 @@ contrl_message=\u63a7\u5236\u62a5\u6587 data_message=\u6570\u636e\u62a5\u6587 user_name=\u7528\u6237\u540d\u79f0 #===========log end ============= +#=============about proxy========= +intercept_policy=\u62E6\u622A\u7B56\u7565 +ip_intercept=IP\u62E6\u622A +domain_intercept=\u57DF\u540D\u62E6\u622A +control_policy=\u63A7\u5236\u7B56\u7565 +domain_forward=\u57DF\u540D\u8F6C\u53D1 +http_redirect=http\u91CD\u5B9A\u5411 +http_req_replace=http\u8BF7\u6C42\u66FF\u6362 +http_res_replace=http\u54CD\u5E94\u66FF\u6362 +#=============about proxy========= #===========policy_group_manage start ============= all_types=\u6240\u6709\u7c7b\u578b group_type=\u5206\u7ec4\u7c7b\u578b group_name=\u5206\u7ec4\u540d\u79f0 policy_group_manage=\u7b56\u7565\u5206\u7ec4\u7ba1\u7406 -#===========policy_group_manage end ============= \ No newline at end of file +#===========policy_group_manage end ============= +#=============about manipulation========= +ip_multiplex_policy=ip\u590D\u7528\u7B56\u7565 +target_ip_protect=\u76EE\u6807IP\u9632\u62A4 +ratelimit_config=\u9650\u6D41\u7BA1\u7406 +ip_ratelimit=ip\u9650\u6D41 +domain_ratelimit=\u57DF\u540D\u9650\u6D41 +#=============about manipulation========= \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/domainForm.jsp b/src/main/webapp/WEB-INF/views/cfg/common/domainForm.jsp similarity index 100% rename from src/main/webapp/WEB-INF/views/cfg/proxy/domainForm.jsp rename to src/main/webapp/WEB-INF/views/cfg/common/domainForm.jsp diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/domainList.jsp b/src/main/webapp/WEB-INF/views/cfg/common/domainList.jsp similarity index 100% rename from src/main/webapp/WEB-INF/views/cfg/proxy/domainList.jsp rename to src/main/webapp/WEB-INF/views/cfg/common/domainList.jsp diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/ipForm.jsp b/src/main/webapp/WEB-INF/views/cfg/common/ipForm.jsp similarity index 100% rename from src/main/webapp/WEB-INF/views/cfg/proxy/ipForm.jsp rename to src/main/webapp/WEB-INF/views/cfg/common/ipForm.jsp diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/ipList.jsp b/src/main/webapp/WEB-INF/views/cfg/common/ipList.jsp similarity index 100% rename from src/main/webapp/WEB-INF/views/cfg/proxy/ipList.jsp rename to src/main/webapp/WEB-INF/views/cfg/common/ipList.jsp