我尝试使用 Spring(-WS) 将 HTTP Basic Auth 凭据添加到我的 SOAP 请求中。请求本身有效,但未提交任何凭据。 HTTP header 应如下所示:
[...]
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Authorization: Basic mybase64encodedtopsecretcredentials=
但最后一行没有丢失。在 MyConfig.java 中,我配置了 Bean(无 XML):
@Bean
public WebServiceTemplate webServiceTemplate() {
WebServiceTemplate template = new WebServiceTemplate();
try {
template.setMarshaller(marshaller()); //Jaxb2Marshaller
template.setUnmarshaller(marshaller());
// proxy for tcpmon inspection
template.setDefaultUri("http://127.0.0.1:29080/target/webservice.php");
String username = environment.getProperty("config.username");
String password = environment.getProperty("config.password");
Credentials credentials = new UsernamePasswordCredentials(username, password);
HttpComponentsMessageSender sender = new HttpComponentsMessageSender();
sender.setCredentials(credentials);
sender.afterPropertiesSet();
template.setMessageSender(sender);
} catch (Exception e) {
// @todo: handle me
}
return template;
}
如果您知道缺少授权行的原因,请告诉我。 :) 非常感谢您
最佳答案
我遇到了类似的问题,这篇文章帮助了我:https://looksok.wordpress.com/2014/09/06/spring-4-soap-request-with-http-basic-authentication/
关于java - Http 基本身份验证不适用于 Spring WS 和 WebServiceTemplate 凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779373/