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