本文共 1075 字,大约阅读时间需要 3 分钟。
我们一般系统只用一种用户认证方式,但是随着系统越来越多,尤其是内部系统需要一种互信机制,so cas袭来。所谓认证,就是过滤器filter+凭证realm。cas客户端认证流程图,看起来简单,实操起来没那么简单,还是用文字分步骤拆分出来更加清晰。
常见问题:cas客户端登陆,循环重定向,导致浏览器挂掉
关联某个realm,并设置了登陆页地址
但容易出现cas认证失败,循环重定向问题,所以可以考虑在认证失败方法中自定义跳转逻辑,
如果有业务异常,直接抛出运行时异常;
cas认证过程:
第一步,用户请求A服务url
第二步,A服务判断url是否要走cas认证过滤器,需要走,则请求cas server并附加回调地址,如:cas server?service=A服务url
第三步,cas认证失败,A服务获取到返回信息,走cas认证失败重定向,正常重定向到cas server登陆页
第四步,在cas server登陆页输入用户名密码,验证成功回调A服务url,并附加A服务url?ticket=asdsadasdasda
第五步,A服务校验有ticket,则再次调用cas server的校验服务,cas server?serviceValidate=asdsadasdasda
第六步,cas返回校验结果,如果有效,则返回用户信息
第七步,A服务获取到用户信息,生成登陆凭证,并重定向到认证成功配置页面url
循环
第一步,用户请求A服务url
第二步,......带着cookie请求cas server
第三步,case server返回A服务url?ticket=asdsadasdasda
第四步,A服务获取到ticket,再到cas server校验ticket有效性
第五步,cas server返回有效用户信息
第六步,A服务获取到用户信息登陆系统
循环
......
直到服务A调用cas server?logout
cas server端判断用户ticket无效,重新开始登陆
/caslogin = cas
/formlogin= form
转载地址:http://iolmd.baihongyu.com/