Pregunta

Tengo una aplicación web basada servlet que se ejecuta en el servidor Tomcat 6. El esquema URL es HTTPS. Todo el sitio está siendo servido en HTTPS. Pero lo que realmente me gustaría hacer es HTTPS configuración sólo para ciertas operaciones como la compra y de inicio de sesión. ¿Hay alguna configuración de Tomcat que puede ayudar a hacer esto fácilmente?

¿Hay algún cambio de código requeridos para persistir a través de la sesión HTTPS y HTTP?

¿Fue útil?

Solución

En realidad, a ser posible, esto se configura en el archivo web.xml de la aplicación web. Sólo tiene que especificar ciertas direcciones URL que deben ser seguras como <security-constraint><web-resource-collection> y especificar HTTPS como requisito <transport-guarantee> con valor de CONFIDENTIAL. El contenedor gestionará redirige de forma transparente. Simple.

<security-constraint>
  <web-resource-collection>
     <web-resource-name>My Secure Stuff</web-resource-name>
     <url-pattern>/some/secure/stuff/*</url-pattern>
     <url-pattern>/other/secure/stuff/*</url-pattern>
     ...
  </web-resource-collection>
  <user-data-constraint>
     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>

Otros consejos

Sólo tiene que configurar un conector HTTP y todo el servlet estará disponible en HTTP también.

Para las operaciones que requiere HTTPS, es necesario para hacer cumplir este mismo así,

if (!request.isSecure()) {
    response.sendError(HttpServletResponse.SC_FORBIDDEN);
    return;
}

En nuestro caso, la URL de inicio de sesión puede ser mecanografiadas por el usuario en lo que redirigir al usuario a la página HTTPS si se introduce la URL HTTP.

Si usted está hablando acerca de las sesiones de servlet (JSESSIONID), no debería tener ningún problema de compartir sesiones entre HTTP y HTTPS desde Tomcat no añade "seguro" bandera a las cookies.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top