phpcas 整合 ecms的问题
2018-08-01 08:58 南船座 阅读(1184) 评论(0) 编辑 收藏 举报如果有ecms整合phpCAS经验的小伙伴可以给我留言,有偿付费
需求是:ecms登录自动跳转到CAS认证(已完成),认证后直接跳转到帝国cms系统中,并保持帝国cms系统权限等都和以前一样
正常使用
ecms是很多建站的开源cms选择之一,最近甲方提出一个额外需求是对接CAS框架实现SSO(单点登录)
关于单点登录原理,下面这篇博文是我见过,介绍的比较细致
当下我的进度是完成了
1.tomcat(jdk8)配置好了认证证书(能开启https服务,版本是cas-server-4.0.0-release)
2.配置好了php客户端(版本是CAS-1.3.5)
3.配置实现了phpcas认证方式从默认(默认用户名casuser,密码Mellon)到项目所需mysql的验证
在3步骤在参考众多博文挑选的以下三篇
1.配置证书,开启https => 搭建单点登录服务器
2.配置开启php客户端=>搭建1.3.5casphp客户端
3.phpcas连接Mysql=> cas-4.0.0-server 配置mysql数据库查询认证
可以看到在网站根目录下有phpproj1和phpproj2两个项目
当点击任何一个项目的页面时,如果发现没有登录,会自动跳转到认证中心去请求登录,此时session目录下(php/tmp)生成一个由认证中心生成的session,当然此时是0k 也就是生成了一个空session文件
配置完phpcas数据库认证,当输入用户名和密码成功后,认证中心会生成ticket并把ticket返回到当前页面,同时记录session。此时利用phpcas官网介绍的demo中调用
phpCAS::getUser()
从ticket中获取登录用户名
但是现在的根本问题是,ecms有一套自己生成session的机制,和之前的对比可以看出
ecms的session文件内容是——
目前我也是卡在这个地方
由于CAS认证中心有一套自己生成session机制,ecms自身也有一套生成session的机制,解决这个问题 个人觉得应该有两个解决思路
一 实现session共享
或者
二 修改ecms中session和cookie(是cookie和session共同验证)整合进CAS[但实现这点并不简单,因为ecms是cookie+session共同验证]
最后要实现的功能:ecms登录自动跳转到CAS认证(已完成),认证后直接跳转到帝国cms系统中,并保持帝国cms系统权限等都和以前一样