Tomcat-多个用户获得相同的会话ID

时间:2018-12-13 16:06:46

标签: tomcat cas

我正在尝试解决问题。用户使用CAS SSO登录到应用程序。该用户已登录到其他用户的帐户-通常登录到几秒钟前登录的用户帐户。有谁知道为什么发生这种情况以及如何解决?

我们确实采用了临时解决方法,该方法只是每周轮播一次Web服务器,以清除所有会话。这似乎阻止了它到发生此问题的地方。当然,我们不希望这是永久解决方案。

该系统运行Apache Tomcat 8.0.15和CAS版本3.6

我们准备将Tomcat升级到8.5.35,也许可以修复它,但是我们更愿意证明这一点。到目前为止,我们尚未在发行说明或错误修复中找到我们认为与所遇到的问题完全匹配的任何内容。因此,我们现在也不想排除可能的配置错误。

因此,如果有人对这个原因有任何建议,或者甚至更好地了解了这一点,并知道为您解决了什么,请分享。

我们发现的错误消息如下:

2018年12月5日13:51:07.477严重[catalina-exec-149] org.apache.catalina.core.StandardWrapperValve.invoke Servlet [cas]的Servlet.service(),路径为[/ cas]引发异常[请求处理失败;嵌套异常是具有根本原因的java.lang.NullPointerException]

java.lang.NullPointerException

在我们看来,它不再可以获取sessionID,并且它不再使用新的会话,而只是重用了以前的活动sessionID。听起来像是个错误,但同样也没有找到我们正在升级的版本中已修复它的确定证据。

以下是用户的访问日志中的条目,该用户的jsessionid被重用导致了未经授权的访问。以下日志中的IP和其他可识别信息已被有意更改。

请查看两个不同的IP如何都收到相同的会话ID

185.226.72.189 5D508C736DFACC38B405A5F9B2C61BBC -[11 / Dec / 2018:18:07:00 -0500] GET /cas/login?service=https%3A%2F%2Fsed.instructure.com% 2Flogin%2Fcas HTTP / 1.1 200 5831-Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,like Gecko)Chrome / 70.0.3538.110 Safari / 537.36-

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我的猜测是,在路径中的任何一方,都有过度渴望的缓存反向代理。您没有提到它,但是在大多数情况下,这就是原因。

请确保:Tomcat 8.0.15已于4年前发布,并且Tomcat 8.0于2018年6月达到其end of life-您可能还想确保已获得所有安全修复程序并更新到8.5或9.0,尤其是当您在此处询问安全问题时。