相关疑难解决方法(0)

SOAPFaultException"MustUnderstand标头(oasis-200401-wss-wssecurity-secext-1.0.xsd)未被理解"

我尝试从使用PasswordText WSS类型的Web服务获取信息.首先,我使用soapUI测试它并成功获取数据.然后我在Java上实现了身份验证,编写了SecurityHandler:

public final class SecurityHandler implements SOAPHandler<SOAPMessageContext> {

...

@Override
public boolean handleMessage(SOAPMessageContext messageContext) {
    boolean outInd = (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    if (outInd) {
        try {
            WSSecUsernameToken builder = new WSSecUsernameToken();
            builder.setPasswordType(WSConstants.PASSWORD_TEXT);
            builder.setUserInfo(_username, _password);
            builder.addNonce();
            builder.addCreated();

            Document doc = messageContext.getMessage().getSOAPPart().getEnvelope().getOwnerDocument();
            WSSecHeader secHeader = new WSSecHeader();
            secHeader.insertSecurityHeader(doc);
            builder.build(doc, secHeader);
        } catch (Exception e) {
            LOGGER.error("Unable to handle SOAP message", e);
            return false;
        }
    }
    return true;
}

...
}
Run Code Online (Sandbox Code Playgroud)

我查看了doc对象,XMLUtils.PrettyDocumentToString(doc)看到它看起来像是由soupUI发送的XML - 所有认证信息(登录,密码,现时和创建时间)都已到位,标签的mustUnderstand属性Security为true.

然后我遇到了错误:

javax.xml.ws.soap.SOAPFaultException:MustUnderstand标题:[{ http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd …

java webservice-client wss4j

18
推荐指数
2
解决办法
6万
查看次数

如何解决JAX_WS Web服务调用失败"MustUnderstand头文件无法理解"?

我正在使用SOAPUI工具访问Weblogic 10.3.2中部署的JAX-WS Web服务

请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.pc3.polk.com/"> <soapenv:Header> <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsu:Timestamp wsu:Id="Timestamp-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Created>2010-12-03T21:10:43Z</wsu:Created> <wsu:Expires>2010-12-03T21:44:03Z</wsu:Expires> </wsu:Timestamp> <wsu:Timestamp wsu:Id="Timestamp-60" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Created>2010-12-03T20:10:39Z</wsu:Created> <wsu:Expires>2010-12-03T20:43:59Z</wsu:Expires> </wsu:Timestamp> <wsse:UsernameToken wsu:Id="UsernameToken-59" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>rwerqre</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">ewrqwrwerqer</wsse:Password> <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">Nmw0ksmiOX+hkiSoWb2Rjg==</wsse:Nonce> <wsu:Created>2010-12-03T20:10:39.649Z</wsu:Created> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <ws:getMetadata/> </soapenv:Body> </soapenv:Envelope>

响应:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <SOAP-ENV:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
         <faultcode>SOAP-ENV:MustUnderstand</faultcode>
         <faultstring>MustUnderstand headers:[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood</faultstring>
      </SOAP-ENV:Fault>
   </S:Body>
</S:Envelope>
Run Code Online (Sandbox Code Playgroud)

web-services jax-ws webservice-client

8
推荐指数
2
解决办法
4万
查看次数

如何在 spring 中启用 ws-addressing 以便回复可以被理解?

我使用 spring-boot-starter-webservices 使用 spring 创建了一个 ws 端点。

我用过@org.springframework.ws.server.endpoint.annotation.Endpoint,效果很好。

但是当我尝试将寻址标头添加到带有服务器打印的wsa:ReplyTo请求时:mustUnderstand=true

无法处理 MustUnderstand 标头:{http://www.w3.org/2005/08/addressing}ReplyTo。返回故障

并返回类似的故障作为响应。

如何启用寻址以便ReplyTo被理解并回复202,将响应发送到中描述的不同端点ReplyTo

我尝试添加@javax.xml.ws.soap.Addressing(enabled=true)旁边的@Endpoint注释,但我仍然得到上述行为。

spring jax-ws ws-addressing spring-boot

5
推荐指数
0
解决办法
372
查看次数