discuz3x ucenter 与cas 初步整合
靠着双手,终于将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版本
- 需要将内容嵌入到discuz的项目中 。我们直接解压缩 Cas到discuz项目根目录。
- 修改discuz的类加载器修改./source/class/class_core.php
引入Cas的Autoload.php 文件
在调用类加载器的时候,会尝试先调用cas的类加载器
- 导出证书文件到pem文件
因为java项目都是到处的crt 或者cer证书,所以,我们直接把这个证书给导出成pem格式即可
openssl x509 -inform der -in server.cer -out server.pem - 修改ucenter登录代码
因为我们是不能也不愿意返回用户的密码的,于是,出于简单的目的,我们对ucenter做了邪恶的阉割。
./uc_server/model/user.php 中的 add_user方法中增加了一句$password = md5(md5('123123@#@$!)(@(').$salt);
这样,所有的用户的密码均相同了.也就是说,虽然discuz有着用户名和密码的校验功能,但是,其实已经名存实亡.好处是,我们可以轻松跟uc同步登陆,创口小,不复发,安全系数高........
- 增加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();} }
?>
- 将登陆代码嵌入到discuz中
修改.source/include/post/post_newthread.php代码,此处乃是postperm_login_nopermission没有权限的话会跳转到登陆界面。我们再这里加入cas权限校验,如果cas登陆成功则同步登陆ucenter
- 将登出代码嵌入到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);
- 将拦截登出请求嵌入到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.腾讯搜狗即将完成初步整合:搜狗核心团队并入腾讯看点,王小川未来或离任: 2.鸿星尔克发紧急通知:鸿星尔克系统崩溃恳请退款 仓库已售空: 3.苏宁易购:终止回购公司股份,黄明端当选董事长: ...
- UCenter API 开发笔记——UCenter与ThinkPHP5.1 整合
一.前言: 因为移动互联网的迅速发展,各大互联网厂商都推出了小程序,再加上原有的APP.web等项目,用户数据被严重割裂.为了统一用户数据.优化用户体验:实现一个账号多平台登录.数据互通,迫切需要一个 ...
- cas sso 整合记录
首先说明下,我使用的cas-server版本是4.2.1 整合过程中遇到的问题及解决方式如下 1.因为使用https的话证书是个麻烦事,所以启用http 修改cas-server-webapp下的ca ...
- 初步整合vue-element-admin和GitDataV两个Vue开源框架方案实现大数据可视化
写在前面 vue-element-admin 是一个后台前端解决方案,依据vue-element-admin二次开发方法.我们可以把 vue-element-admin当做工具箱或者集成方案仓库,在 ...
- ucenter base.php,phpcms整合ucenter问题集
1.整合 UCenter 后,Discuz! 注册会员在 phpcms 中为什么不显示昵称? 答:这是因为 Discuz! 只有"用户名",没有"昵称"的概念. ...
- 九游与阿里手游初步整合 将获淘宝支付宝入口
九游在其2015年度战略发布会上宣布,对阿里巴巴手游业务的整合已初步完成.会上,UC副总裁林永颂公布,2014年UC游戏给合作伙伴的分成超过9亿元,再次刷新2012年和2013年1亿和3亿的记录,保持 ...
- phpcms2008与ucenter、discuz的整合办法
原文地址:http://blog.sina.com.cn/s/blog_56f150e70100bi8t.html phpcms本月刚推出2008正式版本,虽然2008版本一直跳票,但是这一版本和20 ...
- 腾讯搜狗即将完成初步整合,王小川或将离任
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 本文来自雷锋网,作者代润泽 王小川已投资成立健康咨询公司,持股为99%. " 前段时间,市场监管总局曾发文表示无条件批准腾 ...
- 帝国CMS与Ucenter同步通信,会员整合
背景:公司因上市进行项目大整合.一部分项目使用phalcon新框架,一小部分使用帝国CMS,这样就产生了问题:phalcon框架对cookie具有加解密,帝国获取到phalcon的cookie但却无法 ...
- CAS客户端整合(三) Otrs
OTRS 是用Perl写的一个工单邮件系统,非常强大. 登录流程 流程图略过 otrs没有像 discuz 和 zabbix 类似的游客登录状态,这样处理起来逻辑分支少一些. 不过还是考虑用 otrs ...
最新文章
- 2022-2028年中国阻尼涂料市场研究及前瞻分析报告
- ElasticSearch6 查询模板的创建使用
- leetcode 21 Merge Two Sorted Lists
- SQLite的事务和锁
- 听说用 Lombok 可以早点下班?
- vue修饰符和条件指令
- linux ssh远程登陆报警提醒
- 工程师如何优雅的拒绝不合理需求
- 【雷达通信】基于matlab Omiga-K算法SAR回波生成和成像【含Matlab源码 1184期】
- COGS2353[HZOI 2015] 有标号的DAG计数 I
- python 回归方程及回归系数的显著性检验_回归方程及回归系数的显著性检验演示教学...
- 智能卡APDU的命令及其解析
- 测度空间上的可测函数和性质
- java高级程序猿需要看的书籍
- 微信PC端技术研究(2)-拿下语音
- 一个数和0xFFFF与运算的意义
- 关于curses 安装
- cv曲线面积的意义_耳机的瀑布图真的有意义吗?关于耳机的瀑布图,你需要知道的。...
- 20169218 2016-2017-2 《网络攻防实践》第二周学习总结
- h3c无线认证服务器,H3C无线路由器配置样例之带认证接入