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

SoapUI中具有用户名和密码身份验证的SOAP请求,soap,soapui,ws-security,Soap,Soapui,Ws Security,我正在尝试在SoapUI中发出SOAP请求,它需要使用用户名和密码进行身份验证。我让SoapUI基于wsdl文件生成一个测试,并尝试调用该服务。我按照SoapUI网站上的步骤使用authentication(),但无法使其工作。我不熟悉SOAP,所以我可能缺少一些基本的东西。我得到了服务的用户名和密码,所以我猜这是一个基本的身份验证。但是当我尝试发出请求时,总是会得到一个PolicyViolationException,它声明“尚未提供必需的策略:{}clientAuthentication”

我正在尝试在SoapUI中发出SOAP请求,它需要使用用户名和密码进行身份验证。我让SoapUI基于wsdl文件生成一个测试,并尝试调用该服务。我按照SoapUI网站上的步骤使用authentication(),但无法使其工作。我不熟悉SOAP,所以我可能缺少一些基本的东西。我得到了服务的用户名和密码,所以我猜这是一个基本的身份验证。但是当我尝试发出请求时,总是会得到一个PolicyViolationException,它声明“尚未提供必需的策略:{}clientAuthentication”

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

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


我还不能添加评论,所以我写下答案。在我看来,似乎缺少一些名称空间。通过更改nonce,created字段,尝试发出如下请求。示例令牌可以是您想要的任何东西。如果您试图调用的服务希望密码为纯文本,那么代码示例中的名称空间就足够了。此外,我建议您检查本文档中的文档


用户
密码
有些人喜欢打篮球
yyyy-MM-ddThh:MM:ssZ

我还不能添加评论,所以我写的是答案。在我看来,似乎缺少一些名称空间。通过更改nonce,created字段,尝试发出如下请求。示例令牌可以是您想要的任何东西。如果您试图调用的服务希望密码为纯文本,那么代码示例中的名称空间就足够了。此外,我建议您检查本文档中的文档


用户
密码
有些人喜欢打篮球
yyyy-MM-ddThh:MM:ssZ

无论是在wsdl中还是在文档中,服务提供商都必须提供信息,调用给定服务需要什么类型的身份验证机制。在wsdl中,我只能找到正文的定义,在文档中,它说标头需要一个带有用户名和密码字段的UsernameToken。还有一些示例查询,就像我上一张图片上的一样。好的,那么它们很可能只需要WSSecurity。这意味着什么?正如我所说,我对SOAP和SoapUI是新手。那么我应该如何发送请求呢?我需要哪些设置,或者我应该能够在没有任何设置的情况下发送请求,并且只需使用用户名和密码手动更改重新登录?在wsdl或文档中,服务提供商必须提供信息,调用给定的服务需要什么类型的身份验证机制。在wsdl中,我只能找到主体的定义,在那里的文档中,它说头需要一个带有用户名和密码字段的UsernameToken。还有一些示例查询,就像我上一张图片上的一样。好的,那么它们很可能只需要WSSecurity。这意味着什么?正如我所说,我对SOAP和SoapUI是新手。那么我应该如何发送请求呢?我需要哪些设置,或者我应该能够在没有任何设置的情况下发送请求,只需手动更改用户名和密码即可?
<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>