PHPBB结合CAS在linux下配置时候出现有关问题,
程序员文章站
2022-04-18 21:00:15
...
PHPBB结合CAS在linux下配置时候出现问题,急急急。。
在linux下结合CAS时候出现问题,安装好mysql php apache tomcat ssl环境之后
按照在PHPBB中加入CASClient 的代码配置了下
in function.php
在In Auth.php
In constants.php
在phpBB3论坛里面点击登录跳到CAS server 的公共登录界面,输入用户名密码登录
看见url上已经出现获得了ticket,但是页面显示出错误如下:
完全弄不明白哪里出错了。忘高手帮我看看什么地方出现问题了。谢谢大家,这问题困扰我N久了。
------解决方案--------------------
顶起 等待
------解决方案--------------------
帮顶。学习。
在linux下结合CAS时候出现问题,安装好mysql php apache tomcat ssl环境之后
按照在PHPBB中加入CASClient 的代码配置了下
in function.php
- PHP code
Add require($phpbb_root_path . 'includes/CAS.' . $phpEx);Find (isset($_POST['login']))Replace it with: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) )Find $result = $auth->login($username, $password, $autologin, $viewonline, $admin);Add the following code before it:if(!$admin && CAS_ENABLE){ $username = phpCAS::getUser(); $password = ''; }
在In Auth.php
- PHP code
Add the following function: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, ); }Find $login = $method($username, $password);Replace it with:if(!$admin && CAS_ENABLE) $login = $this->login_cas($username); else $login = $method($username, $password);
In constants.php
- PHP code
Add the following constant value:define('CAS_ENABLE', true); define('CAS_SERVER_HOSTNAME', 'localhost'); define('CAS_SERVER_PORT', 8443); define('CAS_SERVER_APP_NAME', 'cas');
在phpBB3论坛里面点击登录跳到CAS server 的公共登录界面,输入用户名密码登录
看见url上已经出现获得了ticket,但是页面显示出错误如下:
- PHP code
[phpBB Debug] PHP Notice: in file /includes/CAS/client.php on line 529: session_destroy() [function.session-destroy]: Trying to destroy uninitialized sessionCAS Authentication failed!You were not authenticated.You may submit your request again by clicking here.If the problem persists, you may contact the administrator of this site.phpCAS ${phpcas.version} using server https://localhost:8443/cas/ (CAS 2.0)
完全弄不明白哪里出错了。忘高手帮我看看什么地方出现问题了。谢谢大家,这问题困扰我N久了。
------解决方案--------------------
顶起 等待
------解决方案--------------------
帮顶。学习。
相关文章
相关视频
下一篇: 关于数据排序的有关问题