我必须从 Java客户端连接到 WCF Web服务,它具有以下绑定配置:
<basicHttpBinding>
<binding name="basicHttpBindingSecurity">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</basicHttpBinding>
我正在使用 JAX-WS 。你能给我一个代码片段,展示如何在Java客户端中设置用户名和密码吗?
我试过这个:
Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
但它不起作用。我也试过这个:
Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://username:password@localhost:8090/MyService");
仍然没有成功。
谢谢, 拉法尔
答案 0 :(得分:2)
糟糕!遗憾...
第一个解决方案有效,但我在WCF服务配置中犯了一个错误。如果你有类似的问题,那么基本上就是这个:
Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
祝你好运, 拉法尔