代码改变世界

phpcas 整合 ecms的问题

2018-08-01 08:58  南船座  阅读(1171)  评论(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系统权限等都和以前一样