我有一个(c/s)模式的Java客户端,点击一个按钮通过Cas的RESTful模式登录一个cas里的一个web客户端(类似qq面板打开qq邮箱),而登录的cas web客户端里面有一个iframe框架页,链接的是另外一个cas里面的客户端。现在的情况是点击以后成功登录了web客户端,而web客户端里的iframe框架页里面的另外一个客户端始终是没有登录的状态。
请问各位大侠有什么好的解决方案没有?如果我是直接在浏览器登录web客户端 iframe里的另外一个客户端也登录成功了。是不是cas RESTful模式登录只能是请求TGT时候带的那个地址才行?CAS

解决方案 »

  1.   

      cas应该是拦截你的请求,之后生成一个随机token ,传给前台去登录,(c/s)模式的Java客户端,能被拦截么???
    应用A:
     1:cas往浏览器增加cookie(TGC)  
     2:cas同时创建一个ticket重定向到原来的cas客户端
     3:Cas 客户端应用A的处理
     4:收到ticket后,向cas提交验证ticket
     5:ticket验证后创建session用户进入应用B时,首先仍然会重定向到CAS服务器。不过此时CAS服务器不再要求用户输 入用户名和密码,而是首先自动寻找Cookie,根据Cookie中保存的信息,进行登录。然后,CAS同样给出新的ticket重定向应用B给cas验证(流程同应用A验证方式),如果验证成功则应用B创建session记录CASReceipt信息到session中,以后凭此session登录应用B。
      

  2.   

    c/s客户端就是没有Cookie的概念 所以用RESTful的方式去登录 获取TGC后加在web客户端的链接上,到cas认证后写入Cookie登录成功。现在情况是Web客户端里有一个框架页,也是一个web客户端。可是通过RESTful模式请求的TGC成功登录后写入的Cookie并没有共享给框架页里面的web客户端。
      

  3.   

    框架页指的是iframe?  怎么可能只要是浏览器中的cookie  iframe中的也一定能获取吧,那估计你自己写入的cookie跟cas写入的不一样吧!!  cas认证成功后会生成一个随机的token 你怎么获取的到?你人为的去写入cookie的话 要非常了解cas的原理跟源码吧