博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CAS认证与USER认证并存,和谐集成
阅读量:2791 次
发布时间:2019-05-13

本文共 1075 字,大约阅读时间需要 3 分钟。

我们一般系统只用一种用户认证方式,但是随着系统越来越多,尤其是内部系统需要一种互信机制,so cas袭来。所谓认证,就是过滤器filter+凭证realm。cas客户端认证流程图,看起来简单,实操起来没那么简单,还是用文字分步骤拆分出来更加清晰。

常见问题:cas客户端登陆,循环重定向,导致浏览器挂掉

realm 登陆凭证,可以有多个

authFilter 认证过滤器,与url相关,可以配置某个url走不一样的认证过滤器

关联某个realm,并设置了登陆页地址

其中casFilter还配置了caslogin地址,caslogfailurl,以便在cas认证失败后自动跳转

但容易出现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无效,重新开始登陆

shiroFilter认证过滤路由,集成了多个filter,对url进行不同认证

同一个应用,提供两种登陆方式,一种cas登陆,一种form表单登陆:

/caslogin = cas

/formlogin= form

CAS认证与USER认证并存,和谐集成

 

转载地址:http://iolmd.baihongyu.com/

你可能感兴趣的文章
JAVA -- POI导出excel
查看>>
JAVA -- Java compiler level does not match the version of the installed Java project facet.
查看>>
JAVA -- ant编译时出现Compile failed; see the compiler error output for details异常
查看>>
WEB前端 -- 读取下拉框中的text、value
查看>>
JAVA -- 获取时间
查看>>
PowerDesigner初用问题解决
查看>>
Oracle -- like、instr()、substr()
查看>>
UIWindow
查看>>
GCDAsyncSocket类库,IOS下TCP通讯使用心得
查看>>
block使用小结、使用block、如何防止循环引用
查看>>
程序员高效率工作工具推荐(必备工具)
查看>>
iOS多线程编程之NSThread的使用
查看>>
使用Xcode和Instruments调试解决iOS内存泄露
查看>>
CoreData底层架构实现 概述
查看>>
#import和@class在IOS中的区别
查看>>
a valid provisioning profile for this executable was not found错误
查看>>
使用Cocoapods创建私有podspec
查看>>
OC js 交互
查看>>
vivi
查看>>
韦的一些视频
查看>>