Sv Community El Salvador

Soporte y Tecnología => Programación => Java => Mensaje iniciado por: gilanrodas en marzo 17, 2010, 02:51:21 pm

Título: ¿Cómo establezco una conexión segura SSL en mi servlet?
Publicado por: gilanrodas en marzo 17, 2010, 02:51:21 pm
No sé cómo explicar esto, pero lo que quiero es que al ejecutar mi  servlet aparezca "https..." en mi url. ¿Cómo hago eso? ¿Qué tengo que  agregar a mi servlet o qué tengo que hacer para establecer una conexión  segura (SSL) al ejecutar mi Web Site y servlets.
 Estoy usando Netbeans y Tomcat, nada de bases de datos. Son aplicaciones  web básicas. A continuación uno de los servlets en que quiero hacer  esto:
 
 
Citar
/*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
 
 package paginaProtegida;
 import java.io.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 import java.util.Properties;
 import sun.misc.BASE64Decoder;
 import coreservlets.GzipUtilities;
 
 public class PaginaProtegida extends HttpServlet
 {
     private Properties contrasenias;
     private String archivoContrasenia;
 
         @Override
     public void init(ServletConfig config) throws ServletException
     {
         super.init(config);
         try
         {
             archivoContrasenia =  config.getInitParameter("archivoContrasenia");
             contrasenias = new Properties();
             contrasenias.load(new FileInputStream(archivoContrasenia));
         }
         catch (IOException ioe) { }
     }
     @Override
     public void doGet(HttpServletRequest request, HttpServletResponse  response)
     throws ServletException, IOException
     {
         response.setContentType("text/html");
         PrintWriter out= response.getWriter();
 
         //Para verificar si navegador soporta compresión y enviar la  página comprimida o no
         /*if (GzipUtilities.isGzipSupported(request))
         {
             out = response.getWriter();
             /*out = GzipUtilities.getGzipWriter(response);
             response.setHeader("Content-Encoding", "gzip");
         }
         else
         {
             out = response.getWriter();
         }//Fin comprobación de compresión*/
 
         String autorizacion = request.getHeader("Authorization");
         if ( autorizacion == null)
         {
             pedirContrasenia(response);
         }
         else
         {
             String userInfo = autorizacion.substring(6).trim();
             BASE64Decoder decoder = new BASE64Decoder();
             String nombreYContrasenia = new  String(decoder.decodeBuffer(userInfo));
             int indice = nombreYContrasenia.indexOf(":");
             String usuario = nombreYContrasenia.substring(0, indice);
             String contrasenia = nombreYContrasenia.substring(indice+1);
             String verdaderaContrasenia =  contrasenias.getProperty(usuario);
             if ((verdaderaContrasenia != null) &&  (verdaderaContrasenia.equals(contrasenia)))
             {
                 //response.sendRedirect("Promo.html");
 
                 String titulo = "Producto - Detalles y  especificaciones";
                 try
                 {
 
                     //=========================================
                     //¡¡¡¡¡¡INICIA CÓDIGO PARA PÁGINA WEB!!!!!!
                     //=========================================
 
                     out.println("<html>\n"+
                             "<head>"+
                             "<meta http-equiv=\"Content-Type\"  content=\"text/html; charset=UTF-8\">\n"+
                             "<title>"+titulo+"</title>\n"+
                             "<style type=\"text/css\">\n"+
                             "<!--\n"+
                             "#header {\n"+
                             "width: 100%;\n"+
                             "float: left;\n"+
                             "background-color: #ffd700\n"+
                             "}\n"+
                             "#header h1 {\n"+
                             "float: left;\n"+
                             "font-size: 1em;\n"+
                             "text-indent:-9999px;\n"+
                             "}\n"+
                             "#header h1 a {\n"+
                             "width: 105px;\n"+
                             "height: 105px;\n"+
                             "background: #fff url(imagenes/scribus.png)  top left no-repeat;\n"+
                             "float: left;\n"+
                             "text-decoration: none;\n"+
                             "}\n"+
                             "#header ul {\n"+
                             "float: right;\n"+
                             "list-style: none;\n"+
                             "}\n"+
                             "#header li {\n"+
                             "margin-right: 0.1875em;\n"+
                             "display: inline;\n"+
                             "float: left;\n"+
                             "text-align: center;\n"+
                             "font-size: 1.6em;\n"+
                             "}"+
                             "#header li a {\n"+
                             "display: block;\n"+
                             "padding: 0em 0.625em 0.3125em 0.625em;\n"+
                             "color: #000;\n"+
                             "background-color: #FFD700;\n"+
                             "text-decoration: none;\n"+
                             "}\n"+
                             "#header li a:hover {\n"+
                             "background-color: #FFFF00;\n"+
                             "color: #000;\n"+
                             "}\n"+
                             "-->\n"+
                             "</style>\n"+
                             "</head>\n"+
                             "<body bgcolor=\"FFD700\">\n"+
                             "<div id = \"header\">\n"+
                             "<h1>\n"+
                             "<a href = \"Inicio\" title = \"Regresar a  P&aacute;gina Principal\"></a>\n"+
                             "</h1>\n"+
                             "<ul>\n"+
                             "<li><a href =  \"/Inicio.html\">P&aacute;gina Principal</a></li>\n"+
                             "<li><a href =  \"/Formul.html\">Formulario</a></li>\n"+
                             "<li><a href =  \"mailto:ramiro.garcia@intercom.com.sv&subject=Comentarios\">Comentarios</a></li>\n"+
                             "<li><a href =  \"/PaginaProtegida\">Ingresar</a></li>\n"+
                             "</ul>\n"+
                             "</div>\n"+
                             "    <div><center />\n"+
                             "            <form action=\"Formulario\"  />\n"+
                             "        <strong>Impresor NonCa,  Modelo 2010.</strong><br />\n"+
                             "        <br />\n"+
                                     "Elemento: 01-7<br />\n"+
                                     "<img  src=\"imagenes/printer1.png\" width=\"100\" height=\"100\"  alt=\"printer1\"/><br>\n"+
                                     "<strong>Impresor  </strong><br />\n"+
                                     "NonCA 2010.<br />\n"+
                                     "Inyecci&oacute;n de  Burbuja.</div>\n"+
                             "            <br />\n"+
                             "     -----------------------------------------------------------------------<br>\n"+
                             "        Impresor de Inyecci&oacute;n de  Burbuja, Velocidad de Impresi&oacute;n 11 P&aacute;g. en Negro,  y\n"+
                                     "6 en Color.<br />\n"+
                                      "<strong>Contenido:</strong><br />\n"+
                              "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2  Cartuchos de Prueba, 1 color y 1\n"+
                                     "negro.<br />\n"+
                              "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1  cable de poder.<br />\n"+
                              "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1  cable de conexi&oacute;n tipo USB.<br />\n"+
                              "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1  manual de usuario, en 3 idiomas\n"+
                                     "(Ingl&eacute;s,  Espa&ntilde;ol, Portugu&eacute;s).<br />\n"+
                              "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1  CD de Instalaci&oacute;n. <br />\n"+
                                     "<br />\n"+
                                     "Costo total: $ 35.00 + IVA y gastos  env&iacute;o.<br />\n"+
                                     "los gastos de env&iacute;o  dependen del pa&iacute;s de or&iacute;gen</div>\n"+
                              "------------------------------------------------------------------------<br>\n"+
                             "            Si desea comprar este producto,  clic en el Link:<br />\n"+
                             "<br />\n"+
                             "<input name=\"Completar\"  type=\"submit\" value=\"Completar Formulario\" /><br>\n"+
                              "------------------------------------------------------------------------<br>\n"+
                             "        </form>\n"+
                             "    </div></center>\n"+
                             "    </body>\n"+
                             "</html>");
 
                             //=========================================
                             //¡¡¡¡¡¡FINALIZA CÓDIGO PARA PÁGINA  WEB!!!!!!
                             //=========================================
                 }
                 finally{}
 
             }
             else
             {
                 pedirContrasenia(response);
             }
         }
     }
     private void pedirContrasenia(HttpServletResponse response)
     {
         response.setStatus(response.SC_UNAUTHORIZED);
         response.setHeader("WWW-Authenticate", "BASIC realm = \"Ingrese  su Usuario y Contraseña\"");
     }
 }

 
 ¡Muchas gracias!
 
