`
zxs19861202
  • 浏览: 917525 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

discuz单点登录,CAS实现

阅读更多

以下CAS有关软件可以去 http://www.ja-sig.org/products/cas/downloads/index.html 下载。

CAS server端: cas-server-3.3-release.zip

CAS php客户端:CAS-1.0.1.tgz

解压CAS-1.0.1.tgz,将cas目录和CAS.php复制到discuz目录。

 

 

 

找到discuz的logging.php 这个是登陆入口,在第二行插入

 

 require_once("CAS.php");

 

define('CAS_SERVER_HOSTNAME', "CAS服务器地址");

 

define('CAS_SERVER_PORT', 80);

 

define('CAS_SERVER_APP_NAME', "CAS验证入口");

 

phpCAS::client(CAS_VERSION_2_0, CAS_SERVER_HOSTNAME, CAS_SERVER_PORT, CAS_SERVER_APP_NAME);

 

phpCAS::setNoCasServerValidation();

 

phpCAS::forceAuthentication();

 

if($action<>'logout')

{ unset($_COOKIE);

 

$action='login';

 $username = phpCAS::getUser();

$password = '';

$loginsubmit='yes';

 $cookietime="2592000";

$allowsynlogin = 1;

}

 

 

 找到这行showmessage('logout_succeed', dreferer());

 

在它上面加入

$param=array("service"=>"http://localhost/bbs");这里为登出后需要跳转的页面,当然服务器端需要配置:

1.服务端cas-servlet.xml配置

<bean id="logoutController" class="org.jasig.cas.web.LogoutController" ... .../>

增加属性 p:followServiceRedirects="true"


 phpCAS::logout($param);  

 

 

 之后找到uc_client \control目录下的user.php

 

 注释掉第123行开始的

elseif($user['password'] != md5($passwordmd5.$user['salt']))

{ $status = -2; }

 elseif($checkques && $user['secques'] != '' && $user['secques'] != $_ENV['user']->quescrypt

($questionid, $answer)) { $status = -3; }

 

找到uc_client \model目录下的user.php ,

 

注释掉第100行开始的

 

elseif($user['password'] != md5(md5($password).$user['salt'])) { return -2;}

 

代码改造结束,这样discuz利用CAS登录后返回的用户名进行登录,修改discuz的登录链接,不要使用弹出式的。没有用密码做ucenter同步登陆,可能不太安全,其实也可以从CAS取得用户名的同时再申请取得密码给$password,这样的话就不需要修改uc_client 目录下的两个

 

user.php文件了。推荐还是从CAS同时取得密码,这样安全些。 至此discuz不但能通过CAS实现与其他系统的同步登陆,同时能够实现同过ucenter同步登陆康盛系列产品。(本文仅供学习参考,本人不对修改源程序产生的一切问题负责)

 

 

 

分享到:
评论

相关推荐

    discuz x2.5和cas集成,实现cas单点登录 sso

    X2.5与CAS(Central Authentication Service)集成是一种常见的身份验证解决方案,它能够实现单点登录(Single Sign-On, SSO)功能。在SSO系统中,用户只需登录一次,就可以在多个相互独立的应用系统之间自由切换,...

    UCenter+MediaWiki+Discuz X2实现单点登录

    本话题将详细探讨如何通过UCenter、MediaWiki和Discuz X2这三款软件实现单点登录的集成。 首先,UCenter是由Comsenz开发的一款用户中心系统,主要用于管理和同步多个应用的用户数据,如论坛(Discuz!)、博客、问答...

    discuz x2.5和cas集成,一键登录

    Discuz X2.5是一款非常流行的社区论坛软件,而CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议,广泛应用于多应用系统中,以实现用户只需一次登录即可访问所有系统。...

    Discuz!NT3.1整合 单点登录

    NT3.1整合 单点登录"涉及的是互联网社区论坛软件Discuz!NT的版本3.1与其它系统的单点登录(Single Sign-On, SSO)集成技术。Discuz!NT是一款基于.NET平台的开源社区论坛系统,广泛应用于各类网站,提供互动交流功能...

    cas 和 discuz 配置整合

    论坛系统,实现单点登录(Single Sign-On, SSO)功能,是许多网站提高用户体验、简化登录流程的一种常见做法。CAS是一种基于Web的开放源码身份验证协议,而Discuz!是一款广泛使用的社区论坛软件。” 【知识点详解】...

    简单实现单点登录discuz

    把文件放在论坛根目录下(bbs)

    java_to_discuz单点登录手册.xls

    java_to_discuz单点登录手册

    Discuz论坛模拟单点登录的测试小程序代码

    Discuz论坛模拟单点登录的测试小程序代码,数据库文件在src目录下,自行下载discuz论坛安装部署启动后,配置好config.properties的相关参数即可,该程序可以完成向discuz论坛注册用户和单点登录功能。关于discuz相关...

    discuz集合cas客户端

    discuz集合了cas单点登录,先安装install下面的discuz.sql,修改config.inc.php文件,将logging.php里面的cas指定到你的单点登录服务器上就行,目前做的是http的单点登录,如果要改为https的,请将CAS文件夹下的...

    ASP.NET二次开发Discuz,单点登录等功能。

    在本文中,我们将深入探讨如何进行ASP.NET对Discuz的二次开发,特别是实现单点登录(Single Sign-On, SSO)功能,以及同步注册和退出。首先,我们需要了解Discuz论坛系统,它是一个基于PHP和MySQL的开源社区平台,...

    discuz注册同步单点登录

    在本文中,我们将探讨如何实现Discuz论坛系统的注册同步单点登录功能。这一功能对于多应用集成的环境尤其重要,因为它确保了用户在一个系统注册或登录后,可以无缝地在所有关联子系统中自动登录,提高用户体验。 ...

    cas, casphp, discuz整合成功案例

    4. **处理CAS响应**:当用户在CAS服务器上完成登录后,CAS会返回一个票证(ticket)给Discuz!。你的代码需要解析这个票证,并通过CAS服务器验证它的真实性。如果验证成功,用户就可以在Discuz!上获得已认证的会话。 ...

    脱离discuz; 获取discuz登录信息程序 适合于网站和discuz登录整合

    ~ ... 类似的代码登录;... 可以嵌入自己的网站代码里实现同步登录。 也可以独立使用注释明确。 3、感谢我自己supFire, 希望大家得到启示, 写出更好的文件共享出来, 也可以写出类似的discuzNT登录整合代码。

    网站和discuz登录、注册、退出整合讲解

    1. 单点登录(SSO):网站与Discuz的退出操作需要考虑单点登录,即用户在一处退出,其他关联地方同时注销登录状态。这通常涉及到session管理,确保用户在网站上退出时,Discuz论坛的登录状态也被清除。 2. API调用...

    discuz 北岸QQ登录 增强版2.2

    北岸QQ登录增强版2.2是针对Discuz! 平台开发的一款插件,旨在为用户提供更加便捷的QQ一键登录功能,提升用户注册和登录体验,同时也有助于网站吸引更多的QQ用户群体。 一、QQ互联原理与实现 QQ互联是腾讯提供的一...

    discuz二次开发登录验证原理

    中,还可以实现多个站点之间的认证共享,即所谓的“单点登录”(Single Sign-On, SSO)。通过配置Ucenter(一个由Comsenz提供的统一认证中心),可以实现用户在一个站点登录后,在其他关联站点也能自动登录的效果。...

    discuz-ucenter-api-for-java

    Comsenz(康盛)的 UCenter 当前在国内的单点登录领域占据绝对份额,其完整的产品线令 UCenter 成为了账号集成方面事实上的标准。基于 UCenter,可以将 Comsenz 旗下的 Discuz!(社区论坛系统)、SupeSite(门户CMS...

    用post实现discuz论坛登陆

    【标题】:使用POST方法实现Discuz论坛登录的原理与步骤 在互联网开发中,HTTP协议是客户端(如浏览器)与服务器之间通信的基础。其中,POST请求是HTTP协议中的一个重要方法,常用于提交数据给服务器进行处理,比如...

    网站和discuz登录、注册、退出的整合讲解

    登录整合的关键在于实现单点登录(Single Sign-On, SSO)。当用户在网站上登录后,他们也应该能够在Discuz!论坛上自动登录,反之亦然。这通常通过共享session或cookie来实现。你可以创建一个中间件,检查用户的...

    UCenter_MediaWiki_Discuz X2.rar

    《UCenter、MediaWiki与Discuz X2的整合与单点登录实现》 在互联网社区建设中,统一用户管理、信息共享以及多平台间的无缝切换是提升用户体验的关键。UCenter、MediaWiki和Discuz X2这三款软件各自在用户管理、百科...

Global site tag (gtag.js) - Google Analytics