1、封装类示例:E:\html\pim\php_mcloud_cas\util\UmcPlatform.class.php
<?php
class Util_UmcPlatform{ const INTERFACE_USER_LOGOUT = '/umc-broker-mcloud/umc/logout';
const INTERFACE_SSO_REGISTER = '/umc-broker-mcloud/session/register';
const INTERFACE_GET_ARTIFACT = '/umc-broker-mcloud/artifact/get';
const INTERFACE_ARTIFACT_RESOLVE = '/umc-broker-mcloud/umc/artifactResolve';
const INTERFACE_USER_INFO = '/umc-broker-mcloud/user/info';
const INTERFACE_KEEP_ALIVE = '/umc-alive-mcloud/session/keep.action'; /*
* 定义协议体中的键值
*/
const KEY_JSON_STR = 'jsonStr'; const KEY_REQUEST_ID = 'requestId';
const KEY_IP = 'userIp';
const KEY_CLIENT_VERSION = 'clientVersion';
const KEY_CLIENT_ID = 'clientId';
const KEY_CLIENT_TYPE = 'clientType';
const KEY_PASS_ID = 'passId';
const KEY_MOBILE = 'mobile';
const KEY_EMAIL = 'email';
const KEY_ACCOUNT = 'userAccount';
const KEY_UID = 'uid'; const RERQUEST_METHOD = 'POST'; /*
* 定义协议中的参数(返回)
*/
const CBP_RETURN_KEY_RESULT = 'result';
const CBP_RETURN_KEY_USERID = 'userId';
const CBP_RETURN_KEY_AUTH_TOKEN = 'authToken';
const CBP_RETURN_KEY_PASSWD = 'password';
const CBP_RETURN_KEY_ERRORMESSAGE = 'errorMessage';
const CBP_RETURN_KEY_TOKEN = 'token';
const CBP_RETURN_KEY_CCID = 'ccid';
const CBP_RETURN_KEY_MOBILE = 'mobile';
const CBP_RETURN_KEY_EMAIL = 'email';
const CBP_RETURN_KEY_EXPIRETIME = 'expireTime';
const CBP_RETURN_KEY_EXPANDPARAMS = 'expandParams';
/*
* 定义平台错误代码
*/
const CBP_E_CODE_NOT_EXIST = '10901'; #手机号码不存在
const CBP_E_CODE_WRONG_PWD = '1005'; #密码错误
const CBP_E_CODE_NO_AUTH = '1017'; #没有鉴权
const CBP_E_CODE_NOT_ACTIVE = '1026'; #手机号码没有激活
const CBP_E_CODE_BAD_REQUEST = '1041'; #重复的恶意登录
const CBP_E_CODE_WRONG_TOKEN = '1078'; #生成令牌失效
const CBP_E_CODE_NO_DYNPASSWD = '1104'; #以动态密码权鉴方式登录,但没有选择动态密码下发
const CBP_E_CODE_VERIFY_CODE_FAIL = '1212'; #验证码验证失败平台返回的错误码
const CBP_E_CODE_MOBILE_EXISTED = '1127'; #换号接口返回错误代码新手机已经注册
const CBP_E_CODE_ACCOUNT_SUSPEND = '1120'; #boss暂停使用, 用户登录接口返回 /*
* 定义返回值成功标识
*/
const CBP_RETURN_SUCCESS = '1'; #成功
const CBP_RETURN_FAILURE = '0'; #失败
/*
* 定义错误代码
*/
const E_CODE_JSON_DECODE = 0x1; #json_decode错误
/*
* 定义返回值
*/
const SUCCESS = true; #成功
const FAILURE = false; #错误
/*
* 定义方法返回值的数组的key
*/
const RETURN_KEY_RESULT = 'result';
const RETURN_KEY_UID = 'uid';
const RETURN_KEY_PASSID = 'passId';
const RETURN_KEY_EMAIL = 'email';
const RETURN_KEY_MOBILE = 'mobile';
const RETURN_KEY_ARTIFACT = 'artifact'; const RETURN_KEY_ERRORMESSAGE = 'errormessage'; private static $_self = null;
private static $_conf = null; private $_host = null; private $_result = null;
private $_global_value = null; /**
* $post_data 数组
* $ret string
**/
private function _log($post_data,$ret,$file_index){
$file = "/home/d139/logs/www/Cbp_$file_index.".date('Ymd').'.logs';
$post_data = json_encode($post_data);
if(strlen($post_data)>200){
$post_data = substr($post_data,0,194).'......';
}
if(strlen($ret)>200){
$ret = substr($ret,0,194).'......';
}
error_log(date('H:i:s ').$post_data."\n",3,$file);
error_log('result : '.$ret."\n",3,$file);
} protected function __construct( $host='' ){
$this->_host = $host;
} public static function &getInstance( $host='' ){ if ( empty( self::$_self ) ){ if ( empty( $host ) ){
return false;
} self::$_self = new self( $host ); } return self::$_self;
} public function setGlobalValue( Array $arr ){
$this->_global_value = $arr;
} public function sendJson( $method, $options ){ $url = $this->_host; if (empty($options) || empty($method))
{
return false;
} else {
$options = self::_transact($options); if ( !empty( $this->_global_value ) ){
$options = array_merge( $this->_global_value, $options );
}
} if ( empty( $options[self::KEY_IP] ) ){
$options[self::KEY_IP] = Util_IP::getRemoteIp();
} if ( empty( $options[self::KEY_REQUEST_ID] ) ){
$options[self::KEY_REQUEST_ID] = time();
} if ( empty( $options[self::KEY_CLIENT_VERSION] ) ){
$options[self::KEY_CLIENT_VERSION] = '1.0';
} $request_url = $url . $method . '.action'; $options = self::_transact( $options ); $json_str = json_encode( $options ); $post_str = self::KEY_JSON_STR . '=' . urlencode($json_str);
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_TIMEOUT, 4); $start = microtime(true);
$string = curl_exec($ch);
$end = microtime(true);
$time = sprintf('%01.4f', $end - $start);
$err = curl_errno($ch); $script_uri = Util_Tools::GetRequestUri( 2 );
$httpCode =curl_getinfo($ch,CURLINFO_HTTP_CODE);
if ($httpCode != 200 || $err != 0) {
$error_msg = curl_error($ch);
error_log(date('Y-m-d H:i:s')."\t".$time."\t". Util_IP::getRemoteIp () . ",".$request_url.", post:".$json_str."\tRet:$string\thttp_code:$httpCode,error_no:$err,error_msg:$error_msg\t". json_encode( curl_getinfo ( $ch ) )."\t".$script_uri. "\n", 3, '/home/d139/logs/www/Util_UmcPlatform_http_error.' . date('Ymd') . '.log');
}
// else{
// if($httpCode==200){
// if ( strstr($string, '"result":"0"') || strstr($string, '"result":0') ) {
// error_log(date('Y-m-d H:i:s')."\t".$time."\t". Util_IP::getRemoteIp () . ",".$request_url.", post:".$json_str."\tRet:$string\t,".$script_uri. "\n", 3, '/home/d139/logs/www/Util_UmcPlatform_api_error.' . date('Ymd') . '.log');
// }
// }
// }
curl_close($ch); Util_Log::getInstance()->write( 'Util_UmcPlatform_', "$time, $request_url, $json_str, $string, $script_uri\n" ); $this->_result = $string; return $this->result();
} /*
* 处理平台的返回值,返回需要的结果
* inptu
* result string 平台的返回的字符串,或这异常
* output bool
* ret 为返回的数据
*/
public function result( &$ret = null ){
$json_str = json_decode( $this->_result, true);
if( !$json_str ){#解码失败
return self::E_CODE_JSON_DECODE;
}else{
#有返回结果
if( is_array($json_str) && array_key_exists(self::CBP_RETURN_KEY_RESULT, $json_str) ){ $ret = $json_str; #返回结果
if($json_str[self::CBP_RETURN_KEY_RESULT] == self::CBP_RETURN_SUCCESS){
return self::SUCCESS;
}else{
return self::FAILURE;
} }else{
return self::FAILURE;
}
}
} private static function _transact($options)
{
$tempArr = array();
foreach ($options as $k => $v){
if ( is_null($v) || (is_string($v) && trim($v)==''))
$v = '';
else
is_array($v) ? $v = self::_transact($v) : $v = (string)$v;
$tempArr[$k] = $v;
}
return $tempArr;
} }
2、调用方式:E:\html\pim\php_mcloud_cas\bean\UmcUser.class.php
<?php
class Bean_UmcUser extends Bean_Model { private $_platform = null; const VALUE_ST = 'v_st';
const VALUE_CLENT_TYPE = 'v_client_type';
const VALUE_PASS_ID = 'v_pass_id';
const VALUE_MOBILE = 'v_mobile';
const VALUE_EMAIL = 'v_email';
const VALUE_SSO_UID = 'v_sso_uid';
const VALUE_ATF = 'v_atf';
const VALUE_CLIENT_VERSION = 'v_client_version';
const VALUE_USER_IP = 'v_user_ip';
const VALUE_ERROR_CODE = 'v_error_code'; public function __construct( $st, $clientType, $need_validate = true, $keepAlive = false ) {
$app = self::getApplication();
$context = $app->getContext(); if ( $keepAlive ) {
$this->_platform = Util_UmcPlatform::getInstance( $context['_conf']['cbpumc2']['host'] );
$values = array( Util_UmcPlatform::KEY_CLIENT_ID=> $context['_conf']['cbpumc2']['client_id'] );
} else {
$this->_platform = Util_UmcPlatform::getInstance( $context['_conf']['cbpumc']['host'] );
$values = array( Util_UmcPlatform::KEY_CLIENT_ID=> $context['_conf']['cbpumc']['client_id'] );
} $this->_platform->setGlobalValue( $values ); $this->setSt( $st );
$this->setClientType( $clientType ); if ( $need_validate )
$this->validate();
} public function ssoRegister() { $account = $this->getMobile();
if ( empty($account) ) {
$account = $this->getEmail();
}
if ( empty($account) ) {
$account = $this->getPassId();
} $options = array(
Util_UmcPlatform::KEY_ACCOUNT => $account,
Util_UmcPlatform::KEY_CLIENT_TYPE => $this->getClientType(),
'userIp'=>$this->getUserIp(),
); $ret = $this->_platform->sendJson( Util_UmcPlatform::INTERFACE_SSO_REGISTER , $options );
$this->_platform->result( $data );
if ( $ret ) {
$this->setSsoUid( $data[Util_UmcPlatform::RETURN_KEY_UID] );
$this->setPassId( $data[Util_UmcPlatform::RETURN_KEY_PASSID] );
$this->setMobile( $data[Util_UmcPlatform::RETURN_KEY_MOBILE] );
$this->setEmail( $data[Util_UmcPlatform::RETURN_KEY_EMAIL] );
return true;
}
return false;
} public function keepAlive() { $options = array(
Util_UmcPlatform::KEY_ACCOUNT => $this->getPassId(),
Util_UmcPlatform::KEY_CLIENT_TYPE => $this->getClientType(),
Util_UmcPlatform::KEY_UID => '',
); $ret = $this->_platform->sendJson( Util_UmcPlatform::INTERFACE_KEEP_ALIVE , $options );
$this->_platform->result( $data ); if ( $ret ) {
return true;
}
return false;
} public function getArtifact() {
$options = array(
Util_UmcPlatform::KEY_PASS_ID => $this->getPassId(),
Util_UmcPlatform::KEY_UID => $this->getSsoUid(),
Util_UmcPlatform::KEY_CLIENT_TYPE => $this->getClientType(),
Util_UmcPlatform::KEY_CLIENT_VERSION => $this->getClientVersion(),
); $ret = $this->_platform->sendJson( Util_UmcPlatform::INTERFACE_GET_ARTIFACT, $options );
$this->_platform->result( $data ); if ( $ret ) {
$this->setAtf( $data[Util_UmcPlatform::RETURN_KEY_ARTIFACT] );
return true;
} else {
$this->setErrorCode( $data['error']['errorCode'] );
}
return false;
} public function getUserInfo($passId = "", $mobile = "", $email = "") {
$options = array(
Util_UmcPlatform::KEY_PASS_ID => $passId,
Util_UmcPlatform::KEY_MOBILE => $mobile,
Util_UmcPlatform::KEY_EMAIL => $email,
Util_UmcPlatform::KEY_CLIENT_TYPE => $this->getClientType(),
); $ret = $this->_platform->sendJson( Util_UmcPlatform::INTERFACE_USER_INFO, $options );
$this->_platform->result( $data ); if ( $ret ) {
$expandParams = $data[Util_UmcPlatform::CBP_RETURN_KEY_EXPANDPARAMS];
if ( !preg_match("/UseFlag=0/", $expandParams) ) {
$this->setPassId( $data[Util_UmcPlatform::RETURN_KEY_PASSID] );
}
$this->setMobile( $data[Util_UmcPlatform::RETURN_KEY_MOBILE] );
$this->setEmail( $data[Util_UmcPlatform::RETURN_KEY_EMAIL] );
return true;
} else {
$this->setErrorCode( $data['error']['errorCode'] );
}
return false;
} private function validate() {
$app = $this->getApplication();
$context = $app->getContext();
$request = $context->getRequestInfo(); $ticket = new Bean_Ticket();
$ticket->setSt( $request['st'] ); $bisSTValid = $ticket->isSTValid( $request['service'] ); if ( $bisSTValid ) {
$expires = $ticket->getExpires();
$tgt = $ticket->getTgt(); $user = new Bean_User();
$user->setToken( $tgt );
$ret = $user->verifyToken();
if ( $ret ){
$this->setPassId( $user->getPassId() );
$this->setMobile( $user->getMobile() );
$this->setEmail( $user->getEmail() );
$this->setErrorCode( Util_Errorcode::SUCCESS_CODE );
return true;
}
} $this->setErrorCode( Util_Errorcode::ERRCODE_ST_INVALID );
return false;
} }
3、配置类:E:\html\pim\php_mcloud_cas\config\config.php
<?php
//现网配置
$conf = array(
'cbp' => array( 'host' => 'http://192.168.1.63:8880', 'client_id' => '100013' ),
//'lumc' => array( 'host' => 'http://192.168.1.64:8682', 'client_id' => '100013' ),
'lumc' => array( 'host' => 'http://192.168.19.105:8680', 'client_id' => '100013' ),
'cbpumc' => array( 'host' => 'http://192.168.1.59:8980', 'client_id' => '100013' ),
'cbpumc2' => array( 'host' => 'http://192.168.1.59:8981', 'client_id' => '100013' ),
'cbpwb' => array( 'host' => 'http://192.168.1.10:8080', 'client_id' => '100013' ),
'cbpwbUp' => array( 'host' => 'http://192.168.1.70:9091', 'client_id' => '100013' ),
'cbpapi' => array( 'host' => 'http://192.168.1.10:8080', 'client_id' => '100013' ),
'pim' => array('host'=>'http://192.168.1.125:8090','client_id'=>'100013'), //联系人平台
/** +1服务器配置
'cbp' => array( 'host' => 'http://192.168.13.17:8990', 'client_id' => '100013' ),
'cbpumc' => array( 'host' => 'http://192.168.13.17:8980', 'client_id' => '100013' ),
'cbpumc2' => array( 'host' => 'http://192.168.13.17:8980', 'client_id' => '100013' ),
'cbpwb' => array( 'host' => 'http://192.168.10.24:8180', 'client_id' => '100013' ),
'cbpapi' => array( 'host' => 'http://192.168.19.3:8080', 'client_id' => '100013' ),
*/
//数据库暂无用
'database' => array( 'default' => array( 'host' => '192.168.101.14', 'port' =>'3306', 'database' => 'cloud_auth', 'user' => 'aspire', 'password' => 'aspire.de', 'encoding' => 'UTF-8' ) ),
'memcache' => array( 'default' => array( array( 'host' => '192.168.12.55', 'port' =>'11211', 'weight' => '50' ), array( 'host' => '192.168.12.56', 'port' =>'11211', 'weight' => '50' ), ) ),
'redis' => array( 'default' =>
array(
array( 'host' => '192.168.2.42', 'port' =>'6379', 'password'=>'tpQGf3Xf$hZ3YpP', 'database'=>3 ),
array( 'host' => '192.168.2.43', 'port' =>'6379', 'password'=>'tpQGf3Xf$hZ3YpP', 'database'=>3 ),
)
), 'smarty_templates_dir' => $_SERVER['DOCUMENT_ROOT'] . '../templates/',
'smarty_compiled_dir' => $_SERVER['DOCUMENT_ROOT'] . '../compiled/',
'default_include_path' => $_SERVER['DOCUMENT_ROOT'] . '../lib/',
'allow_response' => array( 'html' => 'App_Smarty', 'json' => 'App_Response', 'xml'=> 'App_XmlResponse' ),
'default_class_path' => array( realpath( dirname( __FILE__ ) . '/../' ) ), 'router_rule' => array(
'registerAndLogin' => array( 'url' => '/registerAndLogin:response_type', 'param' => array( 'module' => 'login', 'action' => 'registerAndLogin' ) ),
'sendcode' => array( 'url' => '/sendcode:response_type', 'param' => array( 'module' => 'login', 'action' => 'sendcode' ) ),
'register' => array( 'url' => '/register:response_type', 'param' => array( 'module' => 'register', 'action' => 'register' ) ),
'unregister' => array( 'url' => '/unregister:response_type', 'param' => array( 'module' => 'register', 'action' => 'unregister' ) ),
'validate' => array( 'url' => '/validate:response_type', 'param' => array( 'module' => 'validate', 'action' => 'validate' ) ),
'convert' => array( 'url' => '/convert:response_type', 'param' => array( 'module' => 'convert', 'action' => 'convert' ) ),
'wblogin' => array( 'url' => '/wblogin:response_type', 'param' => array( 'module' => 'login', 'action' => 'wblogin' ) ),
'ssoRegister' => array( 'url' => '/ssoRegister:response_type', 'param' => array( 'module' => 'umc', 'action' => 'getsso') ),
'getArtifact' => array( 'url' => '/getArtifact:response_type', 'param' => array( 'module' => 'umc', 'action' => 'getArtifact') ),
'keepAlive' => array( 'url' => '/keepAlive:response_type', 'param' => array( 'module' => 'umc', 'action' => 'keepalive') ),
'activate' => array( 'url' => '/activate:response_type', 'param' => array( 'module' => 'umc', 'action' => 'activate') ),
'userInfo' => array( 'url' => '/userInfo:response_type', 'param' => array( 'module' => 'user', 'action' => 'umcInfo') ),
'getUserId' => array( 'url' => '/getUserId:response_type', 'param' => array( 'module' => 'user', 'action' => 'getUserId') ),
'getUserState' => array( 'url' => '/getUserState:response_type', 'param' => array( 'module' => 'user', 'action' => 'getUserState') ),
'getCancelTime' => array( 'url' => '/getCancelTime:response_type', 'param' => array( 'module' => 'user', 'action' => 'getCancelTime') ),
'renew' => array( 'url' => '/renew:response_type', 'param' => array( 'module' => 'login', 'action' => 'renew') ),
'getUserProfileByMobile' => array( 'url' => '/getUserProfileByMobile:response_type', 'param' => array( 'module' => 'user', 'action' => 'getUserProfileByMobile') ), //登录相关
array( 'url' => '/sms/login:response_type', 'param' => array( 'module' => 'login', 'action' => 'login' ) ),
array( 'url' => '/sso/login:response_type', 'param' => array( 'module' => 'login', 'action' => 'login' ) ),
array( 'url' => '/atrifact/login:response_type', 'param' => array( 'module' => 'login', 'action' => 'login' ) ),
array( 'url' => '/pwd/login:response_type', 'param' => array( 'module' => 'login', 'action' => 'login' ) ),
array( 'url' => '/credential/login:response_type', 'param' => array( 'module' => 'login', 'action' => 'login' ) ),
array( 'url' => '/sms/registerAndLogin:response_type', 'param' => array( 'module' => 'login', 'action' => 'registerAndLogin' ) ),
array( 'url' => '/credential/registerAndLogin:response_type', 'param' => array( 'module' => 'login', 'action' => 'registerAndLogin' ) ), //令牌相关
array( 'url' => '/token/validate:response_type', 'param' => array( 'module' => 'validate', 'action' => 'validate' ) ),
array( 'url' => '/token/renew:response_type', 'param' => array( 'module' => 'login', 'action' => 'renew' ) ),
array( 'url' => '/token/account/get:response_type', 'param' => array( 'module' => 'login', 'action' => 'getAccount' ) ), //短信下发
array( 'url' => '/sms/send:response_type', 'param' => array( 'module' => 'login', 'action' => 'sendcode' ) ), //帐号相关
array( 'url' => '/umc/activate:response_type', 'param' => array( 'module' => 'umc', 'action' => 'activate' ) ),
array( 'url' => '/user/register:response_type', 'param' => array( 'module' => 'register', 'action' => 'register' ) ),
array( 'url' => '/sms/register:response_type', 'param' => array( 'module' => 'register', 'action' => 'register' ) ),
array( 'url' => '/credential/register:response_type', 'param' => array( 'module' => 'register', 'action' => 'register' ) ), //用户相关
array( 'url' => '/user/getState:response_type', 'param' => array( 'module' => 'user', 'action' => 'getUserState') ),
array( 'url' => '/user/getUid:response_type', 'param' => array( 'module' => 'user', 'action' => 'getUserId') ),
array( 'url' => '/user/getInfo:response_type', 'param' => array( 'module' => 'user', 'action' => 'umcInfo') ), //用管SSO
array( 'url' => '/umc/getSso:response_type', 'param' => array( 'module' => 'umc', 'action' => 'getsso') ),
array( 'url' => '/atrifact/get:response_type', 'param' => array( 'module' => 'umc', 'action' => 'getArtifact') ),
array( 'url' => '/umc/keepAlive:response_type', 'param' => array( 'module' => 'umc', 'action' => 'keepalive') ), //手机号码相关
array( 'url' => '/mobile/operator:response_type', 'param' => array( 'module' => 'user', 'action' => 'getOperator') ), //令牌转换
array( 'url' => '/conv2fetion:response_type', 'param' => array( 'module' => 'convert', 'action' => 'convert2fetion' ) ), //存储相关
array( 'url' => '/store/setParams:response_type', 'param' => array( 'module' => 'store', 'action' => 'setParams') ),
array( 'url' => '/store/getParams:response_type', 'param' => array( 'module' => 'store', 'action' => 'getParams') ), //号簿帐号相磁
array( 'url' => '/vip/apply:response_type', 'param' => array( 'module' => 'vip', 'action' => 'apply' ) ),
array( 'url' => '/vip/open:response_type', 'param' => array( 'module' => 'vip', 'action' => 'open' ) ),
array( 'url' => '/vip/close:response_type', 'param' => array( 'module' => 'vip', 'action' => 'close' ) ),
array( 'url' => '/vip/subGet:response_type', 'param' => array( 'module' => 'vip', 'action' => 'subGet' ) ), 'login' => array( 'url' => '/:action:response_type', 'param' => array( 'module' => 'login' ) ),
'default' => array( 'url' => '/:module/:action:response_type', )
), 'sso_url_weili' => 'http://weili.cmpower.cn/api/user_info', // +1地址 'tokenvalidate_server' => array (
'url' => 'http://211.136.10.131:8080/api/tokenValidate',
//'urlfetion' => 'http://north.cmpassport.com/api/tokenValidate',
'urlfetion' => 'http://wap.cmpassport.com:8080/api/tokenValidate',
'version' => '1.0',
'sourceid' => '001023',
'apptype' => '5'
), 'ucentervalidate_server' => 'http://www.cmpassport.com:4300/openapi/s?func=UAVerifyTokenRequest', 'sso_url_weibo' => 'http://192.168.1.55:81/sso/sso.php',
'path_key_der_cytoken' => $_SERVER['DOCUMENT_ROOT'] . '../data/auth-pub-v1.der',
'mcloud_server' => 'http://api.cytxl.com.cn', //+1服务器配置
//'mcloud_server' => 'http://api.cytxl.com.cn:6080', 'mid_server' => 'http://221.179.9.156:8081/mmwlan/unifiedLogin',
'139mail_ssoserver' => 'http://ssointerface.mail.10086.cn:8080/ssointerface/GetUserByKey',
'fx_ssiportal_server' => 'https://uid.fetion.com.cn',
'sxy_server' => 'http://120.197.230.49/sxy/remote!checkCredential.action',
'fujian_key' => 'fw75$^IEa83', //福建移动通讯助手Des算法:key
'fujian_ivs' => array(12, 105, 5, 40, 94, 64, 113, 48), //福建移动通讯助手Des算法偏移量:ivs
'default_service' => 'http://auth.cytxl.com.cn',
'default_access_log_filename' => 'mcloud_cas_access.',
'default_error_log_filename' => 'mcloud_cas_error.',
'default_expired_log_filename' => 'mcloud_cas_expired.',
'default_log_dir' => '/home/d139/logs',
'tgt_iplist' => array('192.168.13.25','192.168.13.26','192.168.13.28','192.168.13.101',),
'ssoLoginApp' => array('4186d8e89861735346686ffcdc9a0427','5681864af839cd7a8504b8d8ff0c532e','25ea5e13d9caa694682b1ba4624d07cd' ,'8e37ca98026946537eb687114fc2829b',
'5728b925c1c5b1ffa228aa053eaf7441','1e45de15243c50f5eb96e9cf5f13ee7b'),
); define('LOG_PATH', '/home/d139/logs');