1. 程式人生 > >shiro-cas 單點退出

shiro-cas 單點退出

shiro與CAS整合以後的單點退出

效果任何一個應用退出以後 所有應用都要重新登入

實現思路shiro退出系統以後重新定向到cas的退出

1.重新配置shiro的登出跳轉

  shiro退出以後跳轉到cas的退出

  cas退出以後通過service引數跳轉回應用介面

Xml程式碼 複製程式碼 收藏程式碼
  1. <bean id="logout" class="org.apache.shiro.web.filter.authc.LogoutFilter">  
  2.           <property name="redirectUrl"   
  3.            value="http://localhost:7070/cas/logout?service=http://localhost:8088/pwenter/cas-login"/>  
  4. </bean>  
<bean id="logout" class="org.apache.shiro.web.filter.authc.LogoutFilter">          <property name="redirectUrl" 	       value="http://localhost:7070/cas/logout?service=http://localhost:8088/pwenter/cas-login"/></bean>

2.覆蓋shiro的預設退出實現 

將配置的logout 覆蓋shiro預設的logout

Xml程式碼 複製程式碼 收藏程式碼
  1. <property name="filters">  
  2.     <util:map>  
  3.         <entry key="authc" value-ref="formAuthenticationFilter" />  
  4.         <entry key="cas" value-ref="casFilter" />  
  5.         <entry key="logout" value-ref="logout" />  
  6.     </util:map>  
  7. </property>  
<property name="filters">	<util:map>		<entry key="authc" value-ref="formAuthenticationFilter" />		<entry key="cas" value-ref="casFilter" />		<entry key="logout" value-ref="logout" />	</util:map></property>

3.開啟cas的退出重定向開關 修改cas中的cas-servlet.xml檔案

將cas.logout.followServiceRedirects:false屬性改為cas.logout.followServiceRedirects:true

Xml程式碼 複製程式碼 收藏程式碼
  1. <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"  
  2.         p:servicesManager-ref="servicesManager"  
  3.         p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>  
<bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"        p:servicesManager-ref="servicesManager"        p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>