Java soap头身份验证

Java soap头身份验证,java,web-services,jakarta-ee,soap,Java,Web Services,Jakarta Ee,Soap,如何在soap头中使用凭据?我知道如何设置它们: BindingProvider bp = (BindingProvider) coreWebService; bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username"); bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password"); 但是我如何在webservice端验证

如何在soap头中使用凭据?我知道如何设置它们:

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

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

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

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

您应该能够从WebServiceContext访问所需内容

对于SOAP标头:

HTTP标头:

me功能asi:

BindingProvider bp=(BindingProvider)端口;
Map Map=bp.getRequestContext();
put(BindingProvider.USERNAME_属性,“aspbbo”);
map.put(BindingProvider.PASSWORD_属性,“dkN6ssP”);
映射凭据=新的HashMap();
凭证.put(“用户名”、集合.singletonList(“aspbbo”);
凭证.put(“密码”、集合.singletonList(“dkN6ssP”);
((BindingProvider)端口).getRequestContext().put(MessageContext.HTTP_请求_头,凭据);

本网站仅使用英语,您不能期望有人能够阅读所有语言。
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);