weblogic jsessionid - PullRequest
       23

weblogic jsessionid

9 голосов
/ 21 июня 2011

Я запускаю Weblogic 10.3 локально и у меня есть вопрос о сессионном идентификаторе, который он генерирует Когда я печатаю session.getId (), я вижу что-то похожее на это:

BBp9TAACMTglQ2TDFAKR4tpyXg73LZDQJ2PtT9x8htG1tWY122aa! 869187422! 1308677666322

что это за восклицательные знаки и что следует за ними, особенно вторая пара:! 1308677666322? Похоже, иногда сервер добавляет его, а иногда нет. Я считаю, что weblogic добавляет его, если я использую тот же браузер для входа в свое приложение во второй раз. Этот файл cookie как-то связан?

Ответы [ 2 ]

22 голосов
/ 22 июня 2011

Просмотр некоторых случайно сгенерированных JSessionID Weblogic из моего собственного приложения

BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj!-314662473

и

BrYiFED29itaC4EBpWYM8RKVQQauHkvnTsA2OAKUPZXVc9oUD5fB!-784323496.

Теперь, если вы заметили часть идентификатора сеанса после первого! т.е. 314662473 и 784323496.

Этот номер является уникальным идентификатором , который Weblogic дает работающей JVM, т.е. работающему серверу Weblogic.

Если в вашем приложении более одного сервера, Weblogic знает, как перенаправить сеанс обратно на правильный сервер, используя этот 9-значный номер JVM, который является частью идентификатора сеанса.

Каждый раз, когда вы перезапускаете сервер weblogic, он генерирует новый идентификатор JVM и использует его, пока работает этот сервер weblogic.Поэтому любые обращения к этому серверу будут иметь одинаковый идентификатор в конце идентификатора сеанса.

Формат идентификатора сеанса :

JSESSIONID = SESSION_ID! PRIMARY_JVMID_HASH! SECONDARY_JVM_HASH! CREATION_TIME

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

JSESSIONID = SESSION_ID! PRIMARY_JVMID_HASH! CREATION_TIME

, в некоторых случаях он не появляется, яВы видели, что это, как правило, зависит от браузера, отображается сессионный идентификатор в адресной строке или нет

0 голосов
/ 18 июня 2014

WebLogic Server использует эти идентификаторы для поддержания соответствия HTTP-сеанса в модели репликации в памяти WebLogic Cluster.

Для тех веб-приложений, у которых включена репликация сеанса HTTP (в дескрипторе развертывания weblogic.xml и по умолчанию отключена) WebLogic сохранит основную и резервную копию сеанса HTTP в кластере.

Чтобы избежать издержек кластера, подключаемый модуль прокси-сервера WebLogic (развернутый на уровне веб-уровня) анализирует файл cookie сеанса и перенаправляет каждый запрос на WLS, на котором размещена ваша основная копия. В случае сбоя или перегрузки управляемого сервера, на котором размещен основной сеанс, подключаемый модуль прокси-сервера перенаправляет запрос в экземпляр, где находится сеанс HTTP.

Плагин прокси будет отслеживать динамический список всех членов кластера WebLogic в виде пар (идентификаторы JVM / IP: порты) для соответствующего перенаправления каждого запроса.

Если в вашем приложении не включена функция репликации в памяти, ваш файл cookie будет содержать только идентификатор JVM, в котором находится HTTP Sesion (основная и уникальная копия).

...