Как исправить проблему с идентификатором сессии, когда request.getSession (). GetId () возвращает «идентификатор сессии из 32 символов + (.test)» - PullRequest
0 голосов
/ 12 апреля 2019

Я получаю идентификатор сессии ниже от session.getId().Я хочу выяснить источник, в котором можно исправить и удалить дополнительный текст с идентификатором сеанса.

62E4CAF17CD801A3A8E8BB8802610FF1.test

From HttpServletRequest request

HttpSession session = request.getSession();
String sessionId=session.getId();
System.out.println(sessionId);

Ожидаемый результат: 62E4CAF17CD801A3A8E8BB8802610FF1 из session.getId() 1007* Заранее спасибо !!!

1 Ответ

1 голос
/ 12 апреля 2019

То, что вы получаете от request.getSession().getId() , является правильным идентификатором сеанса.Там нет ничего, чтобы исправить.Вы должны обращаться с этим как с атомарными, случайными, уникальными вещами и не подразумевать никакого значения.

Вы не можете предполагать, что идентификатор будет оставаться длиной 32 символа: это может быть 64 случайных символа в следующем незначительном обновлении, или он может использовать другой алфавит, а не только шестнадцатеричные числа.За ним может последовать больше, чем ".test".

Например, я не могу придумать допустимого бизнес-обоснования для этого требования.

При этом jvmRoute, обычно настраиваемый на сервереЭлемент <Engine> в формате XML обычно добавляется к идентификатору сеанса.Требуется, если вы используете балансировщик нагрузки с липкими сессиями - если вы его удаляете: удачи в его работе.И если вы не используете loadbalancer сегодня: вы можете завтра.

Будьте добры к себе в будущем (или кому-либо еще, поддерживающему приложение, о котором идет речь) и не дразните с идентификатором сессии.

...