Nano Hash - криптовалюты, майнинг, программирование

Chrome и JSESSIONID

Следующая проблема с хромом ...:

Я запустил приложение Grails 1.3.7 на сервере. Я заметил, что когда я запрашиваю статический контент (например, нединамические html-файлы) из Chrome, Chrome создает два JSESSIONID-cookie. Первый - при появлении окна входа в систему, второй - после успешного входа в систему. Если я хочу обновить страницу или запросить другой ресурс, мне придется снова войти в систему. (Я думаю, потому что Tomcat не понимает этих двух файлов cookie)

Я пробовал это с FF, но FF просто создает один файл cookie и отлично работает. Кроме того, я запускал приложение локально, и оно отлично работает даже с хромом. Итак, что-то с tomecat должно быть не так.

Окружающая среда:

  • Grails-Application 1.3.7 (с Spring-Security-Core 1.2.4)
  • Apache Tomcat 7 (в Windows Server 2008)

Мой httpd.conf:

ProxyPass /manager http://myUrl:8080/manager
ProxyPass /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPassReverse /manager http://myUrl:8080/manager
ProxyPassReverse /myGrailsApp http://myUrl:8080/myGrailsApp

ProxyPass / http://myUrl:8080/myGrailsApp/frontend
ProxyPassReverse / http://myUrl:8080/myGrailsApp/frontend

Заранее спасибо.

Обновление 1:

Я перестроил, повторно развернул приложение и снова перезапустил tomcat.

Теперь я заметил: Chrome больше не генерирует два файла cookie. Но ошибка та же. Каждый раз, когда я что-то обновляю или запрашиваю, JSESSIONID меняется, и мне приходится снова входить в систему.

Короткие часы на tomcat-сервере отображают большое количество активных сессий - из chrome ...

Обновление 2:

Пробовал локально на сервере (с хромом):

  • localhost / myApp / frontend => Apache => ОТКАЗ
  • локальный: 8080 / myApp / frontend => Tomcat => ОК

Похоже, проблема в Apache (?).

Решение:

Я понял :) Шаблоны Grails * .gsp всегда запрашивали 'favicon.ico' при каждом запросе. Причина появления ошибки в статическом контенте (например, в html-файлах) заключается в том, что мы перенаправляем на эти ресурсы из нашего приложения Grails.

Итак, я поместил favicon.ico в нужное место, и теперь он работает :)

Эта ошибка касается только Google Chrome, в FF и IE все работало без проблем.


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

Ответы:


1

Я тоже столкнулся с этой проблемой. Мне потребовалось время, чтобы разобраться в происходящем (включая анализ с помощью Wireshark), и еще больше времени, чтобы найти жизнеспособное решение. Наконец я нашел эту ветку https://vaadin.com/forum/-/message_boards/view_message/1216366

Похоже, это проблема Chrome / Safari (браузеры Webkit?) И того, как они обрабатывают перенаправленные файлы cookie. Простое исправление заключалось в том, чтобы добавить context.xml в каталог META-INF в моем весеннем проекте, содержащем

<?xml version='1.0' encoding='utf-8'?>
<Context sessionCookiePathUsesTrailingSlash='false'>
</Context>

а затем повторно развернуть новый файл войны. Теперь все работает как задумано.

20.03.2012
  • Но я должен признать, что он внезапно перестал работать у меня вскоре после того, как я опубликовал. такие швы, как это было частью исправления, другая часть заключалась в замене Jkmount на ProxyPass и ProxyPassReverse. Поскольку я внес эти изменения, он работает очень хорошо 28.03.2012
  • Да, я также думаю, что было бы несколько шагов для хорошего и чистого решения. Мое исправление было не таким чистым, как ваше: P 29.03.2012
  • Это устранило мою проблему, когда пользователь запрашивал / myapp, Широ перенаправлял их на / myapp / login, а затем успешный вход перенаправлял на исходный запрос (/ myapp). Проблема заключалась в том, что файл cookie, который был установлен в первоначальном запросе, имел путь = / myapp / (с косой чертой), и Webkit не использовал этот файл cookie при перенаправлении, поэтому пользователь снова отправлялся обратно на страницу входа. Большое спасибо за решение! 19.06.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..