重新封装zend_soap实现http连接安全认证的php代码

2018-09-21 16:39

阅读:270

  复制代码 代码如下:
<?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(
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(
$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(
$client->setHttpLogin(tangjian);
$client->setHttpPassword(123456);
$result=$client->getPass(tang,man);
print_r($result);
}
}
?>


评论


亲,登录后才可以留言!