Код состояния перенаправления 302 между Tomcat и IIS 7.0 неправильно обрабатывается перенаправителем isapi

Недавно мы установили веб-приложение под Tomcat 6, которое подключается через интерфейс перенаправителя isapi (см. http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html) на сервер IIS 7. Соединитель работает правильно во всех случаях, за исключением некоторых страниц в веб-приложении, которые возвращают статус 302 с новым расположением для перенаправления.

Браузер возвращает 302 и запрашивает новое местоположение, но веб-сервер IIS не перенаправляет запрос на сервер Tomcat и вместо этого возвращает ошибку 404, хотя рабочая карта uri выглядит для меня правильной.

Соответствующее рабочее правило uri:

/WebClientServlet/*=worker1

и URL-адрес нового местоположения выглядит следующим образом:

http://localhost/WebClientServlet/SBS/cmd:editContent2/workflow:false/articleSearch:false/confirmed:false/objectID:131294/---/fpse/db:test/objectID:131294/Copy+of+0001-Intranet+Home-main-ip+%28DE%29


person smeier    schedule 07.10.2010    source источник


Ответы (2)


Я мог решить проблему. Код состояния HTTP на самом деле был 404.11, что означает (в IIS 7), что двойные экранированные последовательности не разрешены. В IIS 7 появилась новая функция, называемая фильтрацией URL-адресов с двойным экранированием. Это фильтр безопасности по умолчанию, который запрещает загружать любые URL-адреса, содержащие последовательности с двойным экранированием. Чтобы решить эту проблему, отключите функцию для веб-сайта, который используется для доступа к приложению tomcat через isapi-redirector. Подробнее см. в разделе http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering.

person smeier    schedule 11.10.2010

Откажитесь от перенаправителя ISAPI. До сегодняшнего дня это то, что я использовал. Ознакомьтесь с маршрутизацией запросов приложений для IIS7. здесь показано, как настроить его. Если вы хотите использовать заголовки узлов, посмотрите здесь.

person Bronumski    schedule 25.10.2010