SoapUI 中带有用户名和密码身份验证的 SOAP 请求

问题描述 投票:0回答:1

我正在尝试在 SoapUI 中发出 SOAP 请求,该请求需要使用用户名和密码进行身份验证。我让 SoapUI 基于 wsdl 文件生成测试并尝试调用该服务。我按照 SoapUI 网站上的步骤使用身份验证(https://www.soapui.org/soap-and-wsdl/authenticating-soap-requests.html),但我无法让它工作。我是 SOAP 新手,所以我可能缺少一些基本的东西。我获得了该服务的用户名和密码,所以我猜这是一个基本的身份验证。但是当我尝试发出请求时,我总是收到一个 PolicyViolationException,其中指出“尚未提供所需的策略:{http://docs.oasis-open.org/ns/opencsa/sca/200912}clientAuthentication” ”.

这是请求和答案的样子(我遮盖了服务链接并更改了用户名)。我还将用户添加到我的项目和 WS-Security 设置中。

SoapUI request and response

Project setting

我尝试了先发制人的身份验证和“必须理解”。我还尝试更改请求标头并手动添加安全性,但似乎没有任何效果,而且我总是得到相同的响应。

Edited Header manually

soap soapui ws-security
1个回答
0
投票

我还不能添加评论,所以我写的是答案。对我来说,似乎缺少一些名称空间。尝试通过更改随机数、创建的字段来发出如下请求。样本令牌可以是您想要的任何内容。如果您尝试调用的服务需要纯文本形式的密码,那么代码示例中的命名空间就足够了。我还建议您查看此链接中的文档。

<soap:Header>
    <Security
        xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <wsse:UsernameToken wsu:Id="sample-token"
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:Username>user</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
            <wsse:Nonce>some-base64</wsse:Nonce>
            <wsu:Created>yyyy-MM-ddThh:mm:ssZ</wsu:Created>
        </wsse:UsernameToken>
    </Security>
</soap:Header>
© www.soinside.com 2019 - 2024. All rights reserved.