如何为 {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd} 添加虚拟 SOAPHandler?

发布于 2024-12-22 01:45:22 字数 637 浏览 2 评论 0原文

我正在使用 jax-ws 从 JAVA 调用使用 WS-Security 的 SOAP 服务。 问题是响应包含一些 MustUnderstand 标头,并且我收到 Element notunderstanded SoapFaultException

响应标头如下所示:

 <s:Header>
  <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
     <u:Timestamp u:Id="_0">
        <u:Created>2011-12-19T15:38:49.023Z</u:Created>
        <u:Expires>2011-12-19T15:43:49.023Z</u:Expires>
     </u:Timestamp>
  </o:Security>

我可以为该标头添加一个虚拟 SOAPHandler 吗?或者也许将其修改为mustUnderstand =“0”?又如何呢?

I am calling a SOAP service that uses WS-Security from JAVA using jax-ws.
The problem is that the response contains some mustUnderstand headers and I get an Element not understood SoapFaultException.

The response header looks like this:

 <s:Header>
  <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
     <u:Timestamp u:Id="_0">
        <u:Created>2011-12-19T15:38:49.023Z</u:Created>
        <u:Expires>2011-12-19T15:43:49.023Z</u:Expires>
     </u:Timestamp>
  </o:Security>

Could I add a dummy SOAPHandler for that header? or maybe modify it to mustUnderstand="0"? and how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔一刀 2024-12-29 01:45:22

错过了在 handler.Override getHeaders() 方法中重写 getHeaders() 方法

@Override
    public Set<QName> getHeaders() {
        final QName securityHeader = new QName(
            "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
            "Security",
            "wsse");

        final HashSet headers = new HashSet();
        headers.add(securityHeader);

        // notify the runtime that this is handled
        return headers;
    }

Missed to override the getHeaders() method in the handler.Override getHeaders() method

@Override
    public Set<QName> getHeaders() {
        final QName securityHeader = new QName(
            "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
            "Security",
            "wsse");

        final HashSet headers = new HashSet();
        headers.add(securityHeader);

        // notify the runtime that this is handled
        return headers;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文