在cas 2.0协议中,cas 终于支持单点登出了。至于单点登出的概念与意义,我想这个也无须作过多的解释。现在直接上干货,对于单点登出,只有两个配置,一个是拦截登出请求的filter,一个是消毁请求人对应session的listener:
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
...
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listen
er-class>
</listener>
cas client在map中存放了cas server端传过来的session信息,所以登出的时候,需要消毁对应session,即从map中去掉session。这个配置是对于cas 2.0协议的,而对于SAML 1.1协议的单点登出的配置方式是:
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
<init-param>
<param-name>artifactParameterName</param-name>
<param-value>SAMLart</param-value>
</init-param>
</filter>
...
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listen
er-class>
</listener>
注意这两个配置不同就是下面的配置多了参数配置,这个参数就是SAML1.1协议的参数标识;对于cas 2.0协议之所以没有配置,那是因为有默认值,默认值是ticket.而对于cas1.0协议是不支持单点登出的。另关于每种协议如何配置可能见
亲爱的朋友,看过这篇过后给个评价吧,这样也可以激励我后续的文章写作.