diff --git a/src/main/java/com/nis/web/controller/configuration/IpCfgController.java b/src/main/java/com/nis/web/controller/configuration/IpCfgController.java index e5658cc75..1f000bb1c 100644 --- a/src/main/java/com/nis/web/controller/configuration/IpCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/IpCfgController.java @@ -1,7 +1,19 @@ package com.nis.web.controller.configuration; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; 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.bind.annotation.RequestMethod; + +import com.nis.domain.Page; +import com.nis.domain.ServiceConfigInfo; +import com.nis.domain.configuration.BaseIpCfg; +import com.nis.web.controller.BaseController; /** * IP相关配置控制类 @@ -10,8 +22,9 @@ import org.springframework.web.bind.annotation.RequestMapping; */ @Controller @RequestMapping("${adminPath}/cfg/ip") -public class IpCfgController { - +public class IpCfgController extends BaseController{ +// @Autowired +// protected IpCfgService ipCfgService; @RequestMapping(value = {"ipWhiteList"}) public String ipWhiteList() { @@ -24,15 +37,75 @@ public class IpCfgController { return "/cfg/ipWhiteForm"; } - @RequestMapping(value = {"ipBlockList"}) - public String ipBlockList() { + public String ipBlockList(Model model,BaseIpCfg baseIpCfg,HttpServletRequest request,HttpServletResponse response) { + if(baseIpCfg!=null){ + Integer serviceId=baseIpCfg.getServiceId(); + logger.info("sercice id is "+serviceId); + if(serviceId!=null){ + ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId); + if(serviceConfigInfo!=null){ + String tableName=serviceConfigInfo.getTableName(); + if(!StringUtils.isBlank(tableName)){ + logger.info("table name is "+tableName); + baseIpCfg.setTableName(tableName); + Page page = ipCfgService.findPage(new Page(request, response, 1), baseIpCfg); + model.addAttribute("page", page); + model.addAttribute("serviceId", serviceId); + } + } + } + } + return "/cfg/ipBlockList"; } @RequestMapping(value = {"ipBlockForm"}) - public String ipBlockForm() { + public String ipBlockForm(Integer serviceId,Model model,HttpServletRequest request,HttpServletResponse response) { + logger.info("sercice id is "+serviceId); + System.out.println("ipBlockForm loaded"); + if(serviceId!=null){ + ServiceConfigInfo serviceConfigInfo=serviceConfigInfoService.findSysServiceConfigInfo(serviceId); + if(serviceConfigInfo!=null){ + String tableName=serviceConfigInfo.getTableName(); + if(!StringUtils.isBlank(tableName)){ + logger.info("table name is "+tableName); + String className=ipCfgService.getClassName(tableName); + logger.info("class name is "+className); + String packageName=BaseIpCfg.class.getPackage().getName(); + try { + //通过反射获得BaseIpCfg的子类的实例,并调用子类的initDefaultValue初始化默认值 + Class clazz=Class.forName(packageName+"."+className); + BaseIpCfg ipcfg=(BaseIpCfg)clazz.newInstance(); + ipcfg.setTableName(tableName); + ipcfg.initDefaultValue(); + model.addAttribute("_ipCfg", ipcfg); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { + // TODO Auto-generated catch block + logger.error("打开新增IP窗口失败",e); + e.printStackTrace(); + } + } + } + } + + return "/cfg/ipBlockForm"; + } + /** + * + * addIpPortCfg(新增IP配置) + * (这里描述这个方法适用条件 – 可选) + * @return + *String + * @exception + * @since 1.0.0 + */ + @RequestMapping(method=RequestMethod.POST,value = {"addIpCfg"}) + public String addIpCfg(@ModelAttribute("ipCfg") BaseIpCfg ipCfg) { + if(ipCfg!=null&&!StringUtils.isBlank(ipCfg.getTableName())){ + int result=ipCfgService.addIpCfg(ipCfg); + } return "/cfg/ipBlockForm"; } diff --git a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java index 296b047b8..20ee186b6 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java @@ -1,11 +1,26 @@ package com.nis.web.dao.configuration; +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.configuration.BaseIpCfg; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; /** * IP相关配置数据处理类 * @author dell * */ -public class IpCfgDao { - +@MyBatisDao +public interface IpCfgDao extends CrudDao{ + public BaseIpCfg getById(@Param("tableName")String tableName,@Param("cfgId")Long id) ; + public BaseIpCfg get(BaseIpCfg entity) ; + public List findList(BaseIpCfg entity) ; + public List findAllList(BaseIpCfg entity) ; + public int insert(BaseIpCfg entity) ; + public int updateByPrimaryKeySelective(BaseIpCfg entity) ; + public int updateValid(BaseIpCfg entity) ; + public int delete(BaseIpCfg entity) ; } diff --git a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml new file mode 100644 index 000000000..ab4e44f49 --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CFG_ID, CFG_DESC, IP_TYPE, SRC_IP, SRC_IP_MASK, SRC_PORT, + SRC_PORT_MASK ,DST_IP ,DST_IP_MASK, DST_PORT, DST_PORT_MASK, + 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 + + + CFG_DESC, IP_TYPE, SRC_IP, SRC_IP_MASK, SRC_PORT, + SRC_PORT_MASK ,DST_IP ,DST_IP_MASK, DST_PORT, DST_PORT_MASK, + 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 + + + #{cfgDesc,jdbcType=VARCHAR},#{ipType,jdbcType=INTEGER}, + #{srcIp,jdbcType=VARCHAR},#{srcIpMask,jdbcType=VARCHAR},#{srcPort,jdbcType=VARCHAR}, + #{srcPortMask,jdbcType=VARCHAR},#{dstIp,jdbcType=VARCHAR},#{dstIpMask,jdbcType=VARCHAR}, + #{dstPort,jdbcType=VARCHAR},#{dstPortMask,jdbcType=VARCHAR},#{direction,jdbcType=INTEGER}, + #{protocol,jdbcType=INTEGER},#{protocolId,jdbcType=INTEGER},#{action,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER},#{isAudit,jdbcType=INTEGER},#{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} + + + + + + + SELECT LAST_INSERT_ID() + + insert into ${tableName} ( + + )values ( + + ) + + + update ${tableName} + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + ip_type = #{ipType,jdbcType=INTEGER}, + + + src_ip = #{srcIp,jdbcType=VARCHAR}, + + + src_ip_mask = #{srcIpMask,jdbcType=VARCHAR}, + + + src_port = #{srcPort,jdbcType=VARCHAR}, + + + src_port_mask = #{srcPortMask,jdbcType=VARCHAR}, + + + dst_ip = #{dstIp,jdbcType=VARCHAR}, + + + dst_ip_mask = #{dstIpMask,jdbcType=VARCHAR}, + + + dst_port = #{dstPort,jdbcType=VARCHAR}, + + + dst_port_mask = #{srcPortMask,jdbcType=VARCHAR}, + + + direction = #{direction,jdbcType=INTEGER}, + + + protocol = #{protocol,jdbcType=INTEGER}, + + + protocol_id = #{protocolId,jdbcType=INTEGER}, + + + action = #{action,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + creator_id = #{creatorId,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + + auditor_id = #{auditorId,jdbcType=INTEGER}, + + + audit_time = #{auditTime,jdbcType=TIMESTAMP}, + + + service_id = #{serviceId,jdbcType=INTEGER}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + compile_id = #{compileId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR} + + + where cfg_id = #{cfgId,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/systemService/ServiceConfigInfoDao.java b/src/main/java/com/nis/web/dao/systemService/ServiceConfigInfoDao.java index 8b2cb85b3..6d84a74b5 100644 --- a/src/main/java/com/nis/web/dao/systemService/ServiceConfigInfoDao.java +++ b/src/main/java/com/nis/web/dao/systemService/ServiceConfigInfoDao.java @@ -1,5 +1,11 @@ package com.nis.web.dao.systemService; -public interface ServiceConfigInfoDao { +import org.apache.ibatis.annotations.Param; +import com.nis.domain.ServiceConfigInfo; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; +@MyBatisDao +public interface ServiceConfigInfoDao extends CrudDao{ + public ServiceConfigInfo findSysServiceConfigInfo(@Param("service_id")int serviceId); } diff --git a/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java b/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java index de3b35ea0..65dbe0e36 100644 --- a/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java +++ b/src/main/java/com/nis/web/dao/systemService/SystemServiceInfoDao.java @@ -1,10 +1,11 @@ package com.nis.web.dao.systemService; +import org.apache.ibatis.annotations.Param; + import com.nis.domain.SystemServiceInfo; import com.nis.web.dao.CrudDao; import com.nis.web.dao.MyBatisDao; @MyBatisDao public interface SystemServiceInfoDao extends CrudDao { - } diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index 3af041c88..57254769b 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.Lists; import com.nis.domain.SysRole; import com.nis.domain.SysUser; +import com.nis.util.Configurations; import com.nis.util.StringUtils; /** @@ -142,8 +143,32 @@ public abstract class BaseService { return scopeSql.toString(); } - - + /** + * + * getTableName(获取Class对应的表名) + * (这里描述这个方法适用条件 – 可选) + * @param clazz + * @return + *String + * @exception + * @since 1.0.0 + */ + public String getTableName(String clazz){ + return Configurations.getStringProperty(clazz, null); + } + /** + * + * getTableName(获取表名对应的Class) + * (这里描述这个方法适用条件 – 可选) + * @param clazz + * @return + *String + * @exception + * @since 1.0.0 + */ + public String getClassName(String tableName){ + return Configurations.getStringProperty(tableName, null); + } diff --git a/src/main/java/com/nis/web/service/CrudService.java b/src/main/java/com/nis/web/service/CrudService.java index d022bac38..c91f75056 100644 --- a/src/main/java/com/nis/web/service/CrudService.java +++ b/src/main/java/com/nis/web/service/CrudService.java @@ -3,7 +3,6 @@ */ package com.nis.web.service; -import java.lang.reflect.Field; import java.util.List; import org.apache.ibatis.session.ExecutorType; @@ -13,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired; import com.nis.domain.BaseEntity; import com.nis.domain.Page; -import com.nis.util.Constants; import com.nis.web.dao.CrudDao; /** diff --git a/src/main/java/com/nis/web/service/configuration/IpCfgService.java b/src/main/java/com/nis/web/service/configuration/IpCfgService.java index 609f50b49..f3ffbbea3 100644 --- a/src/main/java/com/nis/web/service/configuration/IpCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/IpCfgService.java @@ -1,13 +1,88 @@ package com.nis.web.service.configuration; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.nis.domain.configuration.BaseIpCfg; +import com.nis.web.dao.configuration.IpCfgDao; +import com.nis.web.service.CrudService; + /** * IP相关配置事务类 * @author dell * */ @Service -public class IpCfgService { - +public class IpCfgService extends CrudService { + @Autowired + protected IpCfgDao ipCfgDao; + /** + * + * addIpCfg(新增IP类配置) + * (继承BaseIpCfg这个类方可使用) + * @param baseIpCfg + * @return + *int + * @exception + * @since 1.0.0 + */ + public int addIpCfg(BaseIpCfg baseIpCfg){ + String tableName=getTableName(baseIpCfg.getClass().getSimpleName()); + if(StringUtils.isBlank(tableName)) + return 0; + baseIpCfg.setTableName(tableName); + logger.info("save "+tableName); + return ipCfgDao.insert(baseIpCfg); + } + /** + * + * updateIpCfg(更新IP类配置) + * (继承BaseIpCfg这个类方可使用) + * @param baseIpCfg + * @return + *int + * @exception + * @since 1.0.0 + */ + public int updateIpCfg(BaseIpCfg baseIpCfg){ + String tableName=getTableName(baseIpCfg.getClass().getSimpleName()); + baseIpCfg.setTableName(tableName); + logger.info("update "+tableName); + return ipCfgDao.updateByPrimaryKeySelective(baseIpCfg); + } + /** + * + * getIpCfg(根据IP与类名获取IP配置) + * (继承BaseIpCfg这个类方可使用) + * @param clazz + * @param id + * @return + *BaseIpCfg + * @exception + * @since 1.0.0 + */ + public BaseIpCfg getIpCfgById(Class clazz,long id){ + String tableName=getTableName(clazz.getSimpleName()); + logger.info("get "+tableName); + return ipCfgDao.getById(tableName, id); + } + /** + * + * getIpCfg(根据IP与类名获取IP配置) + * (继承BaseIpCfg这个类方可使用) + * @param clazz + * @param id + * @return + *BaseIpCfg + * @exception + * @since 1.0.0 + */ + public BaseIpCfg getIpCfgById(BaseIpCfg baseIpCfg){ + String tableName=getTableName(baseIpCfg.getClass().getSimpleName()); + baseIpCfg.setTableName(tableName); + logger.info("get "+tableName); + return ipCfgDao.get(baseIpCfg); + } + } diff --git a/src/main/java/com/nis/web/service/systemService/ServiceConfigInfoService.java b/src/main/java/com/nis/web/service/systemService/ServiceConfigInfoService.java new file mode 100644 index 000000000..58611bf69 --- /dev/null +++ b/src/main/java/com/nis/web/service/systemService/ServiceConfigInfoService.java @@ -0,0 +1,16 @@ +package com.nis.web.service.systemService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.ServiceConfigInfo; +import com.nis.web.dao.systemService.ServiceConfigInfoDao; + +@Service +public class ServiceConfigInfoService { + @Autowired + protected ServiceConfigInfoDao serviceConfigInfoDao; + public ServiceConfigInfo findSysServiceConfigInfo(int serviceId){ + return serviceConfigInfoDao.findSysServiceConfigInfo(serviceId); + } +}