java - cas登录的问题

查看:106
本文介绍了java - 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的过程呢?为什么?感觉有点儿多此一举的啊?

求解答,拜谢~~~

解决方案

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

这篇关于java - cas登录的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