为openID connect重新配置BindingProvider

时间:2017-02-15 17:11:08

标签: java web-services soap java-8

我们正在尝试更改用户密码soap webservice以使用openID Connect。 因此,webservice身份验证代码在标题中查找包含“Bearer”的Authorization标头。

我只是想写一个webservice,这是我们目前设置用户名和密码的方式。

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

我做了一些googleing并找到了WSBindingProvider,但因为它是com.sun类,所以我们不允许使用它们,因为我们支持不同的平台。

我看到另一篇文章看起来像是回答了这个问题,但是代码看起来很糟糕而且很老(2012),所以我希望从那时起必须提供更好的解决方案。 Add SOAP header object using pure JAX-WS

1 个答案:

答案 0 :(得分:0)

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

    return $this->render('CustomBundle:user:index.html.twig', array(
        'users' => $users,
    ));