Título: Re:¿Cómo establezco una conexión segura SSL en mi servlet?
Publicado por: Jaru en marzo 17, 2010, 03:24:54 pm
no tiene que ver mucho con tu codigo, tu servidor debe aceptar y estar configurados para conexiones SSL

vos tenes acceso a la configuracion de tu servidor? sos vos el administrador maximo? o alguiien te da hosting? que tipo de panel de control tenes en tu server?
Título: Re:¿Cómo establezco una conexión segura SSL en mi servlet?
Publicado por: gilanrodas en marzo 17, 2010, 03:38:43 pm
no tiene que ver mucho con tu codigo, tu servidor debe aceptar y estar configurados para conexiones SSL

vos tenes acceso a la configuracion de tu servidor? sos vos el administrador maximo? o alguiien te da hosting? que tipo de panel de control tenes en tu server?

Fijate que es un trabajo de la universidad. Todo es mediante localhost. Respecto a Panel de Control, no sé, vos. Sólo entro a la carpeta de Tomcat para ejecutar el archivo startup y shutdown para iniciar o detener el servidor web, así que creo que sí, soy el administrador máximo.
La cuestión es que tengo que enviar un proyecto war por correo al catedrático y que, pues, cuando él lo pruebe, que ocupe SSL.
Título: Re:¿Cómo establezco una conexión segura SSL en mi servlet?
Publicado por: Jaru en marzo 17, 2010, 03:43:56 pm
tu servidor debe estar configurado para ssl.

http://www.google.com/search?client=opera&rls=en&q=tomcat+ssl&sourceid=opera&ie=utf-8&oe=utf-8&safe=on