shiro-cas 單點退出
阿新 • • 發佈:2019-01-22
shiro與CAS整合以後的單點退出
效果任何一個應用退出以後 所有應用都要重新登入
實現思路shiro退出系統以後重新定向到cas的退出
1.重新配置shiro的登出跳轉
shiro退出以後跳轉到cas的退出
cas退出以後通過service引數跳轉回應用介面
Xml程式碼- <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>
<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程式碼- <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>
<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程式碼- <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
- p:servicesManager-ref="servicesManager"
- 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}"/>