Если вы можете изменить источник приложения, вы можете изменить его так, чтобы вы могли использовать «параметр» метод извлечения JSESSIONID.По умолчанию (по крайней мере в Tomcat) JSESSIONID не будет передаваться в форме сообщения, но вы можете изменить форму, чтобы включить ее.Например, страница JSP может выглядеть следующим образом:
<form action="index.jsp" method="post">
<input type="hidden" name="JSESSIONID" value="${pageContext.session.id}"/>
<input type="submit"/>
</form>
В качестве альтернативы вы можете попытаться получить JSESSIONID из файла cookie сеанса, используя другое условие.Я не пробовал следующее, но представляю, что-то вроде этого может работать для вас:
<rule>
<name>Proxy URL with jsession ID's</name>
<note></note>
<condition type="cookie" name="JSESSIONID"/>
<from>^/([^?]*)\.htm(.*)$</from>
<to type="proxy">%{request-url};jsessionid=%{cookie:JSESSIONID}$2</to>
</rule>
Существуют другие условия, которые вы могли бы потенциально использовать, чтобы проверить, был ли идентификатор сессии действительным ( запрашиваемый-идентификатор сессии)-valid ), созданный из файла cookie ( запрашиваемый идентификатор сеанса из cookie ) или из URL-адреса действия после публикации ( запрашиваемый идентификатор сеанса из URL)).
Я не уверен, какую версию UrlRewriteFilter вы используете, но если вы посмотрите на пример " Постоянное перенаправление входящих URL-адресов, содержащих jsessionid. ", на следующий URL, который выувидим, что JSESSIONID не является параметром, как другие параметры POST / GET.
http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/guide.html
Я настоятельно рекомендую использовать Firefox / Firebug вместе для проверки вашего запроса POST и заголовков, поэтомуВы получите представление о том, что именно передается.(Я уверен, что есть и другие подобные инструменты, которые делают это тоже, Fiddler 2 и т. Д.).