重新封裝zend_soap實(shí)現(xiàn)http連接安全認(rèn)證的php代碼
更新時(shí)間:2011年01月12日 23:27:12 作者:
重新封裝zend_soap實(shí)現(xiàn)http連接安全認(rèn)證,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:
<?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;
}
}
}
?>
復(fù)制代碼 代碼如下:
<?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中soap的用法實(shí)例
- PHP使用SOAP擴(kuò)展實(shí)現(xiàn)WebService的方法
- PHP使用SOAP調(diào)用.net的WebService數(shù)據(jù)
- PHP使用NuSOAP調(diào)用Web服務(wù)的方法
- PHP實(shí)現(xiàn)Soap通訊的方法
- PHP XML error parsing SOAP payload on line 1
- PHP Class SoapClient not found解決方法
- php實(shí)現(xiàn)通過(guò)soap調(diào)用.Net的WebService asmx文件
- THINKPHP3.2使用soap連接webservice的解決方法
- php中curl和soap方式請(qǐng)求服務(wù)超時(shí)問(wèn)題的解決
- PHP使用SOAP調(diào)用API操作示例
- PHP中soap用法示例【SoapServer服務(wù)端與SoapClient客戶(hù)端編寫(xiě)】
相關(guān)文章
PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能,結(jié)合實(shí)例形式詳細(xì)分析了php實(shí)現(xiàn)微信授權(quán)登錄功能的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-04-04php實(shí)現(xiàn)簡(jiǎn)單的上傳進(jìn)度條
大家在上傳文件時(shí)都會(huì)看到一個(gè)非常精致的進(jìn)度條,從進(jìn)度條上我們很直觀(guān)的可以看到文件、圖片上傳進(jìn)度,本文分享了php實(shí)現(xiàn)簡(jiǎn)單的上傳進(jìn)度條,感興趣的小伙伴們可以參考一下。2015-11-11PHP編程求最大公約數(shù)與最小公倍數(shù)的方法示例
這篇文章主要介紹了PHP編程求最大公約數(shù)與最小公倍數(shù)的方法,涉及php數(shù)學(xué)計(jì)算的相關(guān)運(yùn)算技巧,需要的朋友可以參考下2017-05-05php從csv文件讀取數(shù)據(jù)并輸出到網(wǎng)頁(yè)的方法
這篇文章主要介紹了php從csv文件讀取數(shù)據(jù)并輸出到網(wǎng)頁(yè)的方法,涉及php中fgetcsv函數(shù)及數(shù)組遍歷的使用技巧,需要的朋友可以參考下2015-03-03php socket通信(tcp/udp)實(shí)例分析
這篇文章主要介紹了php socket通信(tcp/udp)方法,結(jié)合實(shí)例形式分析了基于socket實(shí)現(xiàn)tcp與udp通信的相關(guān)技巧,需要的朋友可以參考下2016-02-02