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

2015-01-24信息快讯网

重新封装zend_soap实现http连接安全认证,需要的朋友可以参考下。

 
<?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使用SOAP调用.net的WebService数据
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
iis下php mail函数的sendmail配置方法(官方推荐)
php 的加密函数 md5,crypt,base64_encode 等使用介绍
php中http_build_query 的一个问题
JS中encodeURIComponent函数用php解码的代码
php tp验证表单与自动填充函数代码
用PHP实现Ftp用户的在线管理
PHP中创建空文件的代码[file_put_contents vs touch]
PHP异步调用socket实现代码
php操作JSON格式数据的实现代码
使用JSON实现数据的跨域传输的php代码
PHP中usort在值相同时改变原始位置问题的解决方法
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
PHP学习散记_编码(json_encode 中文不显示)
判断Keep-Alive模式的HTTP请求的结束的实现代码
php数据库密码的找回的步骤
php 变量未定义等错误的解决方法
php simplexmlElement操作xml的命名空间实现代码
array_multisort实现PHP多维数组排序示例讲解
php关于array_multisort多维数组排序的使用说明
php array_unique之后json_encode需要注意
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
浅谈PHP Extension的开发――基础篇第1/2页
php 无限级数据JSON格式及JS解析
php下通过伪造http头破解防盗链的代码
PHP 多维数组排序(usort,uasort)
PHP XML error parsing SOAP payload on line 1
php ftp文件上传函数(基础版)
php下连接ftp实现文件的上传、下载、删除文件实例代码
PHP为表单获取的URL 地址预设 http 字符串函数代码
php抓取https的内容的代码
©2014-2024 dbsqp.com