J'essaie de définir l'indicateur httponly sur le cookie JSESSIONID. Je travaille en Java EE 5, cependant, et je ne peux pas utiliser setHttpOnly()
. J'ai d'abord essayé de créer mon propre cookie JSESSIONID depuis le doPost()
du servlet en utilisant response.setHeader()
.Définition de httponly dans le cookie JSESSIONID (Java EE 5)
Lorsque cela n'a pas fonctionné, j'ai essayé response.addHeader()
. Cela n'a pas fonctionné non plus. Ensuite, j'ai appris que la servlet traitait la conversion de la session en un cookie JSESSIONID et l'insérait dans l'en-tête http, donc si je veux jouer avec ce cookie, je vais devoir écrire un filtre. J'ai écrit un filtre et joué avec setHeader()
/addHeader()
là, encore une fois en vain.
Ensuite, j'ai appris qu'il y avait une action de flush/close dans l'objet de réponse avant qu'il n'atteigne le filtre, donc si je veux manipuler les données, je dois étendre HttpServletResponseWrapper
et passer à filterChain.doFilter()
. C'est fait, mais je n'obtiens toujours pas de résultats. Clairement je fais quelque chose de mal mais je ne sais pas quoi.
Je ne sais pas si cela est en rapport avec la question en question, mais aucun document HTML n'est retourné par le servlet au navigateur. Tout ce qui se passe réellement, c'est que certains objets sont remplis et retournés dans un document JSP. J'ai en quelque sorte supposé 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 ravi de poster un code, mais je veux exclure la possibilité que mes difficultés proviennent d'un malentendu de la théorie en premier.
Ajout de formatage du code parce que othe C'était un peu un mur de texte inaccessible. Pensez toujours à poster un exemple de code de ce que vous avez essayé. –