5、CAS单点登录源码解析之【集成新浪腾讯微博】
2016-01-23 17:43
471 查看
前期准备
已经搭建好了集成了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客户端:/article/11163792.html
CAS服务器端:/article/11163793.html
CAS单点登出:/article/11163777.html
CAS用户认证:/article/11163778.html
/WEB-INF/spring-configuration/applicationContext.xml部分代码
[html] view
plaincopy
<!-- 新浪微博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代码
[html] view
plaincopy
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部分代码
[html] view
plaincopy
<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
[html] view
plaincopy
<action-state id="oauthAction">
<evaluate expression="oauthAction" />
<transition on="success" to="sendTicketGrantingTicket" />
<transition on="error" to="serviceUntiyAuthCheck" />
</action-state>
[html] view
plaincopy
<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的单点登录与新浪微博和腾讯微博的集成已经完成。
相关文章推荐
- 绕过安全狗等一些WAF收集
- 利用kali嗅探周围发送的短信
- 突破变态限制快捷方式提权法
- 安装Kali Linux 后需要做的 20 件事 - 51CTO.COM
- phpcms某处储存型XSS(demo+本地演示)
- windows2003 iis6配置文件和win2008/2012 iis7.5配置文件
- ecshop hash登录 + wordpress mysql盲注字段
- 360网站卫士SQL注入绕过案例一个
- UINavigationItem和UItabBarItem的区别详解
- 3、 CAS单点登录源码解析之【单点登出】
- Xcode 调试与快捷键
- 使用ExecuteReader时报错“阅读器关闭时尝试调用Read无效”的解决办法
- nginx和tomcat的区别
- Cocos高低版本场景切换比较
- 2、[置顶] CAS单点登录源码解析之【服务器端】
- 对Memcached使用的总结和使用场景
- Js模型和封装
- DP------Unique Paths
- libjpeg:读取jpeg头获取图像基本信息(jpeg_read_header)
- 使用Itext结合Jfreechart图表导出带图表的word文档