Réglage httponly dans cookie JSESSIONID (Java EE 5)

Je suis en train de définir le drapeau httponly sur le cookie JSESSIONID. Je travaille dans Java EE 5, cependant, et ne peut pas utiliser setHttpOnly(). J'ai d'abord essayé de créer mon propre cookie JSESSIONID de l'intérieur de la servlet doPost() en utilisant response.setHeader().

Quand cela ne fonctionne pas, j'ai essayé response.addHeader(). Qui n'a pas fonctionné non plus. Ensuite, j'ai appris que la servlet géré la conversion de la session dans un cookie JSESSIONID et de l'insérer dans l'en-tête http, donc si je veux jouer avec le cookie, je vais avoir à écrire un filtre. J'ai écrit un filtre et joué avec setHeader()/addHeader() là, de nouveau, en vain.

Puis, j'ai appris qu'il y a une flush/fermer l'action se passe dans la réponse de l'objet avant qu'il arrive au filtre de sorte que si je veux manipuler les données, j'ai besoin d'étendre HttpServletResponseWrapper et passer à filterChain.doFilter(). C'est fait mais je suis toujours pas à obtenir des résultats. Clairement, je suis en train de faire quelque chose de mal mais je ne sais pas quoi.

Je ne suis pas sûr si cela est pertinent à la question à portée de main, mais aucun document html est retourné par le servlet pour le navigateur. Tout ce qui se passe vraiment, c'est que certains objets sont remplies et retournées à un document JSP. J'ai sorte de supposer que L'objet Session est transformé en un cookie JSESSIONID et enveloppé -- avec les objets ajoutés à la demande, dans un en-tête http, avant d'être envoyé au navigateur.

Je serais heureux de poster du code, mais je veux exclure la possibilité que mes difficultés proviennent d'une mauvaise compréhension de la théorie de la première.

Ajouté un peu de mise en forme du code, parce que sinon, c'était un peu une inaccessible Mur De Texte. Pourrait encore envisager de poster des exemples de code de ce que vous avez essayé.

OriginalL'auteur Mythandros | 2010-06-07