当前位置:  开发笔记 > 前端 > 正文

将身份验证功能添加到soap服务器(使用Zend)?

如何解决《将身份验证功能添加到soap服务器(使用Zend)?》经验,为你挑选了1个好方法。

我有一个像这样创建的肥皂服务器:

class ServerController extends Zend_Controller_Action
{
    public function serverAction()
    {
       memcache_flush();
       Zend_Registry::get('cache')->clean(Zend_Cache::CLEANING_MODE_ALL);

       $server = new SoapServer("http://####/services/soap-server/wsdl");
       $server->setClass('SOAP_Server_Map');
       $server->handle();
    }
}

我想为它添加身份验证,以便每当有人调用" SOAP_Server_Map"中的函数时,它会检查SoapClient选项数组中提供的凭据('login'和'password')是否有效.

有没有人有任何建议/帮助?



1> d-_-b..:

要将身份验证添加到Zend_Soap_Server或Zend_Json_Server,只需在HTTP服务器(即:Apache)配置或.htaccess文件中指定HTTP身份验证.以下.htaccess文件应该有效:

AuthType Basic
AuthName "Supreme Data Services"
AuthUserFile /var/www/localhost/passwd
Require valid-user

为安全起见,请确保将密码文件保留在docroot之外.可以使用Apache附带的htpasswd来创建密码文件.当然,您可以使用更高级的身份验证类型.

为了使用这些服务,您现在必须在发出请求时指定用户名和密码.如果您使用Zend Framework来创建客户端,则可以对SOAP执行以下操作:

$client = new Zend_Soap_Client($wsdl, array('login' => $username, 'password' => $password));

以下是JSONRPC:

$http = new Zend_Http_Client();
$http->setAuth($username, $password);
$client = new Zend_Json_Client($uri, $http);

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有