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同步登陆康盛系列产品。(本文仅供学习参考,本人不对修改源程序产生的一切问题负责)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值