重新封装zend_soap实现http连接安全认证的php代码
重新封装zend_soap实现http连接安全认证的php代码
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

<?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);

}

}

?>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类