java SSO 之Cas 笔记

来源:互联网 发布:淘宝实名认证怎么改 编辑:程序博客网 时间:2024/06/12 09:59

最近项目比较大,子系统比较多,有要使用单点登录的需求,这就使用cas serive


集成的步骤:

可以直接下载cas-server,运行起来。
步骤大概这样:
1. 运行cas-server服务
2. 让cas-server通过jdbc进行认证
3. 修改cas-server的登录页面
4. 让业务系统与cas-client集成


使用CAS实现SSO简洁教程

单点登录的原理是通过拦截你设定的URL,并跳转到你指定的CAS SERVER登录页,当你登录成功后,带着TICKET,返回到你打开的URL。然后你就可以一票在手,畅通无阻。


CAS 官网

对应github地址:

cas github 首页

说明:cas - server :4.0.0版本 已经 以前的 3.x 版本直接提供的有 


但是4之后还有5开始不提供war包,要自己用官网的工具打成war包;(maven和gradle)都支持,两个工具


cas 5.x 开始使用spring boot 和之前完全不一样。


学习资料-Apereo CAS 5.0



CAS 学习值慕课网学习  SSO CAS单点系列


5.x CAS 默认密码:casuser
application.properties  中的 cas.authn.accept.users=casuser::Mellon



体验cas server和lingo是同一版本:



相关学习:spring security 配合 cas ;  shiro 配合cas;



CSDN其他博主文章:


CSDN博客2 CSDN博客2点击打开链接单点登录之CAS SSO从入门到精通(第一天) https




CSDN CAS系统4.X 教程





简单的原来图:
cas 原理图




4.x一下的常见配置: deployerConfigContext.xml;   spring-configuration/ticketGrantingTicketCookieGenerator.xml




报错:未能够识别出目标 'ST-11-b5ol1MCscnxEXXrNxTgp-cas01.example.org'票根 

票据已经失效 解决CAS客户端验证ST票据时发生的TicketValidationException问题


请求登陆;验证票据;登录成功;

登陆client,302重定向到serve

http://xx.com:82/cas/login?service=http://xx.com:82/safety/shiro-cas

http://xx.com:82/safety/shiro-cas?ticket=ST-12-FE3tWTyKbvkqda3V4MIq-cas01.example.org

http://www.xxx.com:82/cas/serviceValidate?ticket=ST-14-ncH011jbmpoTb5eqfC6f-cas01.example.org&service=http%3A%2F%2Flocalhost%3A8888%2Foa%2Fj_spring_cas_security_check

状态码302标示资源被重定向到新的地址:



CAS系列课程




自己遇到的坑,cas client 和 cas 服务器都配置好了,但是 不同系统之间还是不能同时登录和退出,结果,错误原因是:

http://www.baidu.com 和 http://baidu.com 是不一样的;


cas 3.0/4.0学习:

1:默认账户密码 cas/cas ,账号和密码相同,处理类SimpleTestUsernamePasswordAuthenticationHandler

2:

<!--dazer 段大志 去掉原始的验证登录的处理器--><beanclass="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />    <!--dazer start -->    <bean id="testAuthenticationHandler" class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"/>    <bean id="databaseAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">        <property name="dataSource" ref="dataSource"/>        <property name="sql" value="select ac.password from account_info ai,account_credential ac where ai.username=? and ai.id=ac.account_id"/>        <property name="passwordEncoder" ref="md5PasswordEncoder"/>    </bean>    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName"><value>oracle.jdbc.OracleDriver</value></property>        <property name="url"><value>jdbc:oracle:thin:@121.196.194.52:1521:orcl</value></property>        <property name="username"><value>CBL_OA</value></property>        <property name="password"><value>W1Q2W3E4R5T88cbl</value></property>    </bean>    <bean id="md5PasswordEncoder" class="demo.CustomPasswordEncoder"/>    <!--dazer end -->
详细见截图:



基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息



http://blog.csdn.net/matthewei6/article/details/50709252单点登录cas常见问题系列汇总 - 持续更新

http://blog.csdn.net/matthewei6/article/details/50709252


CAS—注销登录后跳转到登录页



原创粉丝点击