Java Http基本身份验证不适用于Spring WS和WebServiceTemplate凭据
我尝试使用Spring(-WS)将HTTP基本身份验证凭据添加到SOAP请求中。请求本身可以工作,但不提交任何凭据。HTTP头应该如下所示:Java Http基本身份验证不适用于Spring WS和WebServiceTemplate凭据,java,spring,web-services,soap,spring-ws,Java,Spring,Web Services,Soap,Spring Ws,我尝试使用Spring(-WS)将HTTP基本身份验证凭据添加到SOAP请求中。请求本身可以工作,但不提交任何凭据。HTTP头应该如下所示: [...] Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) Authorization: Basic mybase64encodedtopsecretcredentials= 但最后一行并没有丢失。在MyConfig.java中,我配置Bean(无XML): 如果
[...]
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Authorization: Basic mybase64encodedtopsecretcredentials=
但最后一行并没有丢失。在MyConfig.java中,我配置Bean(无XML):
如果您知道授权行丢失的原因,请告诉我。:)提前非常感谢我也遇到了类似的问题,本文帮助了我:如(Thank you@Milos)所述,您需要创建一个类:
public class WebServiceMessageSenderWithAuth extends HttpUrlConnectionMessageSender{
@Override
protected void prepareConnection(HttpURLConnection connection)
throws IOException {
Base64.Encoder enc = Base64.getEncoder();
String userpassword = "login:password"; // change to a real user and password
String encodedAuthorization = enc.encodeToString(userpassword.getBytes());
connection.setRequestProperty("Authorization", "Basic " + encodedAuthorization);
super.prepareConnection(connection);
}
}
并传递给消息发送者方法:
setMessageSender(new WebServiceMessageSenderWithAuth());
setMessageSender(new WebServiceMessageSenderWithAuth());