Несоответствие кросс-браузерных файлов cookie? - PullRequest
1 голос
/ 20 апреля 2011

В последние несколько дней мы столкнулись с довольно интересной проблемой, и я гонялся за хвостом, пытаясь ее решить. Буду признателен за понимание.

Сценарий:

У нас есть веб-приложение GWT, и на каком-то этапе при обычном использовании системы пользователю может потребоваться ввести свой пароль, чтобы получить доступ к определенной части приложения. Мы делаем это, отображая диалоговое окно, содержащее iframe с jsp, где пользователь затем вводит свой пароль. Это кодируется и отправляется сервлету jsp, который проверяет учетные данные и, в случае успеха, отправляет куки-файл приложению, информируя его об успешной аутентификации.

Проблема:

Когда мы запускаем приложение в наших локальных средах разработки, все работает отлично. Запросы генерируются правильно, а куки отправляются отлично. Однако, когда мы запускаем это в нашей тестовой среде клиента (которая идентична нашей локальной среде), она отлично работает для Firefox, но не для Chrome и IE. (Мы буквально берем точную войну и бросаем ее в обоих местах).

Некоторый анализатор пакетов, кажется, показывает, что cookie, который генерируется на стороне сервера сервлетом jsp

response.addCookie(cookie);

никогда не достигает Chrome или IE, но это касается Firefox.

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

Кто-нибудь сталкивался с подобной проблемой? Наш технологический стек:

  1. Java 1.6
  2. GWT 2.2.0
  3. Apache Tomcat 7.0.8

Спасибо!

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Я выяснил, в чем дело.

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

0 голосов
/ 20 апреля 2011

Проблема в настройках P3P - в частности, IE очень чувствителен к заголовкам P3P и файлу p3p.xml. Если вы воспользуетесь Google «cookies p3p», вы найдете множество ресурсов по настройке этого параметра (это просто заголовок http и файл xml, который необходимо сделать доступным). И прежде чем вы спросите, причина, по которой он работает в вашей локальной среде, заключается в том, что IE будет применять различные настройки конфиденциальности и безопасности к «зоне Интернета».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...