Beispiel #1
0
 void init() {
   user = SecurityUserHolder.getCurrentUser();
   username = user.getUsername();
   rolenames = "";
   for (Role role : user.getRoleList()) {
     rolenames = rolenames + role.getName();
   }
   log = new SystemLog();
 }
  public ActionForward saveorupdate(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    boolean flag = false;
    System.out.println("~~~~增加或更新打印信息~~~~~");
    FilePrintFrom fileform = (FilePrintFrom) form;
    RespFilePrint file = new RespFilePrint();
    System.out.println("id===" + fileform.getId());
    System.out.println("content===" + fileform.getPrintcontent());
    System.out.println("procid===" + fileform.getSelectresp());
    request.setAttribute("printres", fileform.getPrintcontent());
    request.setAttribute("selectid", fileform.getSelectresp());
    if (fileform.getId() == 0) {
      flag = true;
      file.setId(null);
    } else {
      file.setId(fileform.getId());
    }
    file.setContent(fileform.getPrintcontent());
    file.setRespInfo(respInfoService.findrespInfoById(fileform.getSelectresp()));
    respInfoService.saveorupdate(file);

    // 添加日志
    OperatorDetails user = SecurityUserHolder.getCurrentUser();
    SystemLog log = new SystemLog();
    log.setUsername(user.getUsername());
    List<Role> list = user.getRoleList();
    String roles = "";
    for (Role role : list) {
      roles += role.getRole() + ",";
    }
    log.setRoleName(roles.substring(0, roles.length() - 1));
    log.setTime(new Timestamp(new Date().getTime()));
    log.setModuleName(SystemModelInfo.MOD_ERM);
    if (flag) {
      log.setOperationDesc(
          "应急响应模块文件打印,新增打印信息,ID为:" + file.getId() + ",所属预案名称为:" + file.getRespInfo().getName());
    } else {
      log.setOperationDesc(
          "应急响应模块文件打印,修改打印信息,ID为:" + file.getId() + ",所属预案名称为:" + file.getRespInfo().getName());
    }
    log.setControl("成功");
    logService.saveSystemLog(log);
    request.setAttribute("respMenu", "fp");
    return mapping.findForward("filecount");
  }
  /** 动态威胁与动态脆弱点关联 */
  @SuppressWarnings("unchecked")
  public ActionForward relateToVuln(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    String vulnKindIdSelect = request.getParameter("vulnKindIdSelect");
    String vulnIdSelect = request.getParameter("vulnIdSelect");
    String ip = request.getParameter("ip");
    request.setAttribute("ip", ip);
    request.setAttribute("vulnKindIdSelect", vulnKindIdSelect);
    request.setAttribute("vulnIdSelect", vulnIdSelect);
    AsseKnowDynaThreForm asseKnowDynaThreForm = (AsseKnowDynaThreForm) form;
    String[] dynaThreIds = asseKnowDynaThreForm.getDynaThreIds();
    Map paraMaps = new HashMap();
    paraMaps.put("dynaThreIds", dynaThreIds);
    paraMaps.put("vulnId", vulnIdSelect);
    AsseInfoProj asseInfoProj = loadAsseInfoproj(request);
    threAnalService.relateToVuln(paraMaps, asseInfoProj);

    // 添加日志
    OperatorDetails user = SecurityUserHolder.getCurrentUser();
    SystemLog log = new SystemLog();
    log.setUsername(user.getUsername());
    List<Role> list = user.getRoleList();
    String roles = "";
    for (Role role : list) {
      roles += role.getRole() + ",";
    }
    log.setRoleName(roles.substring(0, roles.length() - 1));
    log.setTime(new Timestamp(new Date().getTime()));
    log.setModuleName(SystemModelInfo.MOD_RAM);
    String s = "";
    for (String str : dynaThreIds) {
      s += str + ",";
    }
    log.setOperationDesc(
        "风险评估模块,动态威胁与动态脆弱点关联,动态威胁ID为:"
            + s.substring(0, s.length() - 1)
            + "动态脆弱点ID为:"
            + vulnIdSelect);
    log.setControl("成功");
    logService.saveSystemLog(log);
    return showVulnThre(mapping, form, request, response);
  }
  /** 漏洞与威胁关联 */
  @SuppressWarnings("unchecked")
  public ActionForward relateLeakToThre(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    String vulnKindIdSelect = request.getParameter("vulnKindIdSelect");
    String vulnIdSelect = request.getParameter("vulnIdSelect");
    String ip = request.getParameter("ip");
    request.setAttribute("ip", ip);
    request.setAttribute("vulnKindIdSelect", vulnKindIdSelect);
    request.setAttribute("vulnIdSelect", vulnIdSelect);
    String[] leakThreIds = request.getParameterValues("leakThreId");
    for (int i = 0; i < leakThreIds.length; i++) {
      System.out.println("leakThreIds[" + i + "]:" + leakThreIds[i]);
    }
    int indexArray[] = new int[leakThreIds.length];
    List leakThreList = (List) request.getSession().getAttribute("leakThreList");
    AsseKnowDynaLeakThre dynaLeakThre = null;
    for (int m = 0; m < leakThreIds.length; m++) {
      for (int i = 0; i < leakThreList.size(); i++) {
        dynaLeakThre = (AsseKnowDynaLeakThre) leakThreList.get(i);
        if (leakThreIds[m].equals(dynaLeakThre.getId().toString())) {
          indexArray[m] = i;
        }
      }
    }

    for (int i = 0; i < indexArray.length; i++) {
      System.out.println(indexArray[i]);
    }

    String[] leakThreKindIds = request.getParameterValues("leakThreKindId");
    String[] leakThreKindIds1 = new String[leakThreIds.length];
    for (int i = 0; i < indexArray.length; i++) {
      leakThreKindIds1[i] = leakThreKindIds[indexArray[i]];
    }
    for (int i = 0; i < leakThreKindIds1.length; i++) {
      System.out.println("leakThreKindIds1[" + i + "]:" + leakThreKindIds1[i]);
    }

    String[] leakCveThreIds = request.getParameterValues("leakCveThreId");
    String[] leakCveThreIds1 = new String[leakThreIds.length];
    for (int i = 0; i < indexArray.length; i++) {
      leakCveThreIds1[i] = leakCveThreIds[indexArray[i]];
    }
    for (int i = 0; i < leakCveThreIds1.length; i++) {
      System.out.println("leakCveThreIds1[" + i + "]:" + leakCveThreIds1[i]);
    }

    String[] dynaLeakThreLeves = request.getParameterValues("dynaLeakThreLeve");
    String[] dynaLeakThreLeves1 = new String[leakThreIds.length];
    for (int i = 0; i < indexArray.length; i++) {
      dynaLeakThreLeves1[i] = dynaLeakThreLeves[indexArray[i]];
    }
    for (int i = 0; i < dynaLeakThreLeves1.length; i++) {
      System.out.println("dynaLeakThreLeves1[" + i + "]:" + dynaLeakThreLeves1[i]);
    }

    Map paraMap = new HashMap();
    paraMap.put("leakThreIds", leakThreIds);
    paraMap.put("leakThreKindIds", leakThreKindIds1);
    paraMap.put("leakCveThreIds", leakCveThreIds1);
    paraMap.put("dynaLeakThreLeves", dynaLeakThreLeves1);
    AsseInfoProj asseInfoProj = loadAsseInfoproj(request);
    dynaLeakThreService.relateLeakToThre(paraMap, asseInfoProj);

    // 添加日志
    OperatorDetails user = SecurityUserHolder.getCurrentUser();
    SystemLog log = new SystemLog();
    log.setUsername(user.getUsername());
    List<Role> list = user.getRoleList();
    String roles = "";
    for (Role role : list) {
      roles += role.getRole() + ",";
    }
    log.setRoleName(roles.substring(0, roles.length() - 1));
    log.setTime(new Timestamp(new Date().getTime()));
    log.setModuleName(SystemModelInfo.MOD_RAM);
    String s = "";
    for (String str : leakThreIds) {
      s += str + ",";
    }
    log.setOperationDesc(
        "风险评估模块,漏洞与威胁关联,漏洞ID为:" + s.substring(0, s.length() - 1) + ",威胁ID为:" + vulnIdSelect);
    log.setControl("成功");
    logService.saveSystemLog(log);

    return showVulnThre(mapping, form, request, response);
  }
  /** 保存/更新动态威胁 */
  @SuppressWarnings("null")
  public ActionForward saveOrUpdateThre(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    boolean flag = true;
    AsseKnowDynaThreForm asseKnowDynaThreForm = (AsseKnowDynaThreForm) form;
    AsseKnowDynaThre asseKnowDynaThre = new AsseKnowDynaThre();
    asseKnowDynaThre.setAsseInfoProjId(asseKnowDynaThreForm.getAsseInfoProjId());
    asseKnowDynaThre.setAsseKnowStatThreId(asseKnowDynaThreForm.getAsseKnowStatThreId());
    asseKnowDynaThre.setAsseKnowStatThreKindId(asseKnowDynaThreForm.getAsseKnowStatThreKindId());
    asseKnowDynaThre.setPossibility(asseKnowDynaThreForm.getPossibility());
    asseKnowDynaThre.setThreCode(asseKnowDynaThreForm.getThreCode());
    AsseInfoAsse asseInfoAsse = assetService.findByAssetCode(asseKnowDynaThreForm.getAssetCode());
    Integer asseDynaVulnPoinId = asseKnowDynaThreForm.getAsseDynaVulnPoinId();
    if (asseDynaVulnPoinId != null && !"".equals(asseDynaVulnPoinId)) {
      AsseKnowDynaVuln asseKnowDynaVuln = vulnAnalService.find(asseDynaVulnPoinId);
      asseKnowDynaThre.setAsse(asseKnowDynaVuln.getAsse());
      asseKnowDynaThre.setDynaVuln(asseKnowDynaVuln);
    }

    if (asseKnowDynaThreForm.getId() != null && asseKnowDynaThreForm.getId() > 0) {
      flag = false;
      asseKnowDynaThre.setId(asseKnowDynaThreForm.getId());
      threAnalService.saveOrUpdate(asseKnowDynaThre);
    } else {
      if (!threAnalService.checkExitDynaVulnPoint(
          asseKnowDynaThreForm.getAsseInfoProjId(),
          asseInfoAsse,
          asseKnowDynaThreForm.getAsseKnowStatThreKindId(),
          asseKnowDynaThreForm.getAsseKnowStatThreId())) {
        asseKnowDynaThre.setId(null);
        threAnalService.saveOrUpdate(asseKnowDynaThre);
      } else {
        // 该资产关联的脆弱点已存在
        ActionErrors errors = new ActionErrors();
        errors.add("repeatDynaThre", new ActionMessage("asse.err.dynaThre.repeat"));
        saveErrors(request, errors);
      }
    }

    // 添加日志
    OperatorDetails user = SecurityUserHolder.getCurrentUser();
    SystemLog log = new SystemLog();
    log.setUsername(user.getUsername());
    List<Role> list = user.getRoleList();
    String roles = "";
    for (Role role : list) {
      roles += role.getRole() + ",";
    }
    log.setRoleName(roles.substring(0, roles.length() - 1));
    log.setTime(new Timestamp(new Date().getTime()));
    log.setModuleName(SystemModelInfo.MOD_RAM);
    if (flag) {
      log.setOperationDesc(
          "风险评估模块,新增动态威胁,ID为:"
              + asseKnowDynaThre.getId()
              + ",所属项目ID:"
              + asseKnowDynaThre.getAsseInfoProjId());
    } else {
      log.setOperationDesc(
          "风险评估模块,修改动态威胁,ID为:"
              + asseKnowDynaThre.getId()
              + ",所属项目ID:"
              + asseKnowDynaThre.getAsseInfoProjId());
    }
    log.setControl("成功");
    logService.saveSystemLog(log);
    request.setAttribute("asseKnowDynaThre", asseKnowDynaThre);
    return showVulnThre(mapping, form, request, response);
  }