手机
当前位置:查字典教程网 >编程开发 >php教程 >重新封装zend_soap实现http连接安全认证的php代码
重新封装zend_soap实现http连接安全认证的php代码
摘要:复制代码代码如下:

复制代码 代码如下:

<?php

class MyFramework_Soap_server extends Zend_Soap_Server {

protected $_login = '';

protected $_password = '';

public function __construct($wsdl = null, array $options = null) {

parent::__construct($wsdl,$options);

if(isset($options['login'])){

$this->_login=$options['login'];

$this->_password=$options['password'];

$this->_authenticate();

}

}

private function _authenticate(){

$this->setAuthenticate($this->_login,$this->_password);

}

public function setHttpLogin($login){

$this->_login=$login;

}

public function setHttpPassword($password){

$this->_password=$password;

if(isset($this->_login)){

$this->_authenticate();

}

}

public function setAuthenticate($login,$password){

if ($_SERVER['PHP_AUTH_USER']!=$login || $_SERVER['PHP_AUTH_PW']!=$password) {

header('WWW-Authenticate: Basic realm="MyFramework Realm"');

header('HTTP/1.0 401 Unauthorized');

echo "You must enter a valid login ID and password to access this resource.n";

exit;

}

}

}

?>

复制代码 代码如下:

<?php

class Soap_server_test {

public $view = '';

public $params = '';

public $requestObj = '';

public $dbObj = '';

function __construct() {

$this->view = $GLOBALS['view'];

$this->params = $GLOBALS['params'];

$this->requestObj = $GLOBALS['requestObj'];

$this->dbObj = $GLOBALS['dbObj'];

}

function indexAction(){

if(isset($_GET['wsdl'])) {

$autodiscover = new MyFramework_Soap_AutoDiscover();

$autodiscover->setClass('Model_Service_SoapClassSetTest');

$autodiscover->handle();

exit;

} else {

//$options= array('encoding' => 'UTF-8','login'=>'tangjian','password'=>'123456');

$options= array('encoding' => 'UTF-8');

$soap = new MyFramework_Soap_Server("http://tj.MyFramework.com/default/soap_server_test/index?wsdl",$options);

$soap->setHttpLogin('tangjian');

$soap->setHttpPassword('123456');

$soap->setClass('Model_Service_SoapClassSetTest');

$soap->handle();

exit;

}

}

function clientAction() {

//$options= array('encoding' => 'UTF-8','login'=>'tangjian','password'=>'123456',

// 'compression' =>SOAP_COMPRESSION_GZIP);

$options= array('encoding' => 'UTF-8',

'compression' =>SOAP_COMPRESSION_GZIP);

$client = new MyFramework_Soap_Client('http://tj.MyFramework.com/default/soap_server_test/index?wsdl',$options);

$client->setHttpLogin('tangjian');

$client->setHttpPassword('123456');

$result=$client->getPass('tang',"man");

print_r($result);

}

}

?>

【重新封装zend_soap实现http连接安全认证的php代码】相关文章:

使用无限生命期Session的方法

浅谈Windows下 PHP4.0与oracle 8的连接设置

我的论坛源代码(六)

PHP调用三种数据库的方法(3)

支持中文的PHP按字符串长度分割成数组代码

BBS(php & mysql)完整版(五)

php实现读取和写入tab分割的文件

一段php加密解密的代码

发挥语言的威力--融合PHP与ASP

用Socket发送电子邮件

精品推荐
分类导航