无法使用Firefox从Tomcat注销

无法使用Firefox从Tomcat注销,firefox,authentication,tomcat,cas,Firefox,Authentication,Tomcat,Cas,我在使用Tomcat和CAS授权时遇到了意想不到的问题。我无法在Firefox中注销。我被重定向到注销页面,但只要我在地址栏中重新输入应用程序url,它就会像我已登录一样打开(实际上我已登录!) 首先,我做了大量的尝试来修复tomcat配置中的某些内容,然后我阅读了日志,但在我想到检查其他浏览器中的注销行为之前,没有任何帮助 在其他浏览器中,一切正常。 我只是被卡住了,如果有人能给我一个提示,我将不胜感激 我猜[这个问题][1]在某种程度上与我的问题有关,但是,helas,在我应该登录的页面上禁

我在使用Tomcat和CAS授权时遇到了意想不到的问题。我无法在Firefox中注销。我被重定向到注销页面,但只要我在地址栏中重新输入应用程序url,它就会像我已登录一样打开(实际上我已登录!)

首先,我做了大量的尝试来修复tomcat配置中的某些内容,然后我阅读了日志,但在我想到检查其他浏览器中的注销行为之前,没有任何帮助

在其他浏览器中,一切正常。 我只是被卡住了,如果有人能给我一个提示,我将不胜感激

我猜[这个问题][1]在某种程度上与我的问题有关,但是,helas,在我应该登录的页面上禁用缓存也没有帮助

UPD:一些调试信息。Firefox的版本是7.0.1,不幸的是,它不是一个公共应用程序,我不能提供任何url。Firefox似乎缺少response.sendRedirect输出。以下是在除Firefox之外的任何浏览器中都可以使用的最低限度的代码

 session.invalidate();
 response.sendRedirect("https://app:8552/cas/logout"); 
标题 第一个请求-使会话无效并重定向到CAS注销页面

请求头

  • 主机:dev.service.net
  • 用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10.6;rv:7.0.1)Gecko/20100101 Firefox/7.0.1
  • 接受:text/html、application/xhtml+xml、application/xml;q=0.9,/;q=0.8
  • 接受语言:en-us,en;q=0.5
  • 接受编码:gzip,deflate
  • 接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7
  • 连接:保持活力
  • 推荐人:
  • Cookie:JSESSIONID=53B9469EFE9F130E9694F7406B755
响应头

  • 服务器:nginx/1.0.4
  • 日期:2011年10月20日星期四09:20:45 GMT
  • 内容类型:text/html
  • 内容长度:184
  • 地点:
第二个请求-cas注销页面本身

请求头

  • 主持人:dev:8552
  • 用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10.6;rv:7.0.1)Gecko/20100101 Firefox/7.0.1
  • 接受:text/html、application/xhtml+xml、application/xml;q=0.9,/;q=0.8
  • 接受语言:en-us,en;q=0.5
  • 接受编码:gzip,deflate
  • 接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7
  • 连接:保持活力
  • 推荐人:
  • Cookie:JSESSIONID=8A68F008825A0F0D14C6BF803E1332CF;来宾语言ID=en\u US;COOKIE_SUPPORT=true
响应头

  • 服务器:ApacheCoote/1.1
  • Pragma:没有缓存
  • 到期时间:1970年1月1日星期四格林威治标准时间00:00:00
  • 缓存控制:无缓存,无存储
  • 内容类型:text/html;字符集=UTF-8
  • 内容语言:en US
  • 内容长度:1226
  • 日期:2011年10月20日星期四格林威治标准时间15:53:57
第三个请求-我们正在重新调谐到实际上应该 将我们重定向到登录页面,但它不会

请求头

  • 主机:dev.service.net
  • 用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10.6;rv:7.0.1)Gecko/20100101 Firefox/7.0.1
  • 接受:text/html、application/xhtml+xml、application/xml;q=0.9,/;q=0.8
  • 接受语言:en-us,en;q=0.5
  • 接受编码:gzip,deflate
  • 接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.7
  • 连接:保持活力
  • Cookie:JSESSIONID=53B9469EFE9F130E9694F7406B755
响应头

  • 服务器:ApacheCoote/1.1
  • Pragma:没有缓存
  • 到期时间:1970年1月1日星期四格林威治标准时间00:00:00
  • 缓存控制:无缓存,无存储
  • 内容类型:text/html;字符集=UTF-8
  • 内容语言:en US
  • 内容长度:1226
  • 日期:2011年10月20日星期四格林威治标准时间13:30:51

根据标题,您在两台不同的主机上维护两个不同的会话。当您在第一台主机上请求注销时,您将被重定向到第二台主机(它使用不同的会话cookie)。第二台主机的会话cookie实际上是无效的(根据
Set cookie
头的存在)。但是根据上一个请求,会话尚未在服务器端重新创建(没有
Set Cookie
头)。这意味着
response.sendRedirect()
之前的
session.invalidate()
以某种方式失败,或者页面实际上是从浏览器缓存请求的

在Firebug中,您应该能够通过在“网络”选项卡中检查请求的文本颜色来查看是否从浏览器缓存请求页面。如果它是灰色的,则表示它是从浏览器缓存中提供的。对于Firefox,在
无缓存、无存储
标题旁边,实际上必须有
必须重新验证
标题。您需要将服务器配置为将该条目添加到标题中,或为此更改/创建一个
过滤器

另见:

哪一版本的Firefox?你有该网站的实时链接吗?@mattball提供了这些有疑问的信息。谢谢你的提醒。你到底是怎么注销的?您是否使会话无效?您能否提供注销的HTTP请求和响应头,以及您自动登录的后续请求的HTTP请求和响应头?您可以使用Firebug来收集它们。@BalusC-提供的标题,更新的问题。这些都是单独的请求标题。请同时提供响应标题。另外,请提供后续请求/响应的标题。感谢您的回答,感谢您耐心等待了这么长时间)Helas,只有重新启动firefox才有帮助。确实很奇怪的问题。当我找出问题所在时,我会告诉你。