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

 更新时间:2011年01月12日 23:27:12   作者:  
重新封装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);
}
}
?>

相关文章

  • Cakephp 执行主要流程

    Cakephp 执行主要流程

    Cakephp执行主要流程,学习cakephp的朋友可以参考下。
    2010-03-03
  • PHP实现网站应用微信登录功能详解

    PHP实现网站应用微信登录功能详解

    这篇文章主要介绍了PHP实现网站应用微信登录功能,结合实例形式详细分析了php实现微信授权登录功能的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2019-04-04
  • php随机获取金山词霸每日一句的方法

    php随机获取金山词霸每日一句的方法

    这篇文章主要介绍了php随机获取金山词霸每日一句的方法,实例分析了php通过金山词霸相关接口调用每日一句的实现技巧,需要的朋友可以参考下
    2015-07-07
  • php实现简单的上传进度条

    php实现简单的上传进度条

    大家在上传文件时都会看到一个非常精致的进度条,从进度条上我们很直观的可以看到文件、图片上传进度,本文分享了php实现简单的上传进度条,感兴趣的小伙伴们可以参考一下。
    2015-11-11
  • PHP排序算法系列之插入排序详解

    PHP排序算法系列之插入排序详解

    这篇文章主要为大家详细介绍了PHP排序算法系列之插入排序的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • PHP编程求最大公约数与最小公倍数的方法示例

    PHP编程求最大公约数与最小公倍数的方法示例

    这篇文章主要介绍了PHP编程求最大公约数与最小公倍数的方法,涉及php数学计算的相关运算技巧,需要的朋友可以参考下
    2017-05-05
  • php隐藏IP地址后两位显示为星号的方法

    php隐藏IP地址后两位显示为星号的方法

    这篇文章主要介绍了php隐藏IP地址后两位显示为星号的方法,采用正则匹配的方法来实现,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php从csv文件读取数据并输出到网页的方法

    php从csv文件读取数据并输出到网页的方法

    这篇文章主要介绍了php从csv文件读取数据并输出到网页的方法,涉及php中fgetcsv函数及数组遍历的使用技巧,需要的朋友可以参考下
    2015-03-03
  • PHP Swoole异步读取、写入文件操作示例

    PHP Swoole异步读取、写入文件操作示例

    这篇文章主要介绍了PHP Swoole异步读取、写入文件操作,结合实例形式详细分析了php使用Swoole扩展异步操作文件读写的相关实现技巧,需要的朋友可以参考下
    2019-10-10
  • php socket通信(tcp/udp)实例分析

    php socket通信(tcp/udp)实例分析

    这篇文章主要介绍了php socket通信(tcp/udp)方法,结合实例形式分析了基于socket实现tcp与udp通信的相关技巧,需要的朋友可以参考下
    2016-02-02

最新评论