1

如何在肥皂标题中使用凭据?我知道如何设置它们:

BindingProvider bp = (BindingProvider) coreWebService;
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");

但是如何在 web 服务端验证它们呢?如何从客户端发送的请求中“提取”它们?

4

3 回答 3

2

据我所知,您发布的代码将凭据放入 HTTP 标头,而不是 SOAP 标头。

您应该能够从 WebServiceContext 访问您需要的内容。

对于 SOAP 标头:

http://metro.java.net/guide/ch04.html#accessing-soap-headers-for-incoming-messages

HTTP 标头:

http://middlewaremagic.com/weblogic/?p=351

于 2012-08-16T09:54:00.067 回答
0

在您的服务器上设置基本身份验证。您可以检查标头(通过嗅探流量)并查看您的请求将包含一个Authorization标头,其中包含一些包含您的用户名和密码的 Base64 编码内容。

于 2012-08-16T07:00:19.053 回答
0

我 funciono asi:

BindingProvider bp = (BindingProvider) port;
Map<String, Object> map = bp.getRequestContext();
map.put(BindingProvider.USERNAME_PROPERTY, "aspbbo");
map.put(BindingProvider.PASSWORD_PROPERTY, "dkN6ssP");


Map<String, List<String>> credentials = new HashMap<String, List<String>>();
credentials.put("username", Collections.singletonList("aspbbo"));
credentials.put("password", Collections.singletonList("dkN6ssP"));
((BindingProvider)port).getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, credentials);
于 2017-05-27T23:51:33.370 回答