Java 向SOAP请求添加摘要身份验证

Java 向SOAP请求添加摘要身份验证,java,wsdl,cxf,wsdl2java,digest-authentication,Java,Wsdl,Cxf,Wsdl2java,Digest Authentication,我正在尝试将摘要身份验证(用户名和密码)添加到SOAP请求中,该请求使用org.apache.cxf(3.3.2)生成类。我尝试使用添加用户名和密码,但未成功: MyServiceGeneratedClass soapClient = new MyServiceGeneratedClass(); MyServicePort port = soapClient.getMyServicePort(); BindingProvider bindingProvider = (BindingProvide

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

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请求不包含用户和密码

有什么想法吗?

类似的帖子是关于

也许该解决方案也适用于您:

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();

您好,我的客户端没有导出“GetConductor()”=(可能有帮助,但这里有一个关于HttpConductConfigurer的文档,如果您可以自己配置,请检查“如何使用HttpConductConfigurer?”?我将cxf rt frontend simple和cxf rt传输http依赖项到我的项目中,以便能够使用Client和ClientProxy,但现在我得到了一个java.lang.ClassCastException:com.sun.xml.internal.ws.Client.sei.SEIStub在尝试Client Client=ClientProxy.getClient(myServicePort)时无法转换为org.apache.cxf.frontend.ClientProxy;我将cxf rt frontend simple切换为cxf rt frontend jaxws,没有ClassCastException,但仍然不起作用。我添加了cxf rt frontend jaxws,并且cxf rt将http依赖项传输到我的项目中,以便能够使用客户机和ClientProxy,但未将授权添加到请求结构中。