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.AsseKnowDynaThre; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDynaVuln; import edu.sjtu.infosec.ismp.manager.comm.model.page.Page; /** * 数据层 动态威胁分析Dao访问接口. * **/ public interface ThreAnalDao { /** * 保存/更新动态威胁 * * @param dynaThre * 动态威胁 **/ void saveOrUpdate(AsseKnowDynaThre dynaThre); /** * 批量保存/更新动态威胁 * * @param dynaThres * 动态威胁列表 **/ void batchSaveOrUpdate(List<AsseKnowDynaThre> dynaThres); /** * 删除动态威胁 * * @param dynaThre * 动态威胁 **/ void remove(AsseKnowDynaThre dynaThre); /** * 批量删除动态威胁 * * @param dynaThres * 动态威胁列表 **/ void remove(List<AsseKnowDynaThre> dynaThres); /** * 查询动态威胁 * * @param id * 动态威胁id * @return 动态威胁对象 **/ AsseKnowDynaThre find(Integer id); Object[] findByDwr(String id); /** * 查询动态威胁数量 * @param asseInfoProj * 测评项目 * @param asseInfoAsse * 资产 * @return 动态威胁数量 **/ int getCount(AsseInfoProj asseInfoProj,AsseInfoAsse asseInfoAsse); /** * 查询动态威胁数量 * @param asseInfoProj * 测评项目 * @param dynaVuln * 动态脆弱点 * @return 动态威胁数量 **/ int getCount(AsseInfoProj asseInfoProj,AsseKnowDynaVuln dynaVuln); /** * 查询动态威胁分页记录 * @param page * 分页对象 * @param asseInfoProj * 测评项目 * @param asseInfoAsse * 资产 * @return 分页记录列表 **/ List<AsseKnowDynaThre> listDynaThrePage(Page page,AsseInfoProj asseInfoProj,AsseInfoAsse asseInfoAsse); /** * 查询脆弱点威胁关联分页记录 * @param page * 分页对象 * @param asseInfoProj * 测评项目 * @param dynaVuln * 动态脆弱点 * @return 分页记录列表 **/ List<AsseKnowDynaThre> listDynaVulnThrePage(Page page,AsseInfoProj asseInfoProj,AsseKnowDynaVuln dynaVuln); /** * 查询动态威胁记录 * @param asseInfoProjId * 测评项目Id * @return 记录列表 **/ List<AsseKnowDynaThre> listDynaThre(Integer asseInfoProjId); /** * 检查是否已存在该威胁 * @param asseInfoProjId * 测评项目Id * @param asseInfoAsse * 关联资产 * @param asseKnowStatThreId * 威胁Id * @return 是否已存在 **/ boolean checkExitDynaVulnPoint(Integer asseInfoProjId, AsseInfoAsse asseInfoAsse, Integer asseKnowStatThreKindId, Integer asseKnowStatThreId); /** * 查询可能性为高的动态威胁数目 * @param asseInfoProjId * 测评项目Id * @return 可能性为高的动态威胁数目 */ Long statHighPossDynaThre(Integer asseInfoProjId); /** * 查询可能性为中的动态威胁数目 * @param asseInfoProjId * 测评项目Id * @return 可能性为中的动态威胁数目 */ Long statMiddPossDynaThre(Integer asseInfoProjId); /** * 查询可能性为低的动态威胁点数目 * @param asseInfoProjId * 测评项目Id * @return 可能性为低的动态威胁数目 */ Long statLowPossDynaThre(Integer asseInfoProjId); /** * 不同可能性等级的威胁数量统计 * @param asseInfoProj * 测评项目 * @param asseInfoAsse * 资产 * @param possibility * 严重级别 * @return 不同可能性等级的威胁数量 */ Integer statAsseDynaThreNum(AsseInfoProj asseInfoProj, AsseInfoAsse asseInfoAsse, String possibility); List<AsseKnowDynaThre> findAll(int startResult, int maxResult, AsseInfoProj asseInfoProj, AsseInfoAsse asseInfoAsse); List<AsseKnowDynaThre> listAllByVuln(int startResult, int maxResult, AsseInfoProj asseInfoProj, AsseKnowDynaVuln dynaVulnPoint); List<AsseKnowDynaThre> ListThreByVulnId(int vulnId); }