2010-02-13 15 views
5

¿Cuál es la mejor forma (más segura) de implementar el manejo de sesión en un servidor web? Me gustaría agregar eso, pero no sé cómo implementarlo realmente. ¿Las cookies son "imprescindibles" para el manejo de la sesión? (Para poder identificar qué sesión)Implementando sesiones en un servidor web java?

Respuesta

6

El manejo de la sesión no es realmente su preocupación. Es manejado por la clase HttpSession (lea la descripción en el javadoc!), Que puede obtener llamando al request.getSession().

Funciona de dos maneras (no hay necesidad de que hagas nada para apoyarlos):

  • utilizando una cookie de sesión (si se permite que las cookies)
  • utilizando la reescritura de URL - anexar el identificador de sesión (JSESSIONID) a la URL.

(Nota: en realidad es manejado por el contenedor de servlets (Tomcat, amarre, etc.), que proporciona una implementación de HttpSession)

+0

+1. Simplemente tome 'HttpSession' de la solicitud y use' get/setAttribute() 'para obtener/configurar cosas en el alcance de la sesión. Eso es realmente todo :) – BalusC

+0

En realidad, nunca dijo que esté trabajando en un entorno de contenedor servlet. Entendí que él está escribiendo es propio servidor web. Podría estar equivocado sin embargo. – whiskeysierra

+0

@Willi, entonces mi respuesta es nuevamente útil, porque he señalado las dos opciones que se utilizan. Pero eso debería haber sido realmente aclarado. – Bozho

2

Suponiendo que usted está hablando de un contenedor de servlets, a continuación, manejo de sesión viene respaldado adentro. Vea el relevant part of if the JavaEE tutorial. Cubre la API de la sesión, así como el seguimiento de las sesiones (reescritura de cookies o URL).

1

El manejo de la sesión es manejado por el contenedor web. Si quiere seguridad de miradas indiscretas, use https (forzado en web.xml).

Lo que también le puede interesar, es cómo el usuario se identifica con el contenedor web. Existen varias opciones, donde la más segura es que el cliente use un navegador web con un certificado digital. Eso es bastante tedioso, pero muy seguro :)

Cuestiones relacionadas