`
juqkai
  • 浏览: 7576 次
文章分类
社区版块
存档分类
最新评论

cas, casphp, discuz整合参考资料

 
阅读更多
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" />
当然, 可能还要调整其它地方, 这个我就不是很清楚了...
分享到:
评论
3 楼 denger 2011-12-14  
jxjyou 写道
denger 写道
引用
邓飞鸽在做cas server 的搭建的时候, 并没有把这块弄完, 所以, 在某些情况下还是会出现问题....


什么意思?


你尽然把这个也放上去了...
我已经改了

你是哪位?
2 楼 jxjyou 2011-12-09  
denger 写道
引用
邓飞鸽在做cas server 的搭建的时候, 并没有把这块弄完, 所以, 在某些情况下还是会出现问题....


什么意思?


你尽然把这个也放上去了...
我已经改了
1 楼 denger 2011-11-24  
引用
邓飞鸽在做cas server 的搭建的时候, 并没有把这块弄完, 所以, 在某些情况下还是会出现问题....


什么意思?

相关推荐

    cas, casphp, discuz整合成功案例

    标题 "cas, casphp, discuz整合成功案例" 涉及的是将CAS(Central Authentication Service,中央认证服务)与CASPHP(一个用于PHP的CAS客户端库)以及Discuz!(一个流行的开源社区论坛系统)进行集成的实践操作。这...

    cas 和 discuz 配置整合

    【标题】:“CAS和Discuz配置整合” 【描述】:“集成CAS(Central Authentication Service,中央认证服务)与Discuz!论坛系统,实现单点登录(Single Sign-On, SSO)功能,是许多网站提高用户体验、简化登录流程的...

    acegi安全策略与CAS整合

    AceGI安全策略与CAS(Central Authentication Service)整合是企业级应用中常见的安全解决方案,它能够为Web应用程序提供统一的身份验证和授权服务。本文档旨在详细阐述这一整合过程,包括配置步骤、所需资源以及...

    整合spring+springWebMVC+cas客户端

    整合Spring、Spring Web MVC和CAS客户端的步骤如下: 1. **配置Spring**:创建Spring配置文件(如`applicationContext.xml`),声明必要的bean,包括数据源、事务管理器、Spring MVC的相关配置等。 2. **配置...

    Shiro和cas部分整合

    Apache Shiro 和 CAS 整合是为了解决Java应用程序中的身份验证和权限管理问题,同时实现单点登录(Single Sign-On, SSO)功能。Apache Shiro 是一个轻量级的安全框架,它提供了用户认证、授权和会话管理等功能,而...

    cas server 5.3.9 整合数据库验证用户信息,使用security密码验证方式

    在CAS Server 5.3.9中整合数据库验证用户信息是常见的应用场景,这意味着CAS会与一个或多个数据库进行交互,以检查用户的凭证是否有效。这种集成通常涉及到以下步骤: 1. **配置数据库连接**:首先,你需要在CAS...

    spring boot整合CAS Client实现单点登陆验证的示例

    Spring Boot 整合 CAS Client 实现单点登录验证的示例 Spring Boot 整合 CAS Client 是一种流行的解决方案,用于实现单点登录(Single Sign-On,简称 SSO)。在多个应用系统中,用户只需要登录一次就可以访问所有...

    CAS和LDAP整合

    整合CAS和LDAP可以实现用户身份验证与授权的高效管理。以下是整合的步骤和相关知识点: 1. **配置LDAP服务器**:首先,你需要设置一个运行中的LDAP服务器,如OpenLDAP或Active Directory。在LDAP服务器上创建必要的...

    CAS整合LDAP实现单点登录原理及部署

    CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理

    CAS单点登录多语言整合文档+源码

    源码部分可能提供了示例代码,展示如何在实际项目中实施这些整合,这对于开发者来说是极其宝贵的参考资料。总的来说,这个压缩包对于理解并实现在PHP和Java环境中与CAS服务器的集成非常有帮助,无论你是初学者还是...

    cas整合实例

    本实例将详细阐述如何进行CAS整合,帮助你理解并实施这一过程。 首先,我们需要了解CAS的基本概念。CAS作为一个认证服务器,允许用户在访问多个受保护的应用系统时只需登录一次,而无需为每个系统单独进行认证。...

    acegi+cas整合工程及说明3

    将acegi和cas的war包修改并整合测试,里面包含所需依赖包。经过分卷压缩一共3个文件.

    SpringBoot整合CAS文件资料

    SpringBoot整合CAS(Central Authentication Service)是将CAS服务器与基于Spring Boot的应用程序相结合,实现单点登录(Single Sign-On, SSO)的功能。SSO允许用户在一次登录后,能够访问多个相互信任的应用系统,...

    shiro整合cas3.5

    在本文中,我们将讨论如何将 Apache Shiro 与 CAS 3.5 版本进行整合,以实现统一的登录认证。 整合 Shiro 和 CAS 的主要目标是利用 CAS 的身份验证服务,避免在每个应用中重复实现登录逻辑。以下是一个简化的整合...

    cas tomcat整合单点登录demo

    【标题】"CAS Tomcat整合单点登录Demo"是一个示例项目,展示了如何将CAS(Central Authentication Service)与Tomcat应用程序服务器集成,实现单点登录(Single Sign-On, SSO)的功能。CAS是一种开放源码的身份验证...

    使用CAS整合CXF实现单点登录部署步骤

    本文将详细介绍如何使用CAS整合CXF,实现基于Tomcat服务器的单点登录部署步骤。 首先,我们需要在Tomcat服务器上部署CAS项目。这通常涉及以下步骤: 1. **下载CAS服务器**:从官方Git仓库或Maven仓库获取最新的CAS...

    Acegi Security整合CAS实例

    标题和描述均提到了“Acegi Security整合CAS实例”,这涉及到Spring Framework下的Acegi Security模块与CAS(Central Authentication Service)的集成。Acegi Security是Spring框架的一个子项目,旨在为应用提供安全...

    CAS-SSO 整合 记住密码、验证码 、qq、微博等第三方登录

    本资源基于CAS v4版本自定义扩展了 记住密码、验证码、qq、微博等第三方登录功能

    CAS整合LDAP实现单点登录的资料

    ### CAS整合LDAP实现单点登录的关键知识点 #### 1. 单点登录(SSO)概念与优势 - **定义**: 单点登录(Single Sign-On, SSO)是一种基于用户/会话认证的过程,允许用户在多个应用之间共享登录状态,从而只需要登录一次...

Global site tag (gtag.js) - Google Analytics