package edu.sjtu.infosec.ismp.manager.RAM.dao; import java.util.List; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseInfoAsse; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseInfoProj; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDicAsseKind; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDynaVuln; import edu.sjtu.infosec.ismp.manager.comm.model.page.Page; /** * 数据层 动态脆弱点分析Dao访问接口. **/ public interface VulnAnalDao { /** * 保存/更新动态脆弱点 * * @param dynaVulnPoint * 动态脆弱点 **/ void saveOrUpdate(AsseKnowDynaVuln dynaVulnPoint); /** * 批量保存/更新动态脆弱点 * * @param dynaVulnPoints * 动态脆弱点列表 **/ void batchSaveOrUpdate(List<AsseKnowDynaVuln> dynaVulnPoints); /** * 删除动态脆弱点 * * @param dynaVulnPoint * 动态脆弱点 **/ void remove(AsseKnowDynaVuln dynaVulnPoint); /** * 批量删除动态脆弱点 * * @param dynaVulnPoints * 动态脆弱点列表 **/ void remove(List<AsseKnowDynaVuln> dynaVulnPoints); /** * 查询动态脆弱点 * * @param id * 动态脆弱点id * @return 动态脆弱点对象 **/ AsseKnowDynaVuln find(Integer id); Object[] findByDwr(Integer id); /** * 查询动态脆弱点数量 * @param asseInfoProj * 测评项目 * @param asseInfoAsse * 资产 * @return 动态脆弱点数量 **/ int getCount(AsseInfoProj asseInfoProj, AsseInfoAsse asseInfoAsse); /** * 查询动态脆弱点分页记录 * @param startResult * 分页对象 * @param maxResult * 测评项目 * @param asseInfoAsse * 资产 * @return 分页记录列表 **/ List<AsseKnowDynaVuln> listDynaVulnPoint(int startResult,int maxResult,AsseInfoProj asseInfoProj,AsseInfoAsse asseInfoAsse); /** * 查询动态脆弱点记录 * @param asseInfoProj * @return 记录列表 **/ List<AsseKnowDynaVuln> listDynaVulnPoint(Integer asseInfoProjId); /** * 查询动态脆弱点记录 * @param asseInfoProj * 测评项目编号 * @param asseKnowStatVulnKindId * 脆弱点类别编号 * @return 记录列表 **/ List<AsseKnowDynaVuln> listDynaVulnPointByKind(Integer asseInfoProjId, Integer asseKnowStatVulnKindId); List listDynaVulnPointByKindDwr(String asseInfoProjId, String asseKnowStatVulnKindId); /** * 检查是否已存在该脆弱点 * @param asseInfoProjId * 测评项目Id * @param asseInfoAsse * 关联资产 * @param asseKnowStatVulnPoinId * 脆弱点Id * @return 是否已存在 **/ boolean checkExitDynaVulnPoint(Integer asseInfoProjId, AsseInfoAsse asseInfoAsse, Integer asseKnowStatVulnPoinId); /** * 查询严重性为高的动态脆弱点数目 * @param inst * 被测机构 * @return 严重性为高的动态脆弱点数目 */ Long statHighSeriDynaVulnPoint(Integer asseInfoProjId); /** * 查询严重性为中的动态脆弱点数目 * @param inst * 被测机构 * @return 严重性为中的动态脆弱点数目 */ Long statMiddSeriDynaVulnPoint(Integer asseInfoProjId); /** * 查询严重性为低的动态脆弱点数目 * @param inst * 被测机构 * @return 严重性为低的动态脆弱点数目 */ Long statLowSeriDynaVulnPoint(Integer asseInfoProjId); /** * 不同资产各等级漏洞数目统计 * @param asseInfoProj * 测评项目 * @param asseInfoAsse * 资产 * @param seriLeve * 严重级别 * @return 不同资产各等级漏洞数目 */ Integer statAsseDynaVulnPointNum(AsseInfoProj asseInfoProj, AsseInfoAsse asseInfoAsse, String seriLeve); }