授权持票人肥皂请求

时间:2017-05-12 16:03:02

标签: web-services soap

我需要以某种方式在我的soap服务信封中包含一个值为"Authorization""Bearer xXsomeCode123xX"的标头,这是我需要使用新标头编辑的代码的一部分,然后返回给我一个xml文档,其中包含通过soap Web服务请求的一些数据。

            //SERVICE
            Service service = new Service();
            Call call = (Call) service.createCall();    
            call.setTargetEndpointAddress(new java.net.URL(endPointURL));
            call.setSOAPActionURI(soapActionURI);   

            //INVOKE
            SOAPEnvelope response = (SOAPEnvelope) call.invoke(new Message(soap.asXML()));              
            Document doc = new DOMReader().read(response.getAsDocument());  
            return doc;

这是我在SoapUI中看到的(并使用类似的标题集)

This is what i see in SoapUI

我知道这个问题令人困惑,而我,我已经在互联网上进行了研究,但几乎每个标题都是由用户名:密码字段组成的,而我只有这个"授权"

2 个答案:

答案 0 :(得分:0)

如果您使用的是WebServiceTemplate,则可以对marshalSendAndReceive进行方法WebServiceMessageCallback,在这些回调中,您可以添加RequestHeader,其中可以放入授权和承载+令牌,您的方法doWithMessage必须看起来像下面这样:

public void doWithMessage(WebServiceMessage webServiceMessage) throws IOException, TransformerException {
                    TransportContext context = TransportContextHolder.getTransportContext();
                    HeadersAwareSenderWebServiceConnection connection = (HeadersAwareSenderWebServiceConnection) context.getConnection();
                    connection.addRequestHeader("Authorization", String.format("Bearer %s", "********"));

                }

link

中的更多信息

答案 1 :(得分:0)

要在SoapUI中添加承载授权标头,您必须: (请牢记Bearer令牌属于OAuth2)

  • 点击请求窗口左下角的“身份验证”按钮
  • 使用“授权”下拉菜单,选择“添加新授权”。
  • 然后-键入-> OAuth2,然后按OK。您会看到一个名为
    的输入字段 访问令牌。只需将令牌插入其中即可。

运行您的请求,在http日志上,您将看到类似以下内容: :DEBUG:>>“授权:承载.... [\ r] [\ n]”