900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php 用CAS实现SSO单点登陆及登出功能

php 用CAS实现SSO单点登陆及登出功能

时间:2022-08-21 03:14:54

相关推荐

php 用CAS实现SSO单点登陆及登出功能

php教程|php手册

php,CAS,实现,SSO,单点,登陆,登出,功能,php

php教程-php手册

asp ajax源码,vscode更改,ubuntu 设置不见了,tomcat服务器最高并发量,sqlite查找wxid,网页设计设计公司,万网邮箱服务器地址,mc插件源码,前端几个重要框架,我是个爬虫,PHP演讲,平台seo,获取网站缩略图的asp代码,3d网页导航,elline 模板,h5页面 自适应,iwms网站管理系统,微擎万能门店小程序lzw

php用CAS实现SSO单点登陆及登出功能 一..CAS服务器搭建 CAS服务器端下载地址:/cas/ 解压cas-server-4.0.0-release.zip将modules目录下的cas-server-webapp-4.0.0.war改名称为cas.war复制到 tomcat的webapps下,启动tomcat,访问:

hao123导航源码静态,Ubuntu拖动文件死机,知乎数据爬虫,php整除余数,站长seo监控lzw

c 仿xp资源管理器源码,ubuntu开启631端口,tomcat数据库如何连接池,爬虫进化的视频,xp系统能装php7吗,seo地域优化lzw

php用CAS实现SSO单点登陆及登出功能

一..CAS服务器搭建

CAS服务器端下载地址:/cas/

解压cas-server-4.0.0-release.zip将modules目录下的cas-server-webapp-4.0.0.war改名称为cas.war复制到tomcat的webapps下,启动tomcat,访问:http://localhost:8080/cas/login 就可以看到登录界面了:

cas服务端默认采用的是 用户名=密码的验证,并且采用的是https验证,需要给tomact配置证书,本系统没有采用https验证,若采用https验证可参考:

/haydenwang8287/archive//07/26/5765941.aspx

1.若不采用http验证,服务器需配置如下:

找到文件cas/WEB-INF/deployerConfigContext.xml的如下内容:

增加参数p:requireSecure=”false”,是否需要安全验证,即HTTPS,false为不采用,加上去之后,如下:

找到文件:cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml的如下内容:

参数p:cookieSecure=”true”,同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证。

参数p:cookieMaxAge=”-1″,简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。

服务器端退出地址:http://localhost:8080/cas/logout,如图:

若希望退出后能返回则需要配置服务端cas-servlet.xml配置

增加属性 p:followServiceRedirects=”true”

退出链接为:http://localhost:8080/cas/logout?service=http://localhost:8080/Casclient/index.jsp

2.更改服务器验证方式,采用数据库验证

修改配置文件deployerConfigContext.xml,加dbcp连接池:(以oracle为例)

oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@192.168.18.26:1521:orcltesttest

需要的jar包有:(cas-server-support-jdbc-3.4.4.jar,commons-dbcp-1.2.1.jar,commons-pool-1.3.jar,ojdbc14_g.jar)

配置加密方式,cas内置的有MD5加密,也可以写自己的加密类,实现org.jasig.cas.authentication.handler.PasswordEncoder接口即可:

注释掉默认的验证方式,采用数据库查询验证:

<!-- -->

服务器配置完成

二.配置PHP客户端

PHP客户端下载地址:/cas-clients/php/,目前最新版本为CAS-1.2.0.ORC2

新建项目:phpCasClient.将CAS文件夹和CAS.php复制到工程中,修改CAS/client.php,将其中的https改为http,新建php文件:user.php,此文件用于处理单点登陆,内容如下:

"http://localhost/phpCasClient/user.php?a=login");phpCAS::logout($param);}/** * @desc LoginCas()单点登陆 */public function loginCas(){Header(P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT");//引人casinclude CAS-1.2.0/CAS.php;// initialize phpCAS //phpCAS::client(CAS_VERSION_2_0,服务地址,端口号,cas的访问地址);phpCAS::client(CAS_VERSION_2_0,"192.168.142.1","80","/cas",true);//可以不用,用于调试,可以通过服务端的cas.log看到验证过程。// phpCAS::setDebug();//登陆成功后跳转的地址 -- 登陆方法中加此句phpCAS::setServerLoginUrl("https://192.168.142.1:80/cas/login?embed=true&cssUrl=http://localhost/phpCasClient/style/login.css&service=http://localhost/phpCasClient/user.php?a=loginCas");//no SSL validation for the CAS server 不使用SSL服务校验phpCAS::setNoCasServerValidation();//这里会检测服务器端的退出的通知,就能实现php和其他语言平台间同步登出了phpCAS::handleLogoutRequests();if(phpCAS::checkAuthentication()){//获取登陆的用户名$username=phpCAS::getUser();//用户登陆成功后,采用js进行页面跳转echo "parent.location.href=http://localhost/phpCasClient/home.php;";}else{// 访问CAS的验证phpCAS::forceAuthentication();}exit;}}?>

新建视图层,login.html,该页面即为单点登陆页面,内容如下:

单点登陆界面

注意:php配置文件php.ini需要开启php_curl,即 找到 ;extension=php_curl.dll ,将该句前面的分号去掉即可,改为 extension=php_curl.dll

此时,访问login.html,便可以看到单点登陆的界面,登陆成功后,页面跳转到home.php中.

点击 登出,控制层请求user.php的logout方法,处理登出请求.登出成功后,页面跳转到login.html,提示用户登陆

至此,php使用CAS的单点登陆,登出已经操作完毕.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。