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


Posted in PHP onJanuary 12, 2011
<?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 相关文章推荐
别人整理的服务器变量:$_SERVER
Oct 20 PHP
PHP学习笔记之二
Jan 17 PHP
php发送post请求函数分享
Mar 06 PHP
PHP经典面试题集锦
Mar 19 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
php 变量未定义等错误的解决方法
Jan 12 #PHP
兼容性比较好的PHP生成缩略图的代码
Jan 12 #PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 #PHP
PHP日期处理函数 整型日期格式
Jan 12 #PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 #PHP
DEDE采集大师官方留后门的删除办法
Jan 08 #PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 #PHP
You might like
yii2 数据库读写分离配置示例
2017/02/10 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
JavaScript中setInterval的用法总结
2013/11/20 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
python实现画循环圆
2019/11/23 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
Python实现微信表情包炸群功能
2021/01/28 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
英语国培研修感言
2014/02/13 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
学校消防安全责任书
2014/07/23 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
入党介绍人意见2015
2015/06/01 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
工作自我评价范文
2019/03/21 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android