本帖最后由 pywepe 于 2011-07-06 11:13:10 编辑

解决方案 »

  1.   

    cas logout的机制你没有理解
    ticketgrantingticket对象里面有一个list还是map
    忘记了
    放着曾经认证过的所有地址
    当你向cas server发送logout请求时
    它会遍历这个地址容器
    向每一个客户端发logout请求
    这些客户端都会得到分发的logout请求并且把自己的session invalidate
    而不是先把自己的invalidate
    另外renew用默认的就行
    不用自行修改
      

  2.   


    恩,这个之前确实是不知道.也就说不用自己无效化session了.
    那我的这个问题怎么解决呢?我在ff下看过了,在我注销(cas/logout)后,path为/cas的cookie还是存在的.
    有查看过源码,cas服务器调用了Spring的CookieGenerator.removeCookie方法.
    但是在我是,cookie是没有被删除的,为什么?谢谢
      

  3.   

    呵呵,顶cas logout的机制。
      

  4.   

    cas logout的机制你没有理解
    ticketgrantingticket对象里面有一个list还是map
    忘记了
    放着曾经认证过的所有地址
    当你向cas server发送logout请求时
    它会遍历这个地址容器
    向每一个客户端发logout请求
    这些客户端都会得到分发的logout请求并且把自己的session invalidate
    而不是先把自己的invalidate
    另外renew用默认的就行
    不用自行修改 
      

  5.   

    2楼正解,我也没遇到过这问题关于注销不成功,你查下你的配置1:SingleSignOutFilter是否存在2:CAS SERVER端关于COOKIE的配置是否有改动过,默认为security的
    =============================================================
    如果你的SingleSignOutFilter存在,那么就可以按如下步骤进行调试
    1,在SingleSignOutFilter中设置断点
    2,页面上点击注销(直接连接到http://pcenshao:8080/cas/logout?service=http://pcenshao:8080/log/,不用response.sendRedirect("");),
    按照2楼所说的机制,这时CAS server会发一个请求到客户端,带注销的参数
    如果断点拦截到,注销就会成功,否则再断点server端
      

  6.   


    我有看过服务端的代码,确实是向客户端发一个请求,内容是一个xml格式的东西在AbstractWebApplicationService.logOutOfService方法里
      

  7.   


    源代码如何导入到eclipse
      

  8.   

    2楼正解
    关于注销不成功,你查下你的配置1:SingleSignOutFilter是否存在2:CAS SERVER端关于COOKIE的配置是否有改动过,默认为security的
    =============================================================
    如果你的SingleSignOutFilter存在,那么就可以按如下步骤进行调试
    1,在SingleSignOutFilter中设置断点
    2,页面上点击注销(直接连接到http://pcenshao:8080/cas/logout?service=http://pcenshao:8080/log/,不用response.sendRedirect("");),
    按照2楼所说的机制,这时CAS server会发一个请求到客户端,带注销的参数
    如果断点拦截到,注销就会成功,否则再断点server端
      

  9.   

    2楼正解
    关于注销不成功,你查下你的配置1:SingleSignOutFilter是否存在2:CAS SERVER端关于COOKIE的配置是否有改动过,默认为security的
    =============================================================
    如果你的SingleSignOutFilter存在,那么就可以按如下步骤进行调试
    1,在SingleSignOutFilter中设置断点
    2,页面上点击注销(直接连接到http://pcenshao:8080/cas/logout?service=http://pcenshao:8080/log/,不用response.sendRedirect("");),
    按照2楼所说的机制,这时CAS server会发一个请求到客户端,带注销的参数
    如果断点拦截到,注销就会成功,否则再断点server端