靠着双手,终于将cas与discuz 中的ucenter整合完毕。但是,是盲人摸象摸过来的。中间遇到过很多的困难,但是,终究是完成了。

这里不得不对“拍黄片”进行一定的吐槽。相对java来说,语法什么的还是比较难用的,就比如,$username = mb_split("@", $user)[0];这种写法再java很好不是么。但是在php中却必须分成两句$usernamearr = mb_split("@", $user);$username = $usernamearr[0];否则,直接在require 这个文件的时候,就挂掉了。。也没有错误抛出。坑爹啊…… 但是,也不得不说,php不需要编译,再加上phpstorm可以直接将文件发送到对应的服务器上。在调试的时候,酸爽的一塌糊涂。

好,吐槽完毕,言归正传。首先,discuz的搭建,可以去找度娘。用一个同事的话说:“那娘们儿啥都会。。。。” 。。。。。

首先,我们需要下载 phpCAS  地址是在 http://developer.jasig.org/cas-clients/php/   我们这次整合的时候采用的是1.3.0版本

  1. 需要将内容嵌入到discuz的项目中 。我们直接解压缩 Cas到discuz项目根目录。
  2. 修改discuz的类加载器修改./source/class/class_core.php

    1. 引入Cas的Autoload.php 文件

    2.  在调用类加载器的时候,会尝试先调用cas的类加载器
  3. 导出证书文件到pem文件
    因为java项目都是到处的crt 或者cer证书,所以,我们直接把这个证书给导出成pem格式即可
    openssl x509 -inform der -in server.cer -out server.pem
  4. 修改ucenter登录代码
    因为我们是不能也不愿意返回用户的密码的,于是,出于简单的目的,我们对ucenter做了邪恶的阉割。
    ./uc_server/model/user.php  中的 add_user方法中增加了一句

    $password = md5(md5('123123@#@$!)(@(').$salt);
    这样,所有的用户的密码均相同了.也就是说,虽然discuz有着用户名和密码的校验功能,但是,其实已经名存实亡.好处是,我们可以轻松跟uc同步登陆,创口小,不复发,安全系数高........
  5. 增加CasClient.php代码
    <?phperror_log("123");include_once(DISCUZ_ROOT. 'Cas/CAS.php');loaducenter();phpCAS::setDebug ();phpCAS::client ( CAS_VERSION_2_0,"cas.ccod.cn",8443,"/cas");phpCAS::setCasServerCACert($cas_server_ca_cert_path='/home/www/bbs/Cas/server.pem');phpCAS::handleLogoutRequests();if(!phpCas::checkAuthentication()){phpCAS::forceAuthentication();} else{$user = phpCAS::getUser();$mb_split = mb_split("@",$user);$my_username = addslashes($mb_split[0]);if(uc_user_logincheck($my_username,$_G['clientip']) == 5){error_log('准备初始化discuz');$discuz = C::app();error_log('初始化discuz完毕');$discuz->init();requirelibfile('function/member');requirelibfile('class/member');$_GET['formhash'] = $_G['formhash'];$_GET['from'] = 1;$_GET['loginsubmit'] = $_GET['infloat'] = 'yes';$_GET['cookietime'] = '2592000';$_GET['username'] = 'BEITAI';$_GET['password'] = '123123@#@$!)(@(';
    $_GET['auth'] = '';error_log('初始化参数完毕');$ctl_obj = newlogging_ctl();$ctl_obj->setting= $_G['setting'];$method = 'on_login';$ctl_obj->template= 'member/login';$ctl_obj->$method();echo"成功登录!".time();}
    }
    ?>
  6. 将登陆代码嵌入到discuz中
    修改.source/include/post/post_newthread.php代码,此处乃是

    
    
    postperm_login_nopermission没有权限的话会跳转到登陆界面。我们再这里加入cas权限校验,如果cas登陆成功则同步登陆ucenter

  7. 将登出代码嵌入到discuz中
    修改.source/class/class_member.php  修改 on_logout()方法 
    在这个方法中插入这段代码:表示会登出cas,并跳转到http://discuz/bbs/index.php 这个地址上

    include_once(DISCUZ_ROOT. 'Cas/CAS.php');phpCAS::client ( CAS_VERSION_2_0,"cas.ccod.cn",8443,"/cas");$param=array("service"=>"http://discuz/bbs/index.php");phpCAS::logout($param);
  8. 将拦截登出请求嵌入到discuz中
    这个暂时没有做,不过不外乎是 再class_core或者function_core中增加一个,以确保登出请求呗拦截和处理.仅此而已,有兴趣的童鞋可以试试

    phpCAS::client ( CAS_VERSION_2_0,"cas.ccod.cn",8443,"/cas");phpCAS::setCasServerCACert($cas_server_ca_cert_path='/home/www/bbs/Cas/server.pem');phpCAS::handleLogoutRequests();

欢迎各位童鞋参观指导,并给出相应意见和建议

