对于调试,我编写了一个非常简单的Web应用程序,它只包含一个简单的JSP页面,其中包含一个包含文本字段和提交按钮的小表单。
tomcat配置为在此页面上使用Waffle Filter。我知道将表单发送到同一页面,但是在过滤器未涵盖的另一个URL下。后置参数现在完全丢失,但是传输了一个ntml令牌。
所以要总结一下:
我正在使用来自waffle.codeplex.com和IE8的Waffle。
编辑:如果我使用其他NTLM过滤器,也会发生这种情况。所以问题不在于Waffle,而是Internet Explorer每次发出POST请求时都会强制重新验证NTLM会话。
之前有没有人遇到过这个问题?
答案 0 :(得分:1)
我对IE8和Windows7有同样的问题
以下解决方案仅适用于WindowsXP上的IE7:
http://billcomer.blogspot.com/2009/01/ntlm-authentication-and-ie-post-problem.html
修改强> 好的,我忘了将我的服务器添加到我当地的Itranet区域: IE - >互联网选项 - >安全 - >选择“Locale Intranet”并单击Sites - >高级 - >现在添加您的服务器
http://www.nateirwin.net/2007/01/19/enabling-ntlm-authentication-in-firefox-and-internet-explorer/
现在它也适用于Windows7上的IE8
答案 1 :(得分:0)
在我的示例中,网址http://myserver/autologin/test.jsp是通过过滤器发送的,因此华夫饼正确验证并登陆页面。当我发布表单时,新请求没有经过waffle,导致IE强制通过NTLM重新进行身份验证。由于Waffle不再参与通信,重新认证失败,后期参数丢失。
因此,快速解决方案是更改华夫饼干的网址格式,以便它匹配应用程序中的所有网站。即/ *而不是/ autologin。