我正嘗試在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