2

设想:

我有一个在最新的 Tomcat 6 中运行的 java web 应用程序。我还有一个提供身份验证的 servlet 过滤器。我支持 BASIC auth 并且它似乎工作正常 - 大多数时候。

第一次浏览器 [选择任何一个 - IE、FireFox、Opera、Safari、Chrome] 访问我们受保护的 URL 之一时,它会显示标准浏览器特定的登录提示。如果您输入正确的用户名/密码 - 一切都很好,创建了一个新会话,一切正常运行。

但是,如果您在初始 BASIC 身份验证对话框中输入了无效凭据,我的身份验证过滤器逻辑会通过返回另一个 401 响应来处理此问题。

问题:不幸的是,此时,Chrome 是唯一会显示另一个 BASIC auth 对话框的浏览器。列出的所有其他浏览器都会自动发送缓存的“Authorization: Basic..”标头——而不是清除它并再次提示用户。

如果有人看到或可能知道为什么会发生这种情况,我将不胜感激任何建议!

谢谢和最好的问候,鲍勃

4

1 回答 1

0

问题解决了:

再次查看我的代码后,我发现在没有设置 WWW-Authenticate HEADER 的情况下返回了 401。

-鲍勃

于 2010-12-28T22:10:30.327 回答