Jetty 7 не позволит мне настроить путь файла cookie сеанса - PullRequest
2 голосов
/ 19 апреля 2010

При использовании Jetty 7.0.2 я не могу установить пользовательский путь к сеансам cookie.

Я размещаю несколько сайтов на одном сервере, используя apache для прокси-запросов в соответствующем контексте.(заменил http на htp, поскольку stackoverflow считает, что мои множественные ссылки могут быть спамом)

<VirtualHost *:80>
  ServerName context.domain.com

  ProxyRequests On
  ProxyPreserveHost Off

  <Proxy *:80>
    Order deny,allow
    Allow from 127.0.0.1
  </Proxy>

  ProxyPass / htp://localhost:8080/context/
  ProxyPassReverse / htp://localhost:8080/context/

  <Location />
    Order allow,deny
    Allow from all
  </Location>
</VirtualHost>

Jetty работает на том же сервере через порт 8080, и мой контекст доступен @ / context

Пользовательобращается к приложению @ htp: //context.domain.com, но jetty устанавливает путь для файла cookie сеанса @ / context.Это предотвращает доступ браузера к cookie, поскольку фактический путь к контексту не используется.Мне нужно переопределить настройку Jetty по умолчанию, чтобы установить cookie для контекста, и указать путь в корне (/).

В моем файле webdefault.xml для Jetty есть следующее, которое частично работает:

<context-param>
  <param-name>org.eclipse.jetty.servlet.SessionCookie</param-name>
  <param-value>CustomCookieName</param-value>
</context-param>
<context-param>
  <param-name>org.eclipse.jetty.servlet.SessionPath</param-name>
  <param-value>/</param-value>
</context-param>

Файл cookie правильно настроен с пользовательским именем, но он НЕ устанавливает SessionPath.Независимо от того, какое значение я установил на ... он отказывается устанавливать cookie-файл по какому-либо пути, но /context.

Это сводит меня с ума, поэтому любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 05 мая 2010

Похоже, вы нажали эту ошибку , в результате чего Jetty всегда использует контекстный путь для файлов cookie сеанса.

1 голос
/ 19 апреля 2010

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

Если ваш файл cookie генерируется из / Context, ваш пользователь может даже получить доступ к htp: //foobar.domain.com, он все равно будет выглядеть так, как будто он пришел из / Context, потому что именно там он был сгенерирован. Единственный способ обойти это - создать cookie на корневом уровне, а не на страницах из области / Context. Это сделано для того, чтобы монстры cookie не могли украсть информацию cookie с сайтов, которым они тоже не принадлежат (если вы разместите свой сайт на foo.yahoo.com и создадите cookie, это сохранит другой сайт, который вам не принадлежит (bar.yahoo). .com) от просмотра вашего cookie. Это сделано специально.

...