Ejemplo n.º 1
0
  static {
    try {
      List<UseSet> usl = DBUtil.getResult("hc_use_set");
      if (usl != null && usl.size() > 0) {
        UseSet us = usl.get(0);
        String key = us.getKeyStr();
        String authorizeKey = us.getAuthorizeKey();
        if (StringUtils.isNotBlank(key)) ;
        {
          String decryptKey = SecurityHelper.DecryptData(key, Constants.DEFAULT_SECURITY_KEY);
          String[] splitKeys = decryptKey.split(";", 2);
          String expiration = splitKeys[0];
          expirationDate = HsCloudDateUtil.transferStr2Date("yyyy-MM-dd", expiration);
          Date now = new Date();
          if (expirationDate.before(now)) {
            logger.error("证书失效,系统终止服务。");
            System.exit(-1);
          }
          String mac = IPMACUtil.getMacAddr();
          String ip = IPMACUtil.getLocalIP();
          String compareStringLocal = mac + ";" + ip + ";" + authorizeKey;
          String compareStringRemote = splitKeys[1];
          if (!compareStringLocal.equals(compareStringRemote)) {
            logger.error("证书有误,系统终止服务。");
            System.exit(-1);
          }
        }
      }

    } catch (Exception e) {
      logger.debug(e.getMessage(), e);
      e.printStackTrace();
      System.exit(-1);
    }
  }
Ejemplo n.º 2
0
  /**
   * 获取ip并更新hc_ip_detail 表中ip的object_id,status,modify_uid字段。
   *
   * @param message
   * @return
   * @throws Exception
   */
  public static String getIpAndUpdateIpStatus(String message, int type) throws Exception {
    String ipStr = null;
    try {
      // 获取zone信息,因为要根据zone去查询对应的ip
      String zone = getValue(message, "zone");
      if (StringUtils.isNotBlank(zone)) {
        StringBuilder sql = new StringBuilder();
        List<Object> ipDetailList = new ArrayList<Object>();
        if (type == 1) {
          sql.append(" where t.ip_range_id=t1.id and t1.id=t2.ip_id and t2.zone_id=t3.id ")
              .append(" and t.status = 0 and t3.code = '")
              .append(zone)
              .append("' limit 10 ");
          // 一次性取出10个ip
          ipDetailList = DBUtil.getResult("hc_ip_detail", sql.toString());

        } else if (type == 2) {
          sql.append(" where t5.status = 0 and t4.type =1 AND t3.label = 'wan' AND t.code = '")
              .append(zone)
              .append("' limit 10 ");
          // 一次性取出10个ip
          ipDetailList = DBUtil.getResult("hc_ip_detail_router", sql.toString());
        }

        if (null != ipDetailList && ipDetailList.size() >= 1) {
          Random rand = new Random(47);
          int ipNum = ipDetailList.size();
          O_IP ip = (O_IP) ipDetailList.get(rand.nextInt(ipNum)); // //一次性取出10个ip,并从中随机选择一个
          Long ipLong = ip.getIp();
          Long id = ip.getId();
          logger.info("IPID:" + id);
          ipStr = IPConvert.getStringIP(ipLong);
          logger.info("IPSTR:" + ipStr);
          String object_idStr = patternInt("obj_instance_id", message);
          logger.info("OBJECT_IDSTR" + object_idStr);
          if (StringUtils.isNotBlank(object_idStr)) {
            ip.setObject_id(Long.parseLong(object_idStr));
          }
          String operator_idStr = patternInt("operator_id", message);
          if (StringUtils.isNotBlank(operator_idStr)) {
            ip.setModify_uid(Long.parseLong(operator_idStr));
          }
          logger.info("Operator_idStr" + operator_idStr);
          ip.setModify_time(new Date());
          ip.setStatus(1);
          try {
            // 更新ip的信息到数据库
            DBUtil.save(ip, "sync_hc_ip_detail.update");
            return ipStr;
          } catch (Exception e) {
            logger.error(e.getMessage(), e);
            throw new Exception(e.getMessage() + " 更新ip状态异常,ip=" + ipStr);
          }

        } else {
          throw new Exception("获取ip异常 zone=" + zone);
        }
      } else {
        throw new Exception("获取zone异常");
      }
    } catch (Exception e) {
      throw new Exception(e.getMessage());
    }
  }