Shiro 集成 Cas 实现单点

该博客介绍了shiro项目集成cas-server的相关内容,包括shiro项目资源下载、cas-server搭建及问题解决,还给出了shiro集成cas-server项目的资源下载链接。阐述了shiro项目作为cas-client端请求服务端的授权操作流程,不过存在注销后再次登录验证出错的问题待解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尊重原创:https://www.cnblogs.com/xrab/p/5800623.html

效果展示:

shiro项目详细介绍: 链接

1. 首先资源下载shiro 项目资源(基于maven),资源下载 :

链接:https://pan.baidu.com/s/1-ppIvgNP0DECp4NY2_fAGw 
提取码:3cmi 

2. cas-server 搭建 (有资源下载): https://blog.youkuaiyun.com/qq_29477175/article/details/89886123

首先遇到一个问题,注销时不会跳转到cas的登录页面,应该是 cas 自己设置的问题,这个问题已经解决,修改下cas.properties中  cas.logout.followServiceRedirects=true 即可,默认是被注释的。

3. 接着就是shiro集成cas-server的项目:资源下载:

链接:https://pan.baidu.com/s/1cNTb-819bDsGVXPQZpZSsQ 
提取码:sz8k 

这些配置文件、基本步骤在上面的原创中都可以看到。

感悟:

      其实就是之前的shiro项目当做cas-client端,去请求cas-server服务端;返回一个token进行授权操作。

      1. loginUrl 对应 http://localhost:8090/cas/login?service=http://127.0.0.1:8080/shiro/shiro-cas

      2. 有一个 CasFilter,设置登录走这个filter,在shiro的自定义权限内容中设置 /shiro-cas = casFilter ,filters中设置casFilter对应自己设置CasFilter。对应的class 为 org.apache.shiro.cas.CasFilter。

      3. 将securityManager 中原来的realm 改成 CasRealm。其实走的是CasRealm。

       新建一个CasRealm 继承 CasRealm,重写 doGetAuthenticationInfo 与 doGetAuthorizationInfo 方法,在认证方法(doGetAuthenticationInfo )中,通过从cas-server端获取了一个 AuthenticationToken,这个其实在cas-sever端已经验证过了,获取的AuthenticationToken 中只有一个用户的userID(唯一标识,也是登录时的用户名)。接着再进行一系列的操作:连接数据库、授权之类的。

    还有一个问题没解决:

          shiro集成cas成功后,第一次登录是没问题的,注销时再次登录,会报验证出错。。待解决。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值