discuz3x ucenter 与cas 初步整合相关推荐

  1. 互联网早报:腾讯搜狗即将完成初步整合:搜狗核心团队并入腾讯看点,王小川未来或离任

    行业热点 1.腾讯搜狗即将完成初步整合:搜狗核心团队并入腾讯看点,王小川未来或离任: 2.鸿星尔克发紧急通知:鸿星尔克系统崩溃恳请退款 仓库已售空: 3.苏宁易购:终止回购公司股份,黄明端当选董事长: ...

  2. UCenter API 开发笔记——UCenter与ThinkPHP5.1 整合

    一.前言: 因为移动互联网的迅速发展,各大互联网厂商都推出了小程序,再加上原有的APP.web等项目,用户数据被严重割裂.为了统一用户数据.优化用户体验:实现一个账号多平台登录.数据互通,迫切需要一个 ...

  3. cas sso 整合记录

    首先说明下,我使用的cas-server版本是4.2.1 整合过程中遇到的问题及解决方式如下 1.因为使用https的话证书是个麻烦事,所以启用http 修改cas-server-webapp下的ca ...

  4. 初步整合vue-element-admin和GitDataV两个Vue开源框架方案实现大数据可视化

    写在前面 vue-element-admin 是一个后台前端解决方案,依据vue-element-admin二次开发方法.我们可以把 vue-element-admin当做工具箱或者集成方案仓库,在 ...

  5. ucenter base.php,phpcms整合ucenter问题集

    1.整合 UCenter 后,Discuz! 注册会员在 phpcms 中为什么不显示昵称? 答:这是因为 Discuz! 只有"用户名",没有"昵称"的概念. ...

  6. 九游与阿里手游初步整合 将获淘宝支付宝入口

    九游在其2015年度战略发布会上宣布,对阿里巴巴手游业务的整合已初步完成.会上,UC副总裁林永颂公布,2014年UC游戏给合作伙伴的分成超过9亿元,再次刷新2012年和2013年1亿和3亿的记录,保持 ...

  7. phpcms2008与ucenter、discuz的整合办法

    原文地址:http://blog.sina.com.cn/s/blog_56f150e70100bi8t.html phpcms本月刚推出2008正式版本,虽然2008版本一直跳票,但是这一版本和20 ...

  8. 腾讯搜狗即将完成初步整合,王小川或将离任

    点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 本文来自雷锋网,作者代润泽 王小川已投资成立健康咨询公司,持股为99%. " 前段时间,市场监管总局曾发文表示无条件批准腾 ...

  9. 帝国CMS与Ucenter同步通信,会员整合

    背景:公司因上市进行项目大整合.一部分项目使用phalcon新框架,一小部分使用帝国CMS,这样就产生了问题:phalcon框架对cookie具有加解密,帝国获取到phalcon的cookie但却无法 ...

  10. CAS客户端整合(三) Otrs

    OTRS 是用Perl写的一个工单邮件系统,非常强大. 登录流程 流程图略过 otrs没有像 discuz 和 zabbix 类似的游客登录状态,这样处理起来逻辑分支少一些. 不过还是考虑用 otrs ...

最新文章

  1. 2022-2028年中国阻尼涂料市场研究及前瞻分析报告
  2. ElasticSearch6 查询模板的创建使用
  3. leetcode 21 Merge Two Sorted Lists
  4. SQLite的事务和锁
  5. 听说用 Lombok 可以早点下班?
  6. vue修饰符和条件指令
  7. linux ssh远程登陆报警提醒
  8. 工程师如何优雅的拒绝不合理需求
  9. 【雷达通信】基于matlab Omiga-K算法SAR回波生成和成像【含Matlab源码 1184期】
  10. COGS2353[HZOI 2015] 有标号的DAG计数 I
  11. python 回归方程及回归系数的显著性检验_回归方程及回归系数的显著性检验演示教学...
  12. 智能卡APDU的命令及其解析
  13. 测度空间上的可测函数和性质
  14. java高级程序猿需要看的书籍
  15. 微信PC端技术研究(2)-拿下语音
  16. 一个数和0xFFFF与运算的意义
  17. 关于curses 安装
  18. cv曲线面积的意义_耳机的瀑布图真的有意义吗?关于耳机的瀑布图,你需要知道的。...
  19. 20169218 2016-2017-2 《网络攻防实践》第二周学习总结
  20. h3c无线认证服务器,H3C无线路由器配置样例之带认证接入

热门文章

  1. ORA-01722:invalid number
  2. Yolo 一小时学会基本操作
  3. 利用Drawable生成圆形图片
  4. CF891D Sloth
  5. 喵的Unity游戏开发之路 - 攀爬
  6. 怎样在微信公众平台上传文件给别人下载
  7. python打印pdf文件_3条指令教会你用python创建中文pdf文件,适合批量打印,附送源码-pdf文件不能打印...
  8. 远程拨号换IP的方法
  9. 计算机英文电子书分享
  10. Python批量扫描服务器指定端口状态