32.3.2 Single Logout(单点退出)

CAS协议支持单次注销,可以轻松添加到您的Spring安全配置中。以下是对处理单次注销的Spring安全配置的更新

 

logout 元素将用户从本地应用程序中注销,但不会终止与CAS服务器或任何其他已登录应用程序的会话。requestSingleLogoutFilter筛选器将允许请求/spring_security_cas_logout的网址,以便将应用程序重定向到已配置的cas服务器注销网址。。然后,CAS服务器将向所有已登录的服务发送单次注销请求。单点登录过滤器singleLogoutFilter 通过在静态map中查找HttpSession并使其无效来处理单点登录请求。

为什么注销logout 元素和单个注销过滤器singleLogoutFilter 都是需要的,这可能令人困惑。最好的做法是先在本地注销,因为单点登录过滤器SingleSignOutFilter 只是将HttpSession存储在一个静态map中,以便对它进行无效调用。使用上述配置,注销流程将是:

1、用户请求/logout,这将使用户退出本地应用程序,并将用户发送到注销成功页面。

2、注销成功页面/cas-logout.jsp应该指示用户单击指向/logout/cas的链接,以便注销所有应用程序。

3、当用户单击该链接时,用户将被重定向到CAS单一注销网址(https://localhost:9443/cas/logout).

4、在CAS服务器端,CAS单一注销网址然后向所有CAS服务提交单一注销请求。在CAS服务端,JASIG的SingleSignOutFilter通过无效化原始会话来处理注销请求。

下一步是将以下内容添加到您的web.xml

 

 使用SingleSignOutFilter时,您可能会遇到一些编码问题。因此,建议添加字符编码过滤器CharacterEncodingFilter,以确保在使用SingleSignOutFilter时字符编码是正确的。同样,请参考JASIG的文档了解详细信息。SingleSignOuthTTPSesionListener确保当一个HttpSession过期时,用于单次注销的映射被删除。

posted @ 2020-08-15 12:36  节日快乐  阅读(407)  评论(0编辑  收藏  举报