我需要以某种方式在我的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中看到的(并使用类似的标题集)
我知道这个问题令人困惑,而我,我已经在互联网上进行了研究,但几乎每个标题都是由用户名:密码字段组成的,而我只有这个"授权"
答案 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)
运行您的请求,在http日志上,您将看到类似以下内容: :DEBUG:>>“授权:承载.... [\ r] [\ n]”