1. UCENTER 接口,技术文档
http://dev.discuz.org/wiki/#UCenter
2. PHP 整合 CAS 进行单点登录
http://www.discuz.net/thread-1416206-1-1.html
这里的技术, 尝试了, 但是无效, 但是, 却指出了, 一些关键的地方,
3. CAS 服务器配置
http://andy-ghg.iteye.com/blog/942653
4. 使用 URL 请求的方式来实现登录
http://bbs.phpchina.com/thread-131930-1-1.html
5. 单点登录(sso) yale-cas 学习日记(四) —–多站点配置
phpCas的技术介绍, 并区分forceAuthencation , isAuthcatined.
注意: forceAuthencation 是强制验证, 如果不通过, 则会自动的跳到登录界面, 在论坛中, 因为是通过AJAX请求的logging.php的, 所以, 如果直接在logging.php中添加phpCas, 并使用这句的话, 会导致无法跳转的问题. 而phpCas在运行 client 的时候, 就会从服务器取是否登录, 以及登录信息, 所以, 这里可以直接根据 isAuthcatined 的判断, 然后取得用户信息, 当然, 如果做成进入论坛就要他登录的话, 到是可以直接使用 forceAuthencation 做强制跳转
http://www.icydot.com/blog/p/706.htm
6. cas实现单点登录,登出(java和php客户端)
这里面最后那里有提到怎么实现PHP 和 JAVA 同步登出的问题.
"phpCAS::handleLogoutRequests(); 这里会检测服务器端java退出的通知,就能实现php和java间同步登出了。"
http://zxs19861202.iteye.com/blog/855856
7. cas改造随笔
主要是讲一些概念
http://www.cnblogs.com/hellowood/archive/2010/08/05/1793364.html
8. CAS 之自定义登录页实践
邓飞鸽的博客
http://denger.iteye.com/blog/809170
9. CAS学习笔记
这里面满全的.
http://wenku.baidu.com/view/9bc8ddfb770bf78a652954e9.html
10. 使用 CAS 在 Tomcat 中实现单点登录
参考
http://blog.csdn.net/DL88250/article/details/2799522
论坛服务器说明:
论坛根目录: /usr/local/apache2/htdocs/
论坛目录: /usr/local/apache2/htdocs/forum
子目录
附件目录: attachments
ucenter目录: /usr/local/apache2/htdocs/uc
子目录
头像目录: data/avatar/
其它
/usr/local/apache2/htdocs/ucenter这个目录没什么用, 别被误导了.
phpCas 说明
//定义常量, 主要是服务器信息
define('CAS_ENABLE', true);
define('CAS_SERVER_HOSTNAME', "192.168.41.86");
define('CAS_SERVER_PORT', 8080);
define('CAS_SERVER_APP_NAME', "/cas");
//引用CAS的文件
require_once("CAS.php");
//打开debug, 这样, 会在当前目录下生成 phpCAS.log 文件
phpCAS::setDebug();
//连接, 读取登录信息
phpCAS::client(CAS_VERSION_2_0, CAS_SERVER_HOSTNAME, CAS_SERVER_PORT, CAS_SERVER_APP_NAME);
//phpCAS::proxy(CAS_VERSION_2_0, CAS_SERVER_HOSTNAME, CAS_SERVER_PORT, CAS_SERVER_APP_NAME);
//这条必须
phpCAS::setNoCasServerValidation();
phpCAS::handleLogoutRequests(); //这里会检测服务器端java退出的通知,就能实现php和java间同步登出了。
//强制登录
//phpCAS::forceAuthentication();
//取得是否登录
$auth = phpCAS::checkAuthentication();
//取得用户信息.
$username = phpCAS::getUser();
cas 服务器说明
注意, 这些配置虽然我都试过了, 但是还是不能使 cas server 返回想要的东西...
其它配置网上都有, 需要重点关注的是 WEB-INF/deployerConfigContext.xml 这个配置文件.
attributeRepository 属性: 取到登录账户的除username以外的信息. 邓飞鸽之前所设定的值只是默认值, 基本上是没有什么用的. 以下是我调整过的内容.
<bean class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao" id="attributeRepository">
<constructor-arg index="0" ref="dataSource"/>
<constructor-arg index="1" value="select * from tab_uc_account where {0}"/>
<property name="queryAttributeMapping">
<map>
<!-- 查询的参数 -->
<entry key="username" value="username"/>
</map>
</property>
<property name="resultAttributeMapping">
<map>
<!-- 需要返回的值, value指数据库字段, key指cas中保存的名字 -->
<entry key="id" value="id"/>
<entry key="username" value="username"/>
<entry key="salt" value="salt"/>
<entry key="password" value="password"/>
</map>
</property>
</bean>
设置好 attributeRepository 属性后, 需要在 authenticationManager 属性里面做修改.
将 authenticationManager 的 list 下面的UsernamePasswordCredentialsToPrincipalResolver 调整成如下:
<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >
<property name="attributeRepository" ref="attributeRepository"></property>
</bean>
将 attributeRepository 注入到 UsernamePasswordCredentialsToPrincipalResolver 中去, 这样才会把属性从数据库中读取出来.
但是经过上面两步还是得不到东西, 后来, 在网上看到还需要调整 serviceRegistryDao 属性.
将 serviceRegistryDao 下面 LIST 中的具有 <property name="serviceId" value="http://**" /> 属性的项, 调整成:
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="0" />
<property name="name" value="HTTP" />
<property name="description" value="Only Allows HTTP Urls" />
<property name="serviceId" value="http://**" />
<!--
-->
<property name="allowedAttributes">
<list>
<value>id</value>
<value>username</value>
<value>salt</value>
<value>password</value>
</list>
</property>
</bean>
这样调整后, 还是不能用...有点悲剧. 还有调 JSP , 上面的网址中有, 我就不说了, 但是还是不行...
关于 HTTPS 的配置
邓飞鸽在做cas server 的搭建的时候, 并没有把这块弄完, 所以, 在某些情况下还是会出现问题....
同样是 WEB-INF/deployerConfigContext.xml 配置文件, authenticationManager -> authenticationHandlers -> HttpBasedServiceCredentialsAuthenticationHandler
在这上面添加一个属性 p:requireSecure="false" , 这个属性是判断是否使用 HTTPS 的.
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:requireSecure="false"
p:httpClient-ref="httpClient" />
当然, 可能还要调整其它地方, 这个我就不是很清楚了...
分享到:
相关推荐
标题 "cas, casphp, discuz整合成功案例" 涉及的是将CAS(Central Authentication Service,中央认证服务)与CASPHP(一个用于PHP的CAS客户端库)以及Discuz!(一个流行的开源社区论坛系统)进行集成的实践操作。这...
【标题】:“CAS和Discuz配置整合” 【描述】:“集成CAS(Central Authentication Service,中央认证服务)与Discuz!论坛系统,实现单点登录(Single Sign-On, SSO)功能,是许多网站提高用户体验、简化登录流程的...
AceGI安全策略与CAS(Central Authentication Service)整合是企业级应用中常见的安全解决方案,它能够为Web应用程序提供统一的身份验证和授权服务。本文档旨在详细阐述这一整合过程,包括配置步骤、所需资源以及...
整合Spring、Spring Web MVC和CAS客户端的步骤如下: 1. **配置Spring**:创建Spring配置文件(如`applicationContext.xml`),声明必要的bean,包括数据源、事务管理器、Spring MVC的相关配置等。 2. **配置...
Apache Shiro 和 CAS 整合是为了解决Java应用程序中的身份验证和权限管理问题,同时实现单点登录(Single Sign-On, SSO)功能。Apache Shiro 是一个轻量级的安全框架,它提供了用户认证、授权和会话管理等功能,而...
在CAS Server 5.3.9中整合数据库验证用户信息是常见的应用场景,这意味着CAS会与一个或多个数据库进行交互,以检查用户的凭证是否有效。这种集成通常涉及到以下步骤: 1. **配置数据库连接**:首先,你需要在CAS...
Spring Boot 整合 CAS Client 实现单点登录验证的示例 Spring Boot 整合 CAS Client 是一种流行的解决方案,用于实现单点登录(Single Sign-On,简称 SSO)。在多个应用系统中,用户只需要登录一次就可以访问所有...
整合CAS和LDAP可以实现用户身份验证与授权的高效管理。以下是整合的步骤和相关知识点: 1. **配置LDAP服务器**:首先,你需要设置一个运行中的LDAP服务器,如OpenLDAP或Active Directory。在LDAP服务器上创建必要的...
CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理
源码部分可能提供了示例代码,展示如何在实际项目中实施这些整合,这对于开发者来说是极其宝贵的参考资料。总的来说,这个压缩包对于理解并实现在PHP和Java环境中与CAS服务器的集成非常有帮助,无论你是初学者还是...
本实例将详细阐述如何进行CAS整合,帮助你理解并实施这一过程。 首先,我们需要了解CAS的基本概念。CAS作为一个认证服务器,允许用户在访问多个受保护的应用系统时只需登录一次,而无需为每个系统单独进行认证。...
将acegi和cas的war包修改并整合测试,里面包含所需依赖包。经过分卷压缩一共3个文件.
SpringBoot整合CAS(Central Authentication Service)是将CAS服务器与基于Spring Boot的应用程序相结合,实现单点登录(Single Sign-On, SSO)的功能。SSO允许用户在一次登录后,能够访问多个相互信任的应用系统,...
在本文中,我们将讨论如何将 Apache Shiro 与 CAS 3.5 版本进行整合,以实现统一的登录认证。 整合 Shiro 和 CAS 的主要目标是利用 CAS 的身份验证服务,避免在每个应用中重复实现登录逻辑。以下是一个简化的整合...
【标题】"CAS Tomcat整合单点登录Demo"是一个示例项目,展示了如何将CAS(Central Authentication Service)与Tomcat应用程序服务器集成,实现单点登录(Single Sign-On, SSO)的功能。CAS是一种开放源码的身份验证...
本文将详细介绍如何使用CAS整合CXF,实现基于Tomcat服务器的单点登录部署步骤。 首先,我们需要在Tomcat服务器上部署CAS项目。这通常涉及以下步骤: 1. **下载CAS服务器**:从官方Git仓库或Maven仓库获取最新的CAS...
标题和描述均提到了“Acegi Security整合CAS实例”,这涉及到Spring Framework下的Acegi Security模块与CAS(Central Authentication Service)的集成。Acegi Security是Spring框架的一个子项目,旨在为应用提供安全...
本资源基于CAS v4版本自定义扩展了 记住密码、验证码、qq、微博等第三方登录功能
### CAS整合LDAP实现单点登录的关键知识点 #### 1. 单点登录(SSO)概念与优势 - **定义**: 单点登录(Single Sign-On, SSO)是一种基于用户/会话认证的过程,允许用户在多个应用之间共享登录状态,从而只需要登录一次...