nusoap如何封装请求头

molaifeng
博客专家认证
2014-02-19 03:50:47
用php请求java的webservice接口,对方考虑到安全因素,需要在请求头包含一个验证信息


考虑到安全因素,因此需要WS的客户端在调用服务的时候,请求头需要包含一个验证信息,否则服务将不可访问。
实现方式为注册一个CallbackHandler,进行identifier的验证。



一直使用nusoap进行接口封装,但对于请求头验证还是第一次遇到,哪位大大能够指点下,不甚感激!!!
...全文
184 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
molaifeng 2014-02-24
  • 打赏
  • 举报
回复
今天终于弄好了,我想以后应该也会有人有此疑惑的,顾贴出源码,省去我这几天所浪费的时间

$xml = '
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                    <wsse:UsernameToken>
                    <wsse:Username>admin</wsse:Username>
                    <wsse:Password>PasswordText</wsse:Password>
                    </wsse:UsernameToken>
                    </wsse:Security>';

$s = new SoapHeader('http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', 'CallbackHandler', new SoapVar($xml, XSD_ANYXML), TRUE);

$client = new SoapClient($wsdl);
$client->__setSoapHeaders(array($s));
print_r($client);
molaifeng 2014-02-21
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
soapHeader
把服务器上的soap开启后,重新了下代码

        $client = new SoapClient($url);
        $soap_header = New SoapHeader($url, 'CallbackHandler', 'wsAdmin',FALSE, SOAP_ACTOR_NEXT);
        $client->__setSoapHeaders(array($soap_header));
        $info = $client->__soapCall('getClassStudent', array('userId' => 1));print_r($info);
            
运行后,每次都报错

SoapFault exception: [ns1:InvalidSecurity] An error was discovered processing the header in /var/www/html/Exam/Lib/Action/Home/IndexAction.class.php:264 Stack trace: #0 
molaifeng 2014-02-19
  • 打赏
  • 举报
回复
soapHeader这个是php扩展的,nosuap没有这个
xuzuning 2014-02-19
  • 打赏
  • 举报
回复
soapHeader
tottyandbaty 2014-02-19
  • 打赏
  • 举报
回复
HTTP认证?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