我目前正在使用CAS服务器3.5.2进行测试,我遇到了注销问题。我在这些主题上的知识有限,我不能在这一点上走得更远。
我安装了一个CAS服务器,并且有两个相同java应用程序的实例指向该CAS服务器(如果我不使用adecuates术语,请道歉)。因此,当我访问我的客户端应用程序的受保护资源时,我被重定向到CAS登录页面,如果凭据正确,我检查我的数据库,然后访问资源。然后,如果我从客户端应用程序的第二个实例访问相同的受保护资源,则不会重定向到登录页面。太好了。
问题出在注销。为此,我首先执行session.invalidate()并访问CAS注销页面。这是因为,从我注销的应用程序中,我必须再次登录才能访问受保护的资源。另一方面,第二个应用程序保持连接,我无需再次登录即可访问受保护的资源。好吧,我知道session.invalidate()对于第一个应用程序是本地的,但是我认为CAS服务器应该已经“广播”到另一个应用程序,但是没有。
有没有人可以给我关于单人唱出主题的经验反馈?
发布于 2015-01-22 15:45:13
首先,确保在CAS属性文件中启用了SSO,如果没有,请确保在客户端中启用了SSO侦听器。如果启用了它们,那么我猜测问题出在LogoutManagerImpl.java或SamlCompliantLogoutMessageCreator.java文件中。
CAS中的SSO是通过传输SAML XML消息通过反向通道执行的。去年,我在使用SSO函数时遇到了一个问题,结果发现广播的XML消息有一个错误,导致无法对其进行解析。
发布于 2015-02-11 21:44:12
最后我解决了..。在web.xml中,过滤器的顺序很重要。用于单点登出的筛选器必须放在开头。请参阅https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1#CASClientforJava3.1-OrderofRequiredFilters一节
https://stackoverflow.com/questions/28067619
复制相似问题