重新配置bindingProvider for OpenID Connect



我们正在尝试更改我们的用户密码SOAP WebService使用OpenID Connect。因此,Web服务身份验证代码正在标题中查找包含"持票人"的授权标题。

我只是想编写一个网络服务,这是我们当前如何设置用户名和密码的方式。

public void bindPort(javax.xml.ws.BindingProvider binding)
{
  String endpointUrl = (String) binding.getRequestContext().get(
    BindingProvider.ENDPOINT_ADDRESS_PROPERTY);
  binding.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, 
    getEndpointUrl(endpointUrl, m_webserviceUrl));
  binding.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, m_user );
  binding.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password);

我已经做了一些谷歌搜索并找到了WSBindingProvider,但由于我们支持的不同平台,因此不允许使用它们。

我看到了另一个看起来像它回答这个问题的帖子,但是代码看起来很恐怖,而且很旧(2012年),所以我希望从那以后必须提供更好的解决方案。使用纯Jax-ws

添加SOAP标头对象

您可以通过将其放入请求上下文中传递HTTP标头。例如:

Map<String, List<String>> headers = new LinkedHashMap<>();
headers.put("Authorization", Collections.singletonList("Bearer " + token));
binding.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, headers);

相关内容

  • 没有找到相关文章

最新更新