Вы захотите удалить его из Tomcat, как предлагали другие, но у вас все равно будут проблемы с добавлением Широ в конец при перенаправлении, если у вас еще не установлен файл cookie. Есть два открытых тикета по проблеме:
https://issues.apache.org/jira/browse/SHIRO-360
https://issues.apache.org/jira/browse/SHIRO-361
Я попытался заставить переписать URL Таки, и через некоторое время добился частичного успеха. Проблема в том, что Широ не вызывает response.encodeURL() и поэтому отключает исходящие правила. Мне удалось перенаправить входящие запросы на удаление идентификатора сеанса с помощью этих двух правил:
<rule>
<note>Remove jsessionid from embedded urls - for urls WITH query parameters</note>
<from>^/(.*);JSESSIONID=.*[?](.*)$</from>
<to type="redirect">/$1?$2</to>
</rule>
<rule>
<note>Remove jsessionid from embedded urls - for urls WITHOUT query parameters</note>
<from>^/(.*);JSESSIONID=.*[^?]$</from>
<to type="redirect">/$1</to>
</rule>
Это, по крайней мере, заставляет его не отображаться в браузере, но это не решает проблему полностью, потому что идентификатор сеанса был отправлен по URL-адресу и перенаправлен на место без него. Лучше бы он вообще никогда не появлялся.
ОБНОВЛЕНИЕ:
Исправлены SHIRO-360 и SHIRO-361, исправления есть в Shiro 1.3.0. По словам Брайана Демерса в SHIRO-361:
Установите sessionManager.sessionIdUrlRewritingEnabled = false
, чтобы отключить добавление JSESSIONID к URL-адресу.
ПРИМЕЧАНИЕ: если пользователь отключил файлы cookie, он НЕ сможет войти в систему, если это отключено.
person
Stephen M -on strike-
schedule
19.11.2014