java - cas登录的问题
本文介绍了java - cas登录的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
CAS登录过程是这样的:
登录页面输入用户名密码登录成功,跳转到http://a.alibaba.com?ticket=xxxx
cas server 认证ticket合法之后,set cookie到浏览器内存中一个cookie;
以后所有到访问都会带着这个cookie来访问,当然cookie是放在内存中到,浏览器关闭,cookie失效,要重新登录;并且cookie是有失效期的,失效之后,需要重新登录。
我的问题是:
输入用户名密码之后,cas server可以直接set cookie到浏览器,为什么还要多一步校验ticket的过程呢?为什么?感觉有点儿多此一举的啊?
求解答,拜谢~~~
解决方案
ticket
是给客户端(CAS接入客户端)用的,当CAS登录后,浏览器记录了相应的cookie
,所以CAS可以知道当前用户是登录过的,但由于跨域的原因,客户端无法直接获取该cookie
,所以客户端是无法直接信任当前用户的,所以CAS内部设计了ticket
机制。用户登录CAS后,会重定向到客户端,此时会携带一个ticket
参数,客户端的CAS过滤器在拿到该ticket
后,与CAS服务器交互,校验ticket
,以交换认证状态,并且将认证状态记录到客户端自己的session
中,客户端是可以管理自己session
对应的sessionid
的(本质是一个cookie
),也就实现了认证过程,并且在CAS未登出或客户端cookie
未失效以前,都不用再请求CAS服务端,也算是对性能的优化。
这篇关于java - cas登录的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文