重新封装zend_soap实现http连接安全认证的php代码
2011-01-12 00:00
1311 查看
<?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); } } ?>
相关文章推荐
- 重新封装zend_soap实现http连接安全认证
- php利用soap实现调用获取返回信息的代码实例
- PHP配合JS实现HTTP安全地传输密码
- php下获取http状态的实现代码
- php access 数据连接与读取保存编辑数据的实现代码
- 基于X.509证书和SSL协议的身份认证过程实现(OpenSSL可以自己产生证书,有TCP通过SSL进行实际安全通讯的实际编程代码)good
- php实现soap简单示例代码
- php模拟socket一次连接,多次发送数据的实现代码
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- php access 数据连接与读取保存编辑数据的实现代码
- 使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
- php连接mysql数据库最简代码实现
- PHP和JS实现HTTP上安全地传输密码
- 【web】http长连接技术(2)http push的php实现
- php下获取http状态的实现代码
- 【数据结构】排序算法总结及php排序算法实现代码(伪代码见 http://blog.sina.com.cn/s/blog_676a011e0100ty5o.html)
- PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数【链接:http://www.cnblogs.com/baochuan/archive/2012/03/31/2425441.html】
- ssh反向连接和简单实现 转http://www.broncho.cn/forum/viewtopic.php?p=1116