Новый файл cookie JSESSIONID генерируется при входе в другое пространство имен Struts

Наше веб-приложение имеет два разных пространства имен. Для целей этого вопроса они будут называться /packageOne а также /packageTwo,

При доступе к действиям в Struts /packageOneвсе работает как задумано JSESSIONID не меняется.

На компьютере определенного типа (корпоративный ноутбук принадлежит сотруднику определенного отдела), JSESSIONID изменяется при переходе к действию Struts в /packageTwo, Кроме того, другие свойства в файле cookie исчезают вместе с изменением, поэтому создается впечатление, что новый файл cookie создан на месте. Возвращаясь к действию Struts внутри /packageOne отменяет это изменение, восстанавливая предыдущее JSESSIONID печенье.

Из нашего понимания, новый JSESSIONID создается всякий раз, когда определенный пользовательский сеанс еще не существует. В этом случае мы задаемся вопросом, почему переключение пространств имен означало, что существующий пользовательский сеанс больше не применим и поэтому требует создания нового JSESSIONID,

РЕДАКТИРОВАТЬ: это то, что наши web.xml похоже. Это в значительной степени по умолчанию.

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Struts Project Name</display-name>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

РЕДАКТИРОВАТЬ 2: Вот как мы узнали, что JSESSIONID изменено

  • Мы открыли веб-приложение в Chrome и активировали консоль разработчика.
  • После входа в форму нашего веб-приложения, расположенного в /packageOne пространство имен, мы переходим на главную домашнюю страницу, которая является еще одним действием Struts в том же пространстве имен /packageOne
  • Мы переключились на вкладку "Ресурсы", развернули элемент "Cookies" в дереве ресурсов и нажали на "cookie", который был назван в честь нашего домена.
  • В таблице справа от дерева ресурсов мы видим JSESSIONID в качестве имени одной из строк и отметил это значение. Мы также отметили, что есть и другие области, такие как csrf_token, APISID, HSID, NID и так далее.
  • После перехода к действию Struts в отдельном пространстве имен, а именно /packageTwoмы отметили в консоли разработчика, что cookie с тем же именем теперь имеют другое JSESSIONID значение (в столбце Значение) и что большинство других полей отсутствуют, за исключением одного, которое я забыл, что это было.

Я понимаю, что неясно, о чем мы просим. Мы пытаемся выяснить причины такой аномалии, как в нашей тестовой среде, промежуточной среде и многих других производственных средах для этого же веб-приложения, этого не происходит вообще (JSESSIONID и другие поля в файле cookie остаются неизменными даже после переключения на действие Struts в /packageTwo).

РЕДАКТИРОВАТЬ 3: Больше информации о проблемной среде, в которой произошла эта аномалия:

  • Это корпоративный ноутбук, IBM Thinkpad.
  • Это было связано с корпоративным WiFi.
  • Он принадлежал отделу кадров.
  • Мы не смогли воспроизвести ту же аномалию на корпоративном ноутбуке аналогичной модели и марки (IBM Thinkpad), который был подключен к тому же корпоративному Wi-Fi, с той разницей, что он принадлежал сотруднику ИТ-отдела.
  • Однако мы можем воспроизвести ту же аномалию на другом ПК, принадлежащем одному и тому же сотруднику, и о проблеме сообщили другие сотрудники отдела.

0 ответов

Другие вопросы по тегам