CAS插件

CAS插件

插件作用:让禅道支持 CAS 登录

测试版本:12.4,12.5.3

其他说明:安装完成后,会在原 登录 按钮 左侧,生成 单点登录 按钮,安装的时候,参考一下 安装文档,我已经尽量把文档写清楚了,插件里的一些代码,直接引用了,Github 上 zhoujunhe 的钉钉扫码代码,感谢他的开源代码。

重要说明: 详细看  安装文档! 详细看  安装文档! 详细看  安装文档!404的问题也在安装文档里有说明。如果我有描述不清楚,或者代码错误的,麻烦邮件提醒我一下,我会及时更新修改。

特别说明:

1、默认创建的用户所在组为『其他』,登录后可能提示没有权限,请使用管理员在『组织』-『权限』中对新建的用户进行权限设置

2、token回调中,地址的拼接默认为:$config->requestType     = 'PATH_INFO';

一、插件安装

  • 安装方法1:源码安装

    • 下载插件
    • 将解压插件到本地
    • 将下面两个目录,复制到禅道的根目录
      • config
      • module
  • 安装方法2:插件安装

    • 下载插件
    • 登录管理员账号,后台->插件->本地安装->选择zip包-> 安装

二、CAS服务器配置

  • 增加下面几个属性,CAS返回时key值要跟下面一样,如果没有办法修改 CAS返回的key值,就到 module/cas/control.php 进进行修改映射。

    • name 用户的名称,就是真实姓名
    • email 用户的邮箱
    • mobile 用户的手机号
    • account 用户名,需要在禅道里生成的账号名。


三、插件配置

  • 配置文件在 config/ext/cas.php

    • $config->cas->loginUrl 修改为 cas 的登录url
    • $config->cas->authUrl 修改为 cas token的认证路径
    • $config->cas->serviceUrl 禅道应用的 token 回调地址,如果禅道在网站根路径上,只需要修改域名,否则修改成禅道URL根路径。 如果回调的时候,出现404,大概率是这里的地址配置错误,我在测试的禅道URL根路径是 http://xxxxx/ ,有的是. http://xxxx/zentao/,所以需要根据实际进行修改

登录界面

配置界面

1.1(2021-04-16 18:14:31)

1、使用URLEncode编码Service 2、默认使用Get跳转到登录地址 3、删除一些Mac的临时生成文件 感谢 Stanley Nian 的指教!

1.0(2021-04-14 19:03:34)

所属分类 功能扩展
插件名称 CAS插件
代号 cas_plugin
插件类型 功能扩展
作者 shixf
电子邮箱 shixf@qingyangcheng.com
官方网站 http://www.zentao.net
关键字 cas
用户评分
评论列表
王超 2021-06-13 15:21:54
登出改造
/opt/zbox/app/zentao/module/user/control.php中
logout函数里
public function logout($referer = 0)
{
if(isset($this->app->user->id)) $this->loadModel('action')->create('user', $this->app->user->id, 'logout');
session_destroy();
setcookie('za', false);
setcookie('zp', false);

if($this->app->getViewType() == 'json') die(json_encode(array('status' => 'success')));
$vars = !empty($referer) ? "referer=$referer" : '';
$this->locate($this->createLink('user', 'login', $vars));
}

注释掉 注释掉$this->locate($this->createLink('user', 'login', $vars));
增加 header('location:https://cas.aaaa.com:8443/cas/logout?service=http%3A%2F%2Fzentao.aaaa.com%2Fzentao%2F');
张朝业 2021-05-20 14:12:23
回调404哦
王林 2021-05-20 17:03:20 回复
这个是第三方插件,可以联系下插件页面上插件作者咨询下
Stanley 2021-04-16 12:19:43
看了一下源码,注意两个地方:

首先,配置文件中的serviceUrl应该是这个样子:
<你的禅道访问地址>?m=cas&f=tokenlogin
比如:https://zentao.example.com/www/?m=cas&f=tokenlogin
之后将这个URL做URLEncode后,赋给serviceUrl

第二步,修改module/cas/control.php,找到这一行:
$output = $this->cas->curl($gotoUrl);
修改为:
$output = $this->cas->curl($gotoUrl, [], 'GET');

上述修改针对版本:1.0(2021-04-14 19:03:34)
供大家参考
EmmaFgy 2022-05-12 16:50:20 回复
我遇到得情况是后缀务必是“cas-tokenlogin.html”
例如:http://www.xxxx.com/zentao/cas-tokenlogin.html
克里斯刘 2021-04-14 17:15:24
俞礼剑 2021-03-29 10:58:03
12.5.3版本,插件配置环节token回调地址 修改域名后回调回来 直接404
http:// 项目部署ip:端口 /cas-tokenlogin.html,麻烦抽空解答一下吧,谢谢
禅道-Bee 2021-03-29 17:18:10 回复
联系下官网顶部商务QQ, 邀请加入禅道技术交流群, 群里截图看下具体的操作过程和提示, 方便确认问题.
莫名 2021-04-06 14:48:18 回复
感觉应该是 requestType 不同导致的,你 requestType 是什么?
克里斯刘 2021-04-14 16:25:49 回复
老哥你的回调回来404怎么解决的哇
俞礼剑 2021-06-03 18:05:16 回复
禅道URL根路径没有加上去,加上去就好了,插件作者的安装文档里更新说明了,我就是他说的那种情况
1/1 1
发表评论
评论通过审核后显示。

您需要 登录才能够进行评价!