以下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同步登陆康盛系列产品。(本文仅供学习参考,本人不对修改源程序产生的一切问题负责)
分享到:
相关推荐
X2.5与CAS(Central Authentication Service)集成是一种常见的身份验证解决方案,它能够实现单点登录(Single Sign-On, SSO)功能。在SSO系统中,用户只需登录一次,就可以在多个相互独立的应用系统之间自由切换,...
本话题将详细探讨如何通过UCenter、MediaWiki和Discuz X2这三款软件实现单点登录的集成。 首先,UCenter是由Comsenz开发的一款用户中心系统,主要用于管理和同步多个应用的用户数据,如论坛(Discuz!)、博客、问答...
Discuz X2.5是一款非常流行的社区论坛软件,而CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议,广泛应用于多应用系统中,以实现用户只需一次登录即可访问所有系统。...
NT3.1整合 单点登录"涉及的是互联网社区论坛软件Discuz!NT的版本3.1与其它系统的单点登录(Single Sign-On, SSO)集成技术。Discuz!NT是一款基于.NET平台的开源社区论坛系统,广泛应用于各类网站,提供互动交流功能...
论坛系统,实现单点登录(Single Sign-On, SSO)功能,是许多网站提高用户体验、简化登录流程的一种常见做法。CAS是一种基于Web的开放源码身份验证协议,而Discuz!是一款广泛使用的社区论坛软件。” 【知识点详解】...
把文件放在论坛根目录下(bbs)
java_to_discuz单点登录手册
Discuz论坛模拟单点登录的测试小程序代码,数据库文件在src目录下,自行下载discuz论坛安装部署启动后,配置好config.properties的相关参数即可,该程序可以完成向discuz论坛注册用户和单点登录功能。关于discuz相关...
discuz集合了cas单点登录,先安装install下面的discuz.sql,修改config.inc.php文件,将logging.php里面的cas指定到你的单点登录服务器上就行,目前做的是http的单点登录,如果要改为https的,请将CAS文件夹下的...
在本文中,我们将深入探讨如何进行ASP.NET对Discuz的二次开发,特别是实现单点登录(Single Sign-On, SSO)功能,以及同步注册和退出。首先,我们需要了解Discuz论坛系统,它是一个基于PHP和MySQL的开源社区平台,...
在本文中,我们将探讨如何实现Discuz论坛系统的注册同步单点登录功能。这一功能对于多应用集成的环境尤其重要,因为它确保了用户在一个系统注册或登录后,可以无缝地在所有关联子系统中自动登录,提高用户体验。 ...
4. **处理CAS响应**:当用户在CAS服务器上完成登录后,CAS会返回一个票证(ticket)给Discuz!。你的代码需要解析这个票证,并通过CAS服务器验证它的真实性。如果验证成功,用户就可以在Discuz!上获得已认证的会话。 ...
~ ... 类似的代码登录;... 可以嵌入自己的网站代码里实现同步登录。 也可以独立使用注释明确。 3、感谢我自己supFire, 希望大家得到启示, 写出更好的文件共享出来, 也可以写出类似的discuzNT登录整合代码。
1. 单点登录(SSO):网站与Discuz的退出操作需要考虑单点登录,即用户在一处退出,其他关联地方同时注销登录状态。这通常涉及到session管理,确保用户在网站上退出时,Discuz论坛的登录状态也被清除。 2. API调用...
北岸QQ登录增强版2.2是针对Discuz! 平台开发的一款插件,旨在为用户提供更加便捷的QQ一键登录功能,提升用户注册和登录体验,同时也有助于网站吸引更多的QQ用户群体。 一、QQ互联原理与实现 QQ互联是腾讯提供的一...
中,还可以实现多个站点之间的认证共享,即所谓的“单点登录”(Single Sign-On, SSO)。通过配置Ucenter(一个由Comsenz提供的统一认证中心),可以实现用户在一个站点登录后,在其他关联站点也能自动登录的效果。...
Comsenz(康盛)的 UCenter 当前在国内的单点登录领域占据绝对份额,其完整的产品线令 UCenter 成为了账号集成方面事实上的标准。基于 UCenter,可以将 Comsenz 旗下的 Discuz!(社区论坛系统)、SupeSite(门户CMS...
【标题】:使用POST方法实现Discuz论坛登录的原理与步骤 在互联网开发中,HTTP协议是客户端(如浏览器)与服务器之间通信的基础。其中,POST请求是HTTP协议中的一个重要方法,常用于提交数据给服务器进行处理,比如...
登录整合的关键在于实现单点登录(Single Sign-On, SSO)。当用户在网站上登录后,他们也应该能够在Discuz!论坛上自动登录,反之亦然。这通常通过共享session或cookie来实现。你可以创建一个中间件,检查用户的...
《UCenter、MediaWiki与Discuz X2的整合与单点登录实现》 在互联网社区建设中,统一用户管理、信息共享以及多平台间的无缝切换是提升用户体验的关键。UCenter、MediaWiki和Discuz X2这三款软件各自在用户管理、百科...