1

どうすればsoapヘッダーのクレデンシャルを利用できますか?私はそれらを設定する方法を知っています:

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

しかし、どうすればWebサービス側でそれらを確認できますか?クライアントから送信されたリクエストからそれらを「抽出」するにはどうすればよいですか?

4

3 に答える 3

2

私の知る限り、あなたが投稿したコードは、SOAPヘッダーではなくHTTPヘッダーにクレデンシャルを配置します。

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

me 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 に答える