我使用Spring
和CXF
來創建soap web服務客戶端。如何在CXF客戶端動態添加HTTP頭文件?
webservice需要HTTP標頭Authorization=[pass]
進行驗證。到目前爲止,我實現它,如下所示:
Map<String, Object> context = ((BindingProvider) port).getRequestContext();
Map<String, List<String>> headers = new HashMap<>();
headers.put("Authorization", Arrays.asList("Basic pass")); //fixed value so far
context.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
但現在我必須要改變動態地根據實際執行的客戶端的用戶的基本合格。
問題:因爲我在Spring中使用CXF,所以我的CXF客戶端由Spring管理和共享代理。 因此,無論何時我更改port
中的HTTP標頭,它都會影響所有實例!
如何在發送web服務請求時動態添加HTTP auth頭?
我必須準確地創建一個HTTP頭LIK:Authorization=[pass]
但是,這將增加一個'肥皂:header'元素,右?我需要的是一個名爲「授權」的HTTP標頭元素,以便創建'Authorization = [Basic pass]'標頭。而「基本通行證」必須是由soap服務設計的'base64(username:password)'編碼字符串。我認爲這對於httpconduit來說是不可能的,不是嗎? – membersound 2014-12-02 15:06:44
哦。你是對的。 – Genie 2014-12-02 15:12:00
新版本怎麼樣? =) – Genie 2014-12-02 15:21:34