java - 将摘要身份验证添加到 SOAP 请求

标签 java wsdl cxf wsdl2java digest-authentication

我正在尝试将摘要身份验证(用户名和密码)添加到我的 SOAP 请求中,该请求使用 org.apache.cxf (3.3.2) 进行类生成。我尝试使用 BindingProvider 附加用户名和密码没有成功:

MyServiceGeneratedClass soapClient = new MyServiceGeneratedClass();
MyServicePort port = soapClient.getMyServicePort();
BindingProvider bindingProvider = (BindingProvider)port;
bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "mySecretUsername");
bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "mySecretPassword");

生成的 SOAP 请求不包含用户和密码。

有什么想法吗?

最佳答案

类似的帖子是关于Digest Authentication With Apache CXF

也许该解决方案也适合您:

MyService myService = new MyService("wsdl-url");
MyServicePort myServicePort = myService.getMyServicePort();

Client client = ClientProxy.getClient(myServicePort);
HTTPConduit http = (HTTPConduit) client.getConduit();

AuthorizationPolicy authPolicy = new AuthorizationPolicy();
authPolicy.setAuthorizationType("Digest");
authPolicy.setUserName("user");
authPolicy.setPassword("myPassword");
http.setAuthorization(authPolicy);

myServicePort.doSomething();

关于java - 将摘要身份验证添加到 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58277717/

相关文章:

java - AbstractMethodError 泽西 javax.ws.rs

java - 公开 WSDL SOAP 操作的子集

java - 如何使用 Spring 为 JUnit 测试注入(inject) ServletContext?

java - Apache CXF 拦截器配置

java - OpenESB 电子邮件 BC SMTP 端口配置

soap - 当 SSL 终止后,WSDL 绑定(bind) URL 将协议(protocol)更改为 HTTP

java - 单击按钮时打开 JTextArea

java - 如何提前取消timer.schedule()调用

java - 在 Java 中从其父类复制字段

java - 如何检索用户在soap wsdl Java Webservice中传递的凭据