版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1)PPT流程图:一、用户第一次访问web1应用。
二、用户第一次访问web2应用。
困扰了好久的流程,其实静下进来搜个一二十篇百度上的讲解,集众家之所长,加上自己的理解,不难发现,流程理解下来很是简单。下面讲一下原理:
2)简易流程图:一、用户第一次访问web1应用
二、用户第一次访问web2应用
3)文字流程:一、用户第一次访问web1应用1、Web1的客户端检测到session中无令牌凭证信息,将用户重定向到Cas-server端进行验证。2、s端检测到传来的请求没有带ST参数,所以跳到Login页面进行用户登录验证。3、s端认证结束后,生成TGT令牌和随机Ticket-ST,并且在用户的浏览器中写入Cookie-STC,随后让用户的浏览器重定向到Web1应用中,并将随机参数ST带上一起传参过去,之后Web1的cas客户端将检测到此ST参数,发送到server端进行校验,校验成功之后,服务端主动销毁此ST,并继续返回到web1应用中,web1应用此时将令牌信息写入到自己的session中,从而完成用户的单点登录认证,服务端同样的也会用一个Map记录web1加入到单点登录范围内。4、带上ST参数重定向到web1应用。5、web1拿到ST参数发送到s端进行校验。6、校验成功,进入W1应用,w1将令牌凭证TGT写入session,与此同时,完成用户第一次访问应用web1的情形。二、用户第一次访问web2应用1、此时,用户第一次访问Web2应用,web2在自己的session中无法找到令牌信息,所以将用户重定向到S端,S端拿到用户的浏览器传来的cookie,从里面读出TGT,生成一个随机的ST,发回w2,w2拿到ST,就立即和S端进行校验,S端校验成功后,立即销毁此ST,并将web2加入到单点登录范围内,用户此时可以在Web2中进行业务操作,web2也同样的会在session中记录此令牌凭证,至此,完成用户的单点登录功能。当用户下次访问web1或者web2的时候,由于各自的session中能够拿到TGT信息,所以,只需要从中读到每次请求时所带的ST参数即可和S端进行交互,验证正确之后达到一站登录,N站访问的SSO效果。2、w2让用户浏览器带cookie重定向到S端。3、s端认证结束后,生成TGT令牌和随机Ticket-ST,并且在用户的浏览器中写入Cookie-STC,随后让用户的浏览器重定向到Web1应用中,并将随机参数ST带上一起传参过去,之后Web1的cas客户端将检测到此ST参数,发送到server端进行校验,校验成功之后,服务端主动销毁此ST,并继续返回到web1应用中,web1应用此时将令牌信息写入到自己的session中,从而完成用户的单点登录认证,服务端同样的也会用一个Map记录web1加入到单点登录范围内。4、w2根据参数ST发回到s端进行校验5、校验成功,可以访问W2,W2令牌写入session。4)程序流程来两段程序玩玩,打开你的火狐谷歌调试器,IE的就算了。用Tomcat
7
搭载
cas-server
端。用Tomcat
6
搭载你的web1和web2和web3...之后我们开始今天的玩法1.不登陆直接访问client22.不登陆直接访问client33.登录client2成功后,访问client3(同域
)4.登录client3成功后,访问client2(同域
)5.登录client2或者client3成功后,访问client4(不同域)6.用client2去访问client3
(同域情况下用ajax拿后台的数据过来)(同域
)7.用client2去访问client4(不同域情况下用ajax+jsonp跨域拿后台数据)(不同域
)8.你是不是又想到了更疯狂的,来留言实验一把。实验截图和结果以及调试分析:测试一:(1)不登陆直接访问client2(2)不登陆直接访问client3client2的web.xml
<!--用于单点登录--><filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name><param-value>41:8080/casServer/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>41:8080/casServer/serviceValidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>41:8080</param-value></init-param></filter>
从中可以看到client2的域网址是41:8080,地址是41:8080/client2/client3的web.xml
<!--用于单点登录--><filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name><param-value>41:8080/casServer/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>41:8080/casServer/serviceValidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>41:8080</param-value></init-param></filter>
从中可以看到client3的域网址是41:8080,地址是41:8080/client3/1.现在打开你的浏览器,抡起袖子疯狂点击我们可怜的web应用--client2,果然,直接跳到了cas的登录界面。下面的cookie里面毛都米有。
测试二:(3).登录client2成功后,访问client3(同域
)(4).登录client3成功后,访问client2(同域
)1.好吧,我们输入用户名和密码,点击登录
2.来分析一下cookie。说时迟,那时快,它已经从cas的server端用户验证成功后回来了。。不仅用户验证完成,而且还不忘记拿到ST参数后,又一次发回去然后也顺利回来了。此时已经完成了用户的单点登录。
3.顺利登录成功之后,我们清除一下火狐的网络信息,来直接点击超链接访问client3,之前的ST,我们记录一下:ST-5-beGeNw5zW0x56vpnmotG-此时得到了一个ST
:
ST-4-jkFHgkJkvTZVJt22SUNV-啧啧,ST果然是不一致的言归正传,分析一下。因为我们是在client2里面点击的超链接的形式访问的client3,所以ST参数肯定带过去了,Server端一查,哎呦,你小子有ST,我来检测一下,我靠,居然是正确的ST,好吧,允许你通过,此时,用户神不知鬼不觉,感觉犹如神助一般,进入了client34.那么我们来测试一下,直接在成功登录了client2之后,浏览器里输入clint3的网址。
从网络分析抓包里我们可以看到,也是这两个请求,和点击了超链接到client3一样的两个请求。。说明server端已经拿到了用户的浏览器中的cookie,并且生成了ST给client3,client3也已经和server端交互结束,包括验证ST,而这一切,肉眼果然看不出来。测试三:(5)登录client2或者client3成功后,访问client4(不同域)client4的web.xml
<!--用于单点登录--><filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name><param-value>41:8080/casServer/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>41:8080/casServer/serviceValidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>41:7777</param-value></init-param></filter>从中可以看到client2的域网址是41:7777,地址是41:7777/client4/已经带cookie验证之后,接到ST参数ticket,然后和server端验证结束。完成了client4的登录。下面我们开始研究ajax异步获取数据的方式,看看异步的情况下,cas有没有失效。测试四:(6)用client2去访问client3
(同域情况下用ajax拿后台的数据过来)(同域
)先登录client2,然后不登陆client3的情况下,用ajax传数据到后台,后天生成json传回前台,这个过程我分析一下。
<scripttype="text/javascript">functionvalidataUser(){$.ajax({type:"POST",url:"41:8080/client3/query",dataType:"json",beforeSend:function(XMLHttpRequest){alert("请求前");},success:function(data){alert("跨域返回数据:"+data.userName);$("#user").val(data.userName);},complete:function(XMLHttpRequest,textStatus){alert("完成");},error:function(){alert("错误");}});}</script>
ajax虽然是异步的,但是也算是发了一个请求,跟我们直接登录了client2之后,打开新的标签页,直接输入网址是一个效果(同测试二中的第4步),client3会在自己的session中检测有没有令牌凭证,如果没有,直接跑到cas-server端,server端拿到cookie,判断已经登录,就生成ST给client3,然后client3拿着这个ST去cas-server端校验,验证成功后,响应用户的ajax请求,把数据返回过来。
测试五:(7)用client2去访问client4(不同域情况下用ajax+jsonp跨域拿后台数据)(不同域
)<scripttype="text/javascript">functionvalidataUser(){$.ajax({type:"POST",url:"41:7777/client4/query",dataType:"jsonp",jsonp:"callback",//url:"41:8080/client3/query",//dataType:"json",beforeSend:function(XMLHttpRequest){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5年中考3年模拟试卷初中道德与法治九年级下册02第2课时携手促发展
- 人教版三年级下册音乐教学计划和教案
- 2000吨SOD小分子肽蔬菜加工项目可行性研究报告写作模板-申批备案
- (统考版)2023版高考化学一轮复习课时作业27难溶电解质的溶解平衡
- 乳制品包车冷藏运输合同
- 医院工程水泥采购居间协议
- 体育馆基础装修工程合同
- 婚庆策划居间介绍合同范本
- 体育场馆改造三方合同模板
- 农产品销售居间合同解除
- 部编版八年级语文上册课内字词整理(按课时编排)
- 特种设备经常性维护保养、定期自行检查和有关记录制度
- 建设工程监理工作手册(通用版本)
- 《产品质量监督抽查管理暂行办法》解读
- 报批稿20160301-浙江嘉化能源化工股份有限公司年产16万吨多品种脂肪醇(酸)产品项目
- 心肺复苏教案Word版
- 沁北电厂烟气脱硫运行规程(新版)
- 旅游系关于导游回扣论文
- 高风险诊疗技术资格考评及复评标准(3)
- 油气回收施工方案
- 如何进行市场分析和规划布局
评论
0/150
提交评论