Установка httponly в cookie JSESSIONID (Java EE 5)

Я пытаюсь установить флаг httponly на cookie JSESSIONID. Я работаю в Java EE 5, однако, и не могу использовать setHttpOnly(). Сначала я пытался создать свой собственный cookie JSESSIONID из сервлета doPost() при помощи response.setHeader().

Когда это не работало, я попробовал response.addHeader(). Это не работало также. Затем я узнал, что сервлет обработал преобразование сессии в cookie JSESSIONID и вставку его в http заголовок поэтому, если я хочу играть с тем cookie, я должен буду записать фильтр. Я записал фильтр и играл с setHeader()/addHeader() там, снова напрасно.

Затем я узнал, что существует некоторое действие сброса/завершения, продолжающееся в объекте ответа, прежде чем это доберется до фильтра поэтому, если я хочу управлять данными, я должен расшириться HttpServletResponseWrapper и передача это к filterChain.doFilter(). Это сделано, но я все еще не получаю результаты. Очевидно я делаю что-то не так, но я не знаю что.

Я не уверен, относится ли это вообще к вопросу под рукой, но никакой документ HTML не возвращается сервлетом к браузеру. Все это действительно происходит, - то, что некоторые объекты заполняются и возвращаются к документу JSP. У меня есть вид принятых, что объект Сессии превращен в cookie JSESSIONID и перенесен - наряду с объектами, добавленными к запросу - в http заголовке прежде чем быть отправленным в браузер.

Я был бы рад отправить некоторый код, но я хочу исключить возможность, что мои трудности происходят от неверного толкования теории сначала.

13
задан Arjan Tijms 22 June 2013 в 10:20
поделиться

1 ответ

Поскольку JSESSIONID cookie управляется servletcontainer, эта настройка специфична для servletcontainer. Неясно, какой из них вы используете, поэтому вот Apache Tomcat 6.0 целевой ответ, чтобы вы знали, в каком направлении искать свой servletcontainer: вам нужно установить useHttpOnly атрибут элемента веб-приложения в true.

<Context useHttpOnly="true">
    ...
</Context>

Также смотрите эту документацию по Tomcat об элементе .

11
ответ дан 2 December 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: