单点登录原理:

第一次登录

一个用户访问a系统的资源被cas客户端截获,cas检测到没有JSESSIONID,然后将其转发到cas服务器。 cas服务器检测到请求中不包含TGT信息,返回登录页(返回一次性回复id ),用户输入后登录,再次请求cas服务器,服务器验证用户通过后,返回服务和TTS 服务是第一个请求的地址。 ),将TGT设置为cookie,然后跳转到cas客户端。 cas客户端携带ticket再次到服务器进行交互式身份验证)确定是否启用了ticket。 ) )。 然后,此用户访问此系统的所有资源都可以使用JSESSIONID检索资源。

成功登录后

用户访问Web系统

第一个请求b系统被cas阻止程序截获,注意到没有JSESSIONID,然后将请求转发到cas服务器。 cas服务器检测到请求包含TGT,进行身份验证(相当于免除输入密码),向用户返回新ticket,然后再次设置TGT ),然后跳转到cas客户端。 cas客户端拿着ticket与cas服务器进行交互并获得认证,认证通过后,cas生成新的JSESSIONID并处理请求,所有后续请求都用此JSESSIONID与b系统进行交互。

有人想去仓库取行李,被狱警挡着,只有有我出具的证明才能进去。 否则,不行。 没有。 于是,我说要先向主管登记。 见到主管后,主管说需要登记身份信息。 注册成功后,给他汇票和通行证。 于是他拿着票据再次索要资源,见到看门人后,就把票据交给他。 看门人把票据认证为主管。 主管说这张票据确实是我寄给他的。 让他合格吧。 于是看门人同意他去仓库取东西,自己给它出具证明,以后很方便

过了一会儿,那个人又去仓库取行李,看门人向他要了证明书,但他发现证明书丢了。 于是,我再次去主管那里接受了认证。 我去主管那里一看,发现他有通行证,已经注册了,不用重新注册,直接给他重新给票据,在那里又拿这张票据去取资源,交给看门人,看门人又拿着这张票据去和主管认证

这是整个流程。

http://11.11.11.17233608888/cas/log in; jsessionid=044 FD 563 f 92 F3 D1 efb 5c7defbd 94404 d? 服务=http://192.168.0.36:8080/test war1/test! 输入接口(init )

用户名和秘密GTC setcookie—http://11.11.11.17233608888/cas/log in—3358192.168.0.3633608080/test war1/test! 伊尼特? ticket=ST-155135-rosfskasfivpnbmuvyus-ca s27.example.org-http://192.168.0.3633608080/test war1/test! init; jession id=ce 56271 a 51d 37 b 6694 F9 ebc 6b 5b6feaa

更好的文章: https://blog.csdn.net/javaloveiphone/article/details/52439613