当前位置:首页 » 编程语言 » phpcas

phpcas

发布时间: 2022-12-21 02:36:35

‘壹’ php cas单点登录,无登陆信息的话,系统自动转到登陆页面,请问:如何不让系统自动转到登陆页面

你换一个跳转地址就好了啊

‘贰’ 如何配置使用CAS的PHP客户端

1)下载CAS php客户端。我下载的是CAS-1.3.3版本
2)文件结构,如图:

3)在php项目根目录下面创建cas文件夹。拷贝CAS文件夹,CAS.php,docs文件夹下的examples下面的文件 至php项目cas文件夹中。
4)修改CAS.php文件example_html.php文件
修改phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);为
phpCAS::client(CAS_VERSION_2_0, '127.0.0.1', 8443, 'cas');
以上步骤,可完成php的cas配置。但是根据具体项目,需要稍作修改。

‘叁’ 如何配置使用CAS的PHP客户端

整个配置过程我划分成四步骤:
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');表示可以通过localhost:8443/cas访问到CAS服务。
4)在浏览器里试验一下吧,没有意外的话会看到CAS的登录界面。这就表示配通了。
4、根据项目需要修改对应的PHP代码,加入对CAS的调用,将用户登录交给CAS我们只需处理对应的用户,在PHP程序中的权限问题了。对于旧有就有的PHP代码只需要用访问CAS服务换掉验证用户身份部分就可以了。
调用CAS关键性代码:
include_once('CAS.php');
//可以不用,用于调试,可以通过服务端的cas.log看到验证过程。
phpCAS::setDebug();
// 初始化phpcas
p hpCAS::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除了它默认的登录界面和校验逻辑,还是允许自行定义的。
如何自定义登录界面,后续在谈。
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

‘肆’ phpcas登录遇到的问题

使用apereo/phpcas包完成单点登录,某一次项目中,本地测试没有问题发布线上之后cas登录页出现Error Internal script failure。

看到Error Internal script failure这个错误,完全不知道问题出在哪里,各种搜索没有找到答案,无奈进入源码。看到一个log方法,好像是用来记日志的,判断的filename存在就记录日志,继续找到看到了setDebug,在setDebug中去设置了日志文件目录之后就可以记录日志了通过日志看具体问题。

终于在日志里看出了问题在写入session时文件没有写入权限导致cas登录失败

‘伍’ php cas单点登录如何获取用户信息而不跳转到登录页

asjx 获取cookies 即可

‘陆’ php cas客户端session不同步问题怎么解决

如果使用phpcase等cas系统提供的客户端sdk,他帮我们自动做好了session的处理:cas中心验证用户凭证后,会把用户信息传递给子系统,子系统的客户端sdk会把cas中心传回来的用户信息保存到session中(默认是保存user),并且在返回浏览器时将sessionid写到cookie中
可以在子系统登录后,打印出sessionid和内容
var_mp(session_id());
var_mp("<br/>");
var_mp($_SESSION);
比对浏览器cookie中的sessionid,可以看到cookie和session中的sessionid是一致的,并且session中有了user这个属性,就是用户登录时填写的字段

‘柒’ PHPCAS是什么东西

宝石花 学名:Graptopetalum paraguayense 别名:粉莲

‘捌’ PHP 如何过滤 变量 $value1 里一些特定的字符

function htmldecode($str)
{
if(empty($str)) return;
if($str=="") return $str;
$str=str_replace("&",chr(34),$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace("&","&",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("
",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$farr = array(
"/\s+/" , //过滤多余的空白
"/<(\/?)(img|script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU" , //过滤 <script 防止引入恶意内容或恶意代码,如果不需要插入flash等,还可以加入<object的过滤
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU" , //过滤javascript的on事件
);
$tarr = array(
" " ,
"<\\1\\2\\3>" , //如果要直接清除不安全的标签,这里可以留空
"\\1\\2" ,
);
$str = preg_replace ( $farr , $tarr , $str );
return $str;
} 以上是PHP过滤所有特殊字符的代码,你如果只需要过滤掉 <img src="/ 跟 " />,你可以把这2段字符串单独过滤掉,但是一定要注意,别单独过滤“/”否则把你要的部分的“/”也过滤了!

热点内容
c语言自考 发布:2025-05-15 07:52:42 浏览:500
压缩的玉 发布:2025-05-15 07:51:22 浏览:789
android的控件 发布:2025-05-15 07:50:36 浏览:552
南岗法院服务器ip地址 发布:2025-05-15 07:46:02 浏览:287
实况如何退出账号安卓 发布:2025-05-15 07:45:56 浏览:918
深入编译器 发布:2025-05-15 07:41:35 浏览:878
电信手机号服务密码怎么查 发布:2025-05-15 07:40:10 浏览:613
python全局变量文件 发布:2025-05-15 07:35:06 浏览:954
字节和存储字节 发布:2025-05-15 07:32:10 浏览:521
linux应用开发工程师 发布:2025-05-15 07:32:07 浏览:261