cas单点登录流程揭密

cas单点登录流程揭密cas 中的 Cookie Session 运用流程 cas 单点登录

大家好,欢迎来到IT知识分享网。

前言

cas基础原理

在这里插入图片描述
就这几步。

下边令牌的概念,记住这几个东西的作用。

  • TGT:Ticket Granted Ticket(俗称大令牌,或者说票根,他可以签发ST)
  • TGC:Ticket Granted Cookie(cookie中的value),存在Cookie中,根据他可以找到TGT。
  • ST:Service Ticket (小令牌),是TGT生成的,默认是用一次就失效了。也就是上面数字3处的ticket值。

实操

准备条件

  • 一个前端页面,作用是最后经过一系列的操作,定向到这个页面,并显示用户名;
  • 一个springboot整合cas客户端的后端;
  • cas服务端,用tomcat启动。

未登录,第一次请求

请求详细图:

  1. 三角图第一、二、三步,请求被重定向到cas登录

    首先我们访问后端接口:http://192.168.2.189:8010/lsdb-api/redirectToFrontend
    在这里插入图片描述
    看看浏览器做了什么?

    访问这个接口,一定是被cas拦截器拦截并且验证的,没有登录,那就重定向到cas服务端登录,输入账号密码之后,认证成功。

    在这里插入图片描述

  2. 三角图第四、五步,重定向请求后端地址并验证ticket
    在这里插入图片描述
    这里可以看出,cas服务端重定向到上个图响应的Location地址,也就是携带ticket的地址,同时cas客户端响应了一个JSESSIONID,说白了就是在获取Session的时候设置的一个Cookie,就相当于Sessionid,通过它能找到Session,这个Session里保存有用户登录状态,而且path设置的是/,这就意味着本次浏览器会话都会携带。
    可能有人说,我怎么没看见第五步去cas验证票据的访问,前边的请求图上确实没显示请求cas的地址,这是因为验证是cas客户端直接拿到ticket去访问cas服务端接口,验证结果是通过接口返回,并不是重定向,跟浏览器没关系,所以浏览器上并不会显示,验证也很简单,只需要把下边的cas验证地址改错,就能发现后端报错
    在这里插入图片描述



  3. 三角图第六步,cas服务端返回用户信息给cas客户端
    通过上边一个图可以看出,验证通过之后,响应了一个带jsessionid的地址,那么,这里自然也会重定向到这个地址,当访问这个地址的时候,因为携带了jsessionid,那么就会cas客户端就会通过jsessionid获取到Session,从而获得登陆状态,直接正常请求接口,执行接口逻辑即可。
    在这里插入图片描述
    可以看到,终于是正常请求我们自己写的接口,并且重定向到8081的前端页面。


登录之后,第二次请求

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/113996.html

(0)
上一篇 2025-12-11 13:00
下一篇 2025-12-11 13:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信