Estoy intentando establecer el indicador httponly en la cookie JSESSIONID. Estoy trabajando en Java EE 5, sin embargo, y no puedo usar setHttpOnly()
. Primero traté de crear mi propia cookie JSESSIONID desde el servlet doPost()
usando response.setHeader()
.Configuración de httponly en la cookie JSESSIONID (Java EE 5)
Cuando eso no funcionó, probé response.addHeader()
. Eso tampoco funcionó. Luego, descubrí que el servlet manejaba convertir la sesión en una cookie JSESSIONID e insertarla en el encabezado http, así que si quiero jugar con esa cookie, tendré que escribir un filtro. Escribí un filtro y jugué con setHeader()
/addHeader()
allí, de nuevo en vano.
Luego, me enteré de que hay algo de flush/close action en el objeto de respuesta antes de que llegue al filtro, así que si quiero manipular los datos, necesito extender HttpServletResponseWrapper
y pasarlo a filterChain.doFilter()
. Esto está hecho, pero todavía no estoy obteniendo resultados. Claramente estoy haciendo algo mal, pero no sé qué.
No estoy seguro de si esto es relevante para la pregunta en cuestión, pero el servlet no está devolviendo ningún documento html al navegador. Todo lo que realmente está sucediendo es que algunos objetos se están rellenando y devolviendo a un documento JSP. De alguna manera, he supuesto que el objeto Session se convierte en una cookie JSESSIONID y se envuelve, junto con los objetos agregados a la solicitud, en un encabezado http antes de enviarse al navegador.
Estaré encantado de publicar algún código, pero quiero descartar la posibilidad de que mis dificultades se deriven primero de un malentendido de la teoría.
añadido algunas de formato de código porque othe En realidad, era un muro de texto inabordable. Todavía podría considerar publicar código de muestra de lo que ha intentado. –