繁体   English   中英

如何在WSDL中要求身份验证肥皂头?

[英]How to require Authentication Soap Header in WSDL?

我使用SOAPServer在php中创建了一个Web服务。 它希望看到一个带有用户名和密码元素的SoapHeader UsernameToken 当我在请求中包含此标头时,一切都工作正常。 只需在名为“UsernameToken”的Soap处理程序类中定义一个方法,就会调用此方法并将stdClass Obj传递给它。 然后我可以通过$Obj->username$Obj->password来验证用户。

我不知道要添加到WSDL文件中的内容首先要定义此UsernameToken标头,然后如何在WSDL中指示它是必需的?

我在某处读到过新的SOAP标准不赞成“必需”标题的概念。

关于如何至少指出的任何建议是我的wsdl请求应该包括这个标题?

以下是指定登录的WSDL示例: https//ws1.webservices.nl/soap_doclit?wsdl

<binding name="Webservices.nlBinding" type="tns:Webservices.nlPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
<soap:operation soapAction="https://ws1.webservices.nl/soap_doclit.php/login" style="document"/>
<input>
<soap:body use="literal"/>
<soap:header message="tns:Headers" part="HeaderLogin" use="literal"/>
<soap:header message="tns:Headers" part="HeaderAuthenticate" use="literal"/>
</input>

您是否看过http://www.w3.org/TR/wsdl的 2.1.3节 我也找不到任何需要被剥夺的东西。

答案很长。 这篇文章。

在客户端中,您可以使用mustUnderstand属性来指示标头条目是必需的还是可选的,以供收件人处理。 如果服务器不能或不想处理强制标头,则必须向客户端抛出SOAP Fault。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM