CAS单点登录源码解析之【集成新浪腾讯微博】
来源:互联网 发布:php判断是不是正整数 编辑:程序博客网 时间:2024/06/04 19:19
前期准备
已经搭建好了集成了CAS客户端的应用系统和CAS服务器
1.应用系统webapp(http://127.0.0.1:8090/webapp/main.do)2.CAS单点登录服务器端(http://127.0.0.1:8081/cas-server/)
本次讨论包括CAS单点登录服务器端的部分源码,以及在此基础上进行新浪微博和腾讯微博集成的二次开发,因此需要修改部分CAS服务器端的源码,源码部分的修改在下面进行讨论。关于CAS客户端、CAS服务器端、CAS单点登出和CAS用户认证的源码分析,请参考另外四篇文章
CAS客户端:http://blog.csdn.net/dovejing/article/details/44426547
CAS服务器端:http://blog.csdn.net/dovejing/article/details/44523545
CAS单点登出:http://blog.csdn.net/dovejing/article/details/44675647
CAS用户认证:http://blog.csdn.net/dovejing/article/details/44754307
/WEB-INF/spring-configuration/applicationContext.xml部分代码
<!-- 新浪微博OAUTH --><bean id="sinaWeibo" class="org.jasig.cas.support.oauth.sina.SinaWeiboProvider"><property name="key" value="${sina_appkey}" /><property name="secret" value="${sina_appsecret}" /><property name="callbackUrl" value="${callback_url}" /></bean><!-- 腾讯微博OAUTH --><bean id="tencentWeibo" class="org.jasig.cas.support.oauth.tencent.TencentWeiboProvider"><property name="key" value="${tencent_appkey}" /><property name="secret" value="${tencent_appsecret}"/><property name="callbackUrl" value="${callback_url}" /></bean>
cas_config.properties代码
sina_appkey=sina_appsecret=tencent_appkey=tencent_appsecret=callback_url=http://127.0.0.1:8081/cas-server/login
所有的OAuth提供者,必须定义在applicationContext.xml文件中,此处配置了新浪微博和腾讯微博。cas_config.properties配置文件中,配置新浪微博和腾讯微博的申请信息,callback_url属性为CAS单点登录服务器端的地址。
/WEB-INF/spring-configuration/applicationContext.xml部分代码
<bean id="oauthConfig" class="org.jasig.cas.support.oauth.OAuthConfiguration"><property name="loginUrl" value="http://127.0.0.1:8081/cas-server/login" /><property name="providers"><list><ref bean="sinaWeibo" /><ref bean="tencentWeibo" /></list></property></bean><bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl"><property name="authenticationHandlers"><list><bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"p:httpClient-ref="httpClient" /><!-- 此处为增加部分 start --><bean class="org.jasig.cas.support.oauth.authentication.handler.support.QueryDatabaseOAuthAuthenticationHandler"> <property name="configuration" ref="oauthConfig" /> <property name="dataSource" ref="dataSource"></property><property name="sql" value=""></property><property name="userSql" value=""></property></bean><!-- 此处为增加部分 end --></list></property></bean>
在applicationContext.xml文件中配置OAuthConfig信息,其中loginUrl属性为CAS单点登录服务器端的地址(与callback_url属性值一致),providers属性引用新浪微博(sinaWeibo)和腾讯微博(tencentWeibo)。同时增加新浪微博和腾讯微博的认证器配置QueryDatabaseOAuthAuthenticationHandler。其中sql和userSql
<action-state id="oauthAction"> <evaluate expression="oauthAction" /> <transition on="success" to="sendTicketGrantingTicket" /> <transition on="error" to="serviceUntiyAuthCheck" /></action-state>
<bean class="org.jasig.cas.support.oauth.authentication.principal.OAuthCredentialsToPrincipalResolver" ><property name="attributeRepository" ref="attributeRepository" /></bean>
最后,在应用系统的登录页面增加新浪微博和腾讯微博的登录链接。
<a href="${SinaWeiboProviderUrl}">新浪微博</a> <a href="${TencentWeiboProviderUrl}">腾讯微博</a>
至此,CAS的单点登录与新浪微博和腾讯微博的集成已经完成。
- CAS单点登录源码解析之【集成新浪腾讯微博】
- 5、CAS单点登录源码解析之【集成新浪腾讯微博】
- CAS单点登录源码解析之【客户端】
- CAS单点登录源码解析之【服务器端】
- CAS单点登录源码解析之【单点登出】
- 3、 CAS单点登录源码解析之【单点登出】
- CAS Server集成QQ登录、新浪微博登录源码及配置文件
- CAS单点登录源码解析之【用户认证】
- 1、[置顶] CAS单点登录源码解析之【客户端】
- 2、[置顶] CAS单点登录源码解析之【服务器端】
- 4、CAS单点登录源码解析之【用户认证】
- CAS单点登录源码解析【目录】
- CAS单点登录源码解析【目录】
- cas集成oauth,用新浪微博账号登录示例
- shiro 集成cas单点登录
- Spring Security集成CAS实现单点登录
- CAS单点登录-客户端集成(cas-client)(九)
- owncloud源码分析5--CAS单点登录
- openlayers 高亮显示记录
- java如何对ArrayList中对象按照该对象某属性排序
- system_call 中断处理过程
- C#委托基础5——泛型委托Action
- How to change user habits with interaction design
- CAS单点登录源码解析之【集成新浪腾讯微博】
- Swift 体会
- Android中再按一次退出效果的简单实现
- C#委托基础6——泛型委托Predicate
- Android UI框架
- java实现定时任务的三种方法
- Java中ListIterator和Iterator详解与辨析
- 第三单元作业 3.22
- Android通过Intent访问指定的浏览器