我正尝试在web.xml中使用Java Servlet和过滤器映射来实现CAS单点登出。
web.xml中的过滤器就像这样。CAS服务器使用Java Servlet进行单点登出
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/out</url-pattern>
</filter-mapping>
而上 '/出' URL模式,调用的Java Servlet它由session.invalidate()方法,之后重定向CAS /注销/。但是我仍然无法正常注销。
这是我的日志:
DEBUG [http-bio-8080-exec-10] (HashMapBackedSessionMappingStorage.java:46) - Attempting to remove Session=[]
DEBUG [http-bio-8080-exec-10] (HashMapBackedSessionMappingStorage.java:55) - No mapping for session found. Ignoring.
请帮助。提前致谢。
谢谢先生,回答我的问题。我正如你所说那样做。我使用session.invalidate(),然后通过使用response.sendRedirect(“CAS服务器注销URL”)重定向到cas url的注销url;它成功地重定向到cas注销url。但是,当我点击登录按钮时,它再次能够登录。 – iamrameshkr 2014-08-31 17:24:01
我正在做类似于@iamrameshkr的东西,并得到相同的结果。也许我的期望是错误的?我认为如果我添加过滤器,它也会自动使CAS服务器上的会话失效(例如验证令牌时)。那么[casServerUrlPrefix'过滤器参数](https://github.com/Jasig/java-cas-client#configuration-1)的目的是什么? – watery 2016-04-26 14:06:50