Ejemplo n.º 1
0
  @SuppressWarnings("rawtypes")
  public void InstalarCerAF(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    System.out.println("Inicio de instalacion");
    short idmensaje = -1;
    String mensaje = "";

    idmensaje = 0;
    mensaje =
        JUtil.Msj(
            "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 1); // "El certificado se instaló con exito";

    try {
      JAdmVariablesSet var = new JAdmVariablesSet(null);
      var.ConCat(true);
      var.m_Where = "ID_Variable = 'TOMCAT'";
      var.Open();

      if (var.getAbsRow(0).getVAlfanumerico().equals("NC")) {
        idmensaje = 1;
        mensaje =
            JUtil.Msj(
                "SAF",
                "ADMIN_SSL",
                "DLG",
                "MSJ-PROCERR",
                4); // "PRECAUCION: La variable TOMCAT (ruta de instalacion de tomcat) no está
                    // definida... No se puede instalar el certificado";
        getSesion(request).setID_Mensaje(idmensaje, mensaje);
        irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response);
        return;
      }

      boolean cs = false;
      SAXBuilder builder = new SAXBuilder();
      String xml_path = var.getAbsRow(0).getVAlfanumerico() + "/conf/server.xml";
      Document XMLServer = builder.build(xml_path);
      // System.out.println(xml_path + "\narchivo: " + request.getParameter("id") + "\npassword: "******"password"));
      Element Server = XMLServer.getRootElement();
      Element Service = Server.getChild("Service");
      List lConnectors = Service.getChildren("Connector");
      Iterator iter = lConnectors.iterator();
      while (iter.hasNext()) {
        Element Connector = (Element) iter.next();
        String port = Connector.getAttributeValue("port");
        if (port != null && (port.equals("8443") || port.equals("443"))) {
          Connector.setAttribute(
              "keystoreFile", "/usr/local/forseti/bin/" + request.getParameter("id"));
          Connector.setAttribute("keystorePass", request.getParameter("password"));
          Connector.setAttribute("port", request.getParameter("puerto"));
          cs = true;
        }

        if (port != null && (port.equals("8080") || port.equals("80"))) {
          if (request.getParameter("puerto").equals("8443")) Connector.setAttribute("port", "8080");
          if (request.getParameter("puerto").equals("443")) Connector.setAttribute("port", "80");

          Connector.setAttribute("redirectPort", request.getParameter("puerto"));
        }
      }

      if (!cs) {
        Element Connector = new Element("Connector");
        Connector.setAttribute("protocol", "HTTP/1.1");
        Connector.setAttribute("port", request.getParameter("puerto"));
        Connector.setAttribute("maxThreads", "200");
        Connector.setAttribute("scheme", "https");
        Connector.setAttribute("secure", "true");
        Connector.setAttribute("SSLEnabled", "true");
        Connector.setAttribute(
            "keystoreFile", "/usr/local/forseti/bin/" + request.getParameter("id"));
        Connector.setAttribute("keystorePass", request.getParameter("password"));
        Connector.setAttribute("clientAuth", "false");
        Connector.setAttribute("sslProtocol", "TLS");
        Service.addContent(Connector);
        cs = true;
      }

      if (cs) {
        System.out.println("Prettyformat");

        Format format = Format.getPrettyFormat();
        format.setEncoding("utf-8");
        format.setTextMode(TextMode.NORMALIZE);
        XMLOutputter xmlOutputter = new XMLOutputter(format);
        FileWriter writer = new FileWriter(xml_path);
        xmlOutputter.output(XMLServer, writer);
        writer.close();
        // System.out.println("PrettyformatWrite");

        mensaje +=
            "<br>"
                + JUtil.Msj("SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 2)
                + " "
                + JUtil.Msj("SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 3)
                + " "
                + JUtil.Msj(
                    "SAF",
                    "ADMIN_SSL",
                    "DLG",
                    "MSJ-PROCOK",
                    4); // "<br>El archivo server.xml ha quedado modificado con los datos de este
                        // certificado. Nota: Si la contraseña esta mal, ya no se podra reiniciar el
                        // servidor de una manera segura, por lo tanto, deberas cambiar el archivo
                        // server.xml de manera manual para corregir la contraseña. Si no estas
                        // seguro que esta bien la contraseña, consulta este mismo certificado para
                        // ver si es correcta, de lo contrario vuelve a instalar inmediatamente este
                        // certificado con la contraseña correcta antes de reiniciar el servidor";

      } else {
        idmensaje = 3;
        mensaje =
            JUtil.Msj(
                "SAF",
                "ADMIN_SSL",
                "DLG",
                "MSJ-PROCERR2",
                2); // "ERROR: No se modifico el archivo server.xml debido a errores desconocidos";
      }
    } catch (JDOMException e) {
      idmensaje = 3;
      mensaje = "ERROR de JDOMException en archivo XML: " + e.getMessage();
    } catch (IOException e) {
      idmensaje = 3;
      mensaje = "ERROR de IOException en archivo XML: " + e.getMessage();
    } catch (Exception e) {
      idmensaje = 3;
      mensaje = "ERROR de Exception en archivo XML: " + e.getMessage();
    }

    RDP(
        "SAF",
        getSesion(request).getConBD(),
        (idmensaje == 1 ? "OK" : "ER"),
        getSesion(request).getID_Usuario(),
        "ADMIN_SSL_MANEJO",
        "ASSL|" + p(request.getParameter("id")) + "|||",
        p(mensaje));
    getSesion(request).setID_Mensaje(idmensaje, mensaje);
    irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response);
    return;
  }
Ejemplo n.º 2
0
  public void AgregarAjssecacerts(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    short idmensaje = -1;
    StringBuffer sb_mensaje = new StringBuffer();
    String host = "localhost:" + request.getParameter("puerto");

    JAdmVariablesSet var = new JAdmVariablesSet(null);
    var.ConCat(true);
    var.m_Where = "ID_Variable = 'TOMCAT'";
    var.Open();

    if (var.getAbsRow(0).getVAlfanumerico().equals("NC")) {
      idmensaje = 1;
      sb_mensaje.append(
          JUtil.Msj(
              "SAF",
              "ADMIN_SSL",
              "DLG",
              "MSJ-PROCERR",
              4)); // "PRECAUCION: La variable TOMCAT (ruta de instalacion de tomcat) no está
                   // definida... No se puede instalar el certificado");
      getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString());
      irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response);
      return;
    }

    JAdmVariablesSet var2 = new JAdmVariablesSet(null);
    var2.ConCat(true);
    var2.m_Where = "ID_Variable = 'JVM'";
    var2.Open();

    if (var2.getAbsRow(0).getVAlfanumerico().equals("NC")) {
      idmensaje = 1;
      sb_mensaje.append(
          JUtil.Msj(
              "SAF",
              "ADMIN_SSL",
              "DLG",
              "MSJ-PROCERR",
              5)); // "PRECAUCION: La variable JVM (ruta de instalacion del OpenJDK o Java JDK) no
                   // está definida... No se puede generar");
      getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString());
      irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response);
      return;
    }

    try {
      idmensaje = InstallCert(host, request.getParameter("password"), sb_mensaje);

      if (idmensaje == 0) {
        JFsiScript sc = new JFsiScript();
        sc.setVerbose(true);

        String CONTENT =
            "sudo cp /usr/local/forseti/bin/jssecacerts "
                + var2.getAbsRow(0).getVAlfanumerico()
                + "/jre/lib/security";
        sc.setContent(CONTENT);
        System.out.println(CONTENT);
        String RES = sc.executeCommand();
        if (!sc.getError().equals("") || !RES.equals("")) {
          idmensaje = 3;
          sb_mensaje.append(
              "<br>"
                  + JUtil.Msj("SAF", "ADMIN_SSL", "DLG", "MSJ-PROCERR2", 1)
                  + " "
                  + RES
                  + " "
                  + sc
                      .getError()); // "<br>Se han producido errores al copiar el certificado a
                                    // jssecacerts del jvm actual: " + RES + " " + sc.getError());
        }
      }
    } catch (Exception e) {
      idmensaje = 3;
      sb_mensaje.append("ERROR Exception JSSECASERTS: " + e.getMessage());
    }

    RDP(
        "SAF",
        getSesion(request).getConBD(),
        (idmensaje == 1 ? "OK" : "ER"),
        getSesion(request).getID_Usuario(),
        "ADMIN_SSL_MANEJO",
        "ASSL|jssecacerts|||",
        p(sb_mensaje.toString()));
    getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString());
    irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response);
    return;
  }