公司现在使用cas,其他都搭建好了,就是无法实现单点登出,很头疼~   先上代码:版本:5.1.6服务端:客户端是几个服务一起,A服务作为入口,其他几个服务在A服务下,前端通过ajax调用;子服务ng转,将域名统一在一个host下,避免跨域问题;配置代码:
两个服务配置一样。现在在A服务中退出后并没有让B服务退出,调用B服务的接口依旧可以执行。logoutFilter是仿照security的登出写的一个过滤器,因为仅使用cas-client的SingleSignOutFilter和SingleSignOutHttoSessionListener并没有实现退出,logoutFilter主要只是session.invalidate() 求大哥们指点一下,实在是退不出来,我调试了好久,发现A服务退出后server端根本没有向B服务发送退出请求啊

解决方案 »

  1.   

    你执行注销的服务下,有没有调用cas的注销
      

  2.   


    对于cas4.0在cas-server.xml中搜索logoutAction,将${cas.logout.followServiceRedirects:false}中的false改成true,如下:
    <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
    p:servicesManager-ref="servicesManager"
    p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>
    至于cas4.2,cas-server.xml中少了很多东西,把这三行放到最后试试