我创建了一个用Java编写并使用Eclipse&Axis2生成的Web服务。 我在services.xml文件中创建了ws-security策略,并创建了身份验证处理程序。 我是Web服务的新手,如果我的陈述完全错误,请原谅。 生成Web服务并拥有wsdl之后,我创建一个SOAPUi项目并生成请求。 soapui生成的请求的soap标头为空白,因此当我运行请求时,我收到一个身份验证失败的安全异常。 当我输入正确的标题时:

<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-12468716">
<wsu:Created>2008-06-23T13:17:13.841Z</wsu:Created>
<wsu:Expires>2008-06-23T13:22:13.841Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-31571602">
<wsse:Username>alice</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bobPW</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsa:To>http://localhost:8081/axis2/services/sample01</wsa:To>
<wsa:MessageID>urn:uuid:AEDBA74A8D1FC94B631214227032877</wsa:MessageID>
<wsa:Action>urn:echo</wsa:Action>
</soapenv:Header>

然后就可以了。 wsdl是否缺少某些内容,告诉SoapUi自动在用户名和密码字段中生成带有问号?的标头? 因为我将SoapUi用于其他wsdl,所以它会自动生成这些标头。

===============>>#1 票数:1

您可以在SOAP UI上指定用户名和密码,可以在测试请求属性选项卡或测试属性中进行设置。

试试这个: http : //www.soapui.org/SOAP-and-WSDL/authenticating-soap-requests.html

===============>>#2 票数:0

是的,乔恩,你是对的。 在wsdl中,您需要在请求消息结构中添加这些用户名和密码字段作为标题。 另外,您还需要在代码中实现它,以便从标头中提取用户名和密码并相应地执行。

您还可以在“测试请求属性”选项卡上的SOAP UI中指定用户名和密码。 它将使用用户名和密码自动在您发送的肥皂请求中添加标头。 您还可以根据需要在首选项中禁用此功能。

谢谢,安布吉

  ask by jon translate from so

未解决问题?本站智能推荐: