开始研究sso。
选了CAS,毕竟老牌开源sso工具,网上查了下据说80%的sso技术都是基于cas。
其他东西不说了,什么ssl,cas server部署什么的,网上都很多,也都写的很好。
这里仅记录一点自己实现中比较细的地方。
shiro里面一般在做 AuthenticationInfo的时候返回的info里面的principals一般都不会是简单的string(用户名),应该都是自己包装过的User对象。
我这边的demo系统也不例外。这次搭sso demo之前先弄了最简单的两个app实验,就是只有最简单的一个jsp页面,通过配置web.xml来做,一小时就搞定了,的确是很方便。
但是在shiro整合中发现在server认证通过后跳回原系统就报错。
整个CAS的认证过程已经到了第6步,认证服务器已经给client返回了用户名,所以这个错误应该和server没关系,是cilent本身的问题。
设断点跟踪后发现是token和生成的info不能匹配导致出问题。在不用CAS的情况下一般就是指输入的密码出错导致的。
顿时莫名其妙,认证都不在client进行了居然还会有这种错误。
后来发现是用的自定义的principals对象在copy代码过程中忘记改了。。。
在CasRealm标准实现中,credentials用的是ticket
return new SimpleAuthenticationInfo(principalCollection, ticket);
结果在我自己改写的过程中
return new SimpleAuthenticationInfo(new ShiroUser(user.getId(),
user.getUserName(), user.getRealName()),
[color=red]user.getPassword()[/color], getName());
copy过来的时候没改成ticket。
事后总结思考:事情虽小,但是其实解决过程也搞了两三个小时。不过最终还是理解了CAS和shiro的交互过程,最终在shiro的认证密码其实用的是返回的ticket。
在网上找的一些文章好像都没有着重强调这一点。
“纸上得来终觉浅,绝知此事要躬行”。
分享到:
相关推荐
cas +shiro集成cas +shiro集成cas +shiro集成cas +shiro集成cas +shiro集成cas +shiro集成cas +shiro集成
1.如果客户端项目采用shiro控制权限 则需要将cas-client 认证过滤交给shiro来管理 2.从shiro下载相应版本的shiro-cas-xxxx. Jar或者在maven里直接添加
spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...
cas 结合 springmvc shiro 做项目单点登录包括cas服务端,cas客户端。shiro-cas集成项目
- the cas-shiro-demo-app module is a demo web application which uses the CAS Shiro support library with protected area requiring CAS authentication : http://shiro.apache.org/cas.html - the cas-shiro-...
然后clean install tomcat7:run 就能跑起来,注意要修改node1和node2里的shiro.properties配置文件,要配置登录成功成功返回的路径 我的访问的分别是: 服务端: http://localhost:8050/cas-server 客户端:...
cas+shiro客户端源码,cas的客户端加上了shiro的权限控制。不包含服务端
分析shiro框架+cas单点登录系统的技术分析,解析了相关的技术难点
内置jar包 和源码包 使用说明 学习连接 对决真实例子 部署到tomcat中即可使用 初学者来把 这东西网上例子太少了 而且还没有实例 大家不要谢我 我叫雷锋
shiro整合cas的实例,shiro整合cas的实例,shiro整合cas的实例。
shiro整合cas3.5的正确方式,提供一个思路
基于springboot框架,前后端分离模式下的shiro + pac4j +cas实现统一登录功能,子应用采用shiro鉴权,通过pac4j与cas交互,最终向前端返回jwt token
包含单点登录tomcat部署,cas服务器部署,项目demo,可更好的理解sso-cas登录
关于shiro + CAS + Spring中怎么把CAS.xml和shiro.xml连接起来
前后端分离模式下的cas + shiro + pac4j,cas作为认证中心,子应用采用shiro鉴权,通过pac4j与cas交互,返回jwt token,完整项目,基于springboot框架
springmvc+shiro配置教程
CAS与权限管理框架Shiro集成
网上有许多cas和shiro的集成,但是有用的没有什么完整代码,我这里实现了整个过程,并且测试通过,希望能够给大家帮助!有图有真相!
shiro+cas实现单点登录 示例代码,送源码分析url:http://note.youdao.com/noteshare?id=a83380ee8fc6913162042e865689844e&sub=CD905CCCE4134A159326DC2DFC1AF268
从web.xml到spring 配置shiro的使用