前言
processmaker是目前开源的最好的工作流系统,cas是知名的单点登录server。网络上关于这两个系统的集成文章很少,有价值的仅有一篇,http://forum.processmaker.com/viewtopic.php?f=9&t=930,但该文章中介绍的processmaker版本较低(修改的位置不对)和部分功能未实现。本文部分借鉴该文章,以pm2.5.0为例,主要介绍processmaker在与cas集成时要做的工作,所以cas的相关配置请移步http://www.blogjava.net/tufanshu/archive/2011/01/21/343290.html。
正文
- pm是用php实现的,所以要先下载cas的php客户端,可在此处下载;
- php客户端解压后放在$pm/gulliver/thirdparty/下,才能在php代码中引入cas库;
- 修改$pm/workflow/engine/methods/login/authentication.php,在代码最上面加入:
require_once ("CAS-1.3.2/CAS.php"); // Uncomment to enable./ debugging phpCAS::setDebug(); // version, host, port, context, session phpCAS::client(CAS_VERSION_2_0, "localhost", 8443, 'cas', false); //我的cas server访问地址是:https://localhost:443/cas phpCAS::setNoCasServerValidation(); phpCAS::forceAuthentication(); // logout if desired if (isset($_REQUEST['logout'])) { phpCAS::logout(); } if ( phpCAS::isAuthenticated() == true ) $casAuth = CASAuthIsTrue; $_POST['form']['USR_USERNAME'] = phpCAS::getUser(); $_POST['form']['USR_PASSWORD'] = $casAuth;<