近段时间不断有从事PHP开发时时彩源码搭建出售 http://haozbbs.com Q1157880099 的朋友,询问我如何配置CAS的PHP客户端。由于工作关系我不能一一给予答复特写此篇文章。
首先很抱歉,由于个人业余时间都在照顾小宝宝,所以很久都没有给回复,酝酿如此之久才写。
在则由于公司管理比较严格,无法拿到当初项目使用CAS时候写下的几篇文档,因此只能先给大家一些文字的大纲,而无法图文并茂了。
整个配置过程我划分成四步骤:
1、准备CAS的PHP库和相关库文件
1)到CAS的网站下载文件phpcas-0.60-rc7.zip
2) 由于其用到了PEAR的DB库,需要到PEAR网站去下载。
下载文件PEAR-1.7.1.tgz和DB-1.7.13.tgz 也可在google上搜索。
当然不一定是我说的版本,但我给的是我试验成功的版本。
3) 用于使用到了SSL所以需要下载openssl。当然我是在windows环境下试验的,下载的是
其的windows版本。
4)安装openssl。
2、配置PHP环境
1)将phpcas-0.60-rc7.zip解压,我们选在了PHP环境的include目录。在其下建立cas将文件解压进去。
2)同理将PEAR-1.7.1.tgz和DB-1.7.13.tgz解压,也分别建立pear和db两个目录。
3)修改php环境的ini文件,一般是php.ini文件。将我们前两步骤建立的目录加入到include_path中。根据安装环境修改对应的unix或windows项。
4)由于phpcas用到了CURL(用于连接ssl)和DOMXML(用于处理CAS服务器返回的消息)两个组件,因此需要保证php解释环境需要有这两个扩展。需要做的就是修改ini文件将extentions节下的屏蔽符号去掉,然后就是检查PHP环境的extentions目录下是否有对应的.dll或.o文件。一般标准安装都会有。
3、测试CAS的php客户端
1)前面做完后,应该比较激动了,很想看看php程序到底能不能访问CAS呢。
2)在phpcas-0.60-rc7.zip中的docs/examples中有几个测试程序。当然我们先前解压的目录下也有。
3)我们只是看一下通了没有,因此拷贝example_simple.php文件到apache的htdocs下。具体根据你的web服务器配置。总之目的就是能通过浏览器访问example_simple.php。在用之前需要修改
example_simple.php文件,主要是要修改里面关于CAS服务器配置信息,修改代码中的phpCAS::client(...)这一句。整个方法意义如下:
phpCAS::client(CAS_VERSION_2_0,'服务地址',端口号,'cas的访问地址'http://niusilingyuanmaxiazai.ahfv.top );
将自己的服务地址和端口号和cas的相对服务地址的url填如就可以了,例如:phpCAS::client(CAS_VERSION_2_0,'localhost',8443,'cas');表示可以通过http://localhost:8443/cas访问到CAS服务。
4)在浏览器里试验一下吧,没有意外的话会看到CAS的登录界面。这就表示配通了。
4、根据项目需要修改对应的PHP代码,加入对CAS的调用,将用户登录交给CAS我们只需处理对应的用户,在PHP程序中的权限问题了。对于旧有就有的PHP代码只需要用访问CAS服务换掉验证用户身份部分就可以了。
调用CAS关键性代码:
include_once('CAS.php');
//可以不用,用于调试,可以通过服务端的cas.log看到验证过程。
phpCAS::setDebug();
// 初始化phpcas
phpCAS::client(CAS_VERSION_2_0,'服务地址',端口号,'cas的访问地址');
例如:phpCAS::client(CAS_VERSION_2_0,'localhost',8443,'cas');
// 不使用SSL服务校验
phpCAS::setNoCasServerValidation();
// 访问CAS的验证
phpCAS::forceAuthentication();
这时候就验证完毕了
获得用户名可以通过phpCAS::getUser()
//登出
if (isset($_REQUEST['logout'])) {
phpCAS::logout();
}
当然CAS除了它默认的登录界面和校验逻辑,还是允许自行定义的。
如何自定义登录界面,后续在谈。