以下文档以实际项目中的整合为例,抽取了phpBB论坛部分代码,转载请注明出处,欢迎转载!
环境(以下环境测试通过):
Operation System Windows XP
JVM SUN JDK 1.5
PHP PHP 5.2.6
Http Server Apache 2.2.6
Web Server Tomcat 5.5
CAS Server JA-SIG CAS Server 3.2.1
CAS PHP Client PHP CAS Client 1.0.0RC5
Database mysql-5.0.26-win32
Apache 2.2.6 + PHP 5.2.6为PHP的WEB服务器!
Tomcat 5.5 为CAS Server的WEB服务器!
注意: 本次整合只PHPBB前台用户能使用SSO功能,管理员用户使用不了SSO,代码中$admin 变量代表是否管理员用户!
4. CAS PHP Client集成
4.1. 下载CAS PHP Client
总入口:http://www.ja-sig.org/wiki/display/CASC/phpCAS
源码入口页:http://www.ja-sig.org/wiki/display/CASC/Developing+phpCAS+within+Eclipse
源码访问:
SVN URL: https://www.ja-sig.org/svn/cas-clients/phpcas
Web interface: http://developer.ja-sig.org/source/browse/jasigsvn/cas-clients/phpcas
总入口页还有实例可供下载。
4.2. 更改phpBB论坛登录模块
以下可以参见:svn://192.168.16.225/phpBB/trunk/phpBB-3.0.1
1. 把CAS PHP Client的源码copy到${phpBB}/includes下,如下图结构;
图中选中的文件及目录为CAS PHP Client的全部源码。
2. 更改CAS PHP Clinet对https的限制;
Down下来的PHP Client必须要使用https连接与CAS Server通信,在实际项目中,为减少部署的麻烦,可能只要http连接就能满足要求,在文件clinet.php中,把$this->_server['base_url'] = 'https://'更改为$this->_server['base_url'] = 'http://'即可,如图所示。
3. 更改phpBB登录模块
在function.php文件中
加入CAS类引用语句:
require($phpbb_root_path . 'includes/CAS.' . $phpEx);
找到:
if (isset($_POST['login']))
替换成:
if(!$admin && CAS_ENABLE){
// initialize phpCAS
phpCAS::client(CAS_VERSION_2_0, CAS_SERVER_HOSTNAME, CAS_SERVER_PORT, CAS_SERVER_APP_NAME);
phpCAS::setNoCasServerValidation();
// force CAS authentication
phpCAS::forceAuthentication();
}
if (isset($_POST['login']) || (!$admin && CAS_ENABLE) )
找到:
$result = $auth->login($username, $password, $autologin, $viewonline, $admin);
在上面代码片段前加上:
if(!$admin && CAS_ENABLE){
$username = phpCAS::getUser();
$password = '';
}
在auth.php文件中
加入以下代码
/**
*根据当前已登录CAS的用户名获取用户身份信息,封装用户身份信息
* added by Royce
*/
function login_cas($username){
global $db;
$sql = 'SELECT user_id, username, user_password, user_passchg, user_pass_convert, user_email, user_type, user_login_attempts FROM ' . USERS_TABLE
. " WHERE username_clean = '" . $username . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$row) {
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}
if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE) {
return array(
'status' => LOGIN_ERROR_ACTIVE,
'error_msg' => 'ACTIVE_ERROR',
'user_row' => $row,
);
}
// Successful login... set user_login_attempts to zero...
return array(
'status' => LOGIN_SUCCESS,
'error_msg' => false,
'user_row' => $row,
);
}
找到:
$login = $method($username, $password);
替换为:
if(!$admin && CAS_ENABLE)
$login = $this->login_cas($username);
else
$login = $method($username, $password);
在constants.php文件中
增加:
//是否启用CAS
define('CAS_ENABLE', true);
//CAS Server 主机名
define('CAS_SERVER_HOSTNAME', 'localhost');
//CAS Server 端口号
define('CAS_SERVER_PORT', 8080);
//CAS Server应用名
define('CAS_SERVER_APP_NAME', 'cas');
- 大小: 18.7 KB
- 大小: 15.1 KB
分享到:
相关推荐
phpbb开源论坛快捷切换语言的脚本,根据教程替换phpbb文件即可,别忘了清空缓存
详细介绍利用RokBridge_1.0RC8整合Joomla!1.5.9与phpBB3论坛。
这些代码修改的作用是为 phpbb 和其他站点/代码/应用程序创建跨不同、多个域的单点登录。 这些修改使用 phpbb 用户表、会话等。 它的作用是通过使用 iframes 为每个域设置 cookie,它加载一些 connect.php 文件,该...
phpBB-3.0.5 php开源论坛源代码
phpbb程序现在在国内开始火起来了,确实是不错的程序,只是资料国内还不是太多,可以到华人天地,和phpbbchina去看看,专门讨论phpbb的论坛。
phpBB(中文版)不仅是受欢迎的自由软件还是个开放源代码的网络论坛系统,使用PHP作为程序语言,并支持如MySQL、 PostgreSQL、MSSQL、Microsoft Access与Oracle[1]等的资料库。
phpBB不仅是受欢迎的自由软件还是个开放源代码的网络论坛系统,使用PHP作为程序语言,并支持如MySQL、 PostgreSQL、MSSQL、Microsoft Access与Oracle等的资料库.
phpbb手机论坛源码非常好用。演示网站phpbb-wap.com
PHPBB wap论坛 不懂的百度一下PHPBB手机论坛! 功能还不错!还支持银行等游戏!
来自俄罗斯目前最流行的开源wap论坛软件PHPBB-WAP PHPBB-WAP v6.0 更新日志: 1. 自带聊天室、挖豆、签到、QQ登录、金币管理MOD,升级完成后进入后台安装一下就可以(QQ登录自己到腾讯的QQ互联申请) 2. 首页都帮你...
本教程详细的介绍了phpBB系统中论坛管理的相关使用教程。
## Requirements: A running phpBB 2.0.x (lastest version recommended) ## GD 1.8.x - 2.0 or higher (require for auto-thumbnail ## HTTP File Upload Enabled ## ## Tested with: __________ ## ## Files ...
phpBB论坛2.04版
phpbb3简易论坛代码php+mysql
适用phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Admin Overall Forums Permission.zip 这个hack 允许管理人员用鼠标器轻易的一点就设定所有论坛的权限。对于新手来说很适用 Admin Panel for Junior Admins and Mods.zip ...
phpBB不仅是受欢迎的自由软件还是个开放源代码的网络论坛系统使用PHP作为程序语言并支持如MySQL、 PostgreSQL、MSSQL、Microsoft Access与Oracle等的资料库.
基于php开发的论坛程序,基于php开发的论坛程序
PHPBB-WAP v6.1 更新日志: * 增加用户中心主页装扮功能 * 增加用户中心留言功能 * 增加文章功能 ...来自俄罗斯目前最流行的开源wap论坛软件PHPBB-WAP 相关阅读 同类推荐: 论坛系统
phpbb论坛中文版2.03修正版升级到2.04的升级文件