Потерянные параметры с вафлей и IE
Для отладки я написал действительно простое веб-приложение, которое содержит только простую страницу JSP с небольшой формой, содержащей текстовое поле и кнопку отправки.
Tomcat настроен на использование вафельного фильтра на этой странице. Я знаю, отправьте форму на ту же страницу, но под другим URL, который не покрывается фильтром. Параметры Post теперь полностью утеряны, но передается токен ntml.
Итак, подведем итоги:
- Я иду на http://myserver/autologin/test.jsp (который проходит через вафельный фильтр)
- На этой странице у меня есть форма с действием, указывающим на (http://myserver/content/test.jsp), которая является той же страницей, но на которую ссылаются по другому URL (псевдоним).
- Все параметры POST теряются во втором запросе
Я использую Waffle от waffle.codeplex.com и IE8.
РЕДАКТИРОВАТЬ: Это также происходит, если я использую другие фильтры NTLM. Таким образом, проблема здесь не в Waffle, а в Internet Explorer, который вынуждает проводить повторную аутентификацию сеанса NTLM при каждом выполнении запроса POST.
Кто-нибудь сталкивался с этой проблемой раньше?
2 ответа
В моем примере URL-адрес http://myserver/autologin/test.jsp был отправлен через фильтр, поэтому вафля прошла проверку подлинности и попала на страницу. Когда я затем разместил форму, новый запрос не прошел через вафлю, в результате чего IE принудительно провел повторную аутентификацию через NTLM. Из-за того, что Waffle больше не участвовал в обмене данными, повторная аутентификация не удалась, а параметры записи были потеряны.
Таким образом, быстрое решение состоит в том, чтобы изменить шаблон URL для вафли, чтобы он соответствовал всем сайтам в приложении. т.е. /* вместо / autologin.
У меня такая же проблема с IE8 и Windows7
Следующее решение работает только для меня с IE7 на WindowsXP:
http://billcomer.blogspot.com/2009/01/ntlm-authentication-and-ie-post-problem.html
РЕДАКТИРОВАТЬ: Хорошо, я забыл добавить свой сервер в мою локальную зону Itranet: IE -> Свойства обозревателя -> Безопасность -> Выберите "Локальная интрасеть" и нажмите Сайты -> Дополнительно -> Теперь добавьте свой сервер
http://www.nateirwin.net/2007/01/19/enabling-ntlm-authentication-in-firefox-and-internet-explorer/
Теперь это работает и с IE8 на Windows7