近段时间不断有从事PHP开发的朋友,询问我如何配置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的访问地址');

将自己的服务地址和端口号和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除了它默认的登录界面和校验逻辑,还是允许自行定义的。

如何自定义登录界面,后续在谈。

更多相关文章

  1. 关注:PHP文件目录和文件本身的操作
  2. php exec文件从终端运行,而不是从浏览器运行
  3. log4php将不同级别的日志打印到不同的日志文件中
  4. PHP - 在外部服务器上读取文件?
  5. 仅在LARAVEL或AJAX中提交表单时,无需用户身份验证即可将文件上载
  6. [php入门] 1、从安装开发环境环境到(庄B)做个炫酷的登陆应用
  7. PHP ZipArchive 实现压缩解压Zip文件
  8. PHP 开发环境配置
  9. 纯php文件不加结束标记的好处

随机推荐

  1. 修复linux grub引导程序
  2. 正则将长数字转为英式写法(从后向前3个数
  3. Linux实用程序编写了一个matlab .mat文件
  4. 【精】Linux磁盘I/O性能监控之iostat详解
  5. Linux入门笔记之一:系统分区及挂载点
  6. ldconfig报错 :libstdc++.so.6.0.18-gdb.p
  7. linux下的C语言编程(总结篇)
  8. linux 的终端字体色和背景色的修改方法(三
  9. 操作系统的理念—以windows和linux为例
  10. ATT汇编与Intel汇编的区别,摘自《深入分析