设想:
我有一个在最新的 Tomcat 6 中运行的 java web 应用程序。我还有一个提供身份验证的 servlet 过滤器。我支持 BASIC auth 并且它似乎工作正常 - 大多数时候。
第一次浏览器 [选择任何一个 - IE、FireFox、Opera、Safari、Chrome] 访问我们受保护的 URL 之一时,它会显示标准浏览器特定的登录提示。如果您输入正确的用户名/密码 - 一切都很好,创建了一个新会话,一切正常运行。
但是,如果您在初始 BASIC 身份验证对话框中输入了无效凭据,我的身份验证过滤器逻辑会通过返回另一个 401 响应来处理此问题。
问题:不幸的是,此时,Chrome 是唯一会显示另一个 BASIC auth 对话框的浏览器。列出的所有其他浏览器都会自动发送缓存的“Authorization: Basic..”标头——而不是清除它并再次提示用户。
如果有人看到或可能知道为什么会发生这种情况,我将不胜感激任何建议!
谢谢和最好的问候,鲍勃