Как получить разрешение на отправку jsessionid-cookies с флагом безопасности при использовании безопасного канала - PullRequest
6 голосов
/ 14 июня 2010

Я использую Tomcat в своей производственной среде, а Jetty - в своей среде тестирования (через jetty-maven-plugin).

Tomcat устанавливает флаг безопасности для файла cookie jsessionid, когда он отправляет его поверхбезопасный канал (https), который мне кажется хорошей идеей, потому что он предотвращает доступ к сеансу, когда пользователь нажимает на http: // - link .Но Джетти не так!

Я бы хотел заставить Jetty вести себя как Tomcat и всегда устанавливать флаг безопасности для файлов cookie jsessionid-cookie, отправляемых по безопасному каналу, потому что в противном случае моя среда тестирования ведет себя значительно иначе, чем моя производственная среда.Но я не могу найти какой-либо вариант конфигурации для достижения этой цели.

Мне также интересно, если это ошибка безопасности в Jetty.Потому что если не пометить отправку cookie-файла jsessionid по безопасному каналу как защищенного, откроется безопасный сеанс, если пользователь переключится обратно на незащищенный канал.

Ответы [ 2 ]

4 голосов
/ 14 августа 2012

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

Добавьте следующее в WEB-INF / jetty-web.xml

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="sessionHandler">
        <Get name="sessionManager">
            <Set name="secureCookies" type="boolean">true</Set>
        </Get>
    </Get>
</Configure>
1 голос
/ 02 мая 2011

Изменения конфигурации, необходимые для установки свойства secureCookies, можно добавить в файл jetty-web.xml:

<Get name="sessionHandler">
  <Get name="sessionManager">
    <Set name="secureCookies">true</Set>
  </Get>
</Get>
...