2017-02-15 12 views
0

私たちは、openID Connectを使用するためにユーザーパスワードsoap webserviceを変更しようとしています。 したがって、Webサービス認証コードは、ヘッダー内で「Bearer」を含むAuthorizationヘッダーを探しています。openID接続用のBindingProviderを再設定する

私はウェブサービスを作成しようとしています。これは現在、ユーザー名とパスワードの設定方法です。

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

答えて

0

HTTPヘッダーを要求コンテキストに入れて渡すことができます。例:

Map<String, List<String>> headers = new LinkedHashMap<>(); 

headers.put("Authorization", Collections.singletonList("Bearer " + token)); 

binding.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, headers); 
関連する問題