cas登录的问题

CAS登录过程是这样的:

  1. 登录http://a.alibaba.com/,

  2. 重定向到:http://cas.alibaba.com?url=ht...

  3. 登录页面输入用户名密码登录成功,跳转到http://a.alibaba.com?ticket=xxxx

  4. cas server 认证ticket合法之后,set cookie到浏览器内存中一个cookie;

  5. 以后所有到访问都会带着这个cookie来访问,当然cookie是放在内存中到,浏览器关闭,cookie失效,要重新登录;并且cookie是有失效期的,失效之后,需要重新登录。

我的问题是:

输入用户名密码之后,cas server可以直接set cookie到浏览器,为什么还要多一步校验ticket的过程呢?为什么?感觉有点儿多此一举的啊?

求解答,拜谢~~~

墨色风雨
浏览 1221回答 4
4回答

猛跑小猪

ticket是给客户端(CAS接入客户端)用的,当CAS登录后,浏览器记录了相应的cookie,所以CAS可以知道当前用户是登录过的,但由于跨域的原因,客户端无法直接获取该cookie,所以客户端是无法直接信任当前用户的,所以CAS内部设计了ticket机制。用户登录CAS后,会重定向到客户端,此时会携带一个ticket参数,客户端的CAS过滤器在拿到该ticket后,与CAS服务器交互,校验ticket,以交换认证状态,并且将认证状态记录到客户端自己的session中,客户端是可以管理自己session对应的sessionid的(本质是一个cookie),也就实现了认证过程,并且在CAS未登出或客户端cookie未失效以前,都不用再请求CAS服务端,也算是对性能的优化。

阿波罗的战车

ticket才是CAS的核心,Cookie既不安全也不能跨域看看这个 :链接描述

慕容3067478

谢邀,@kevinz,@大道独行,@andy_hu他们从不同方面进行了说明,我这里就不重复了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java