私はJAX-WSを使い慣れていません。わからないことがあります。ユーザ名とパスワードがデータベースにある場合のJAX-WSとBASIC認証
ありJAX-WSのセキュリティを設定する方法で利用可能なチュートリアルのトンだが、ほとんどすべての場合BindingProvider.USERNAME_PROPERTYとBindingProvider.PASSWORD_PROPERTYは(私は信じているコンテナに応じて)いくつかの.xmlファイルに格納されている - 彼らはそれは "ハードコーディング"されています。そして、それは私が得ないものです。 BindingProvider.USERNAME_PROPERTYとBindingProvider.PASSWORD_PROPERTYをデータベースにあるユーザー名とパスワードと比較して、Webサービスクライアントを認証するにはどうすればよいですか。私はこのように、クライアント側でBindingProvider.USERNAME_PROPERTYとBindingProvider.PASSWORD_PROPERTYを設定してみました:
ShopingCartService scs = new ShopingCartService(wsdlURL, name);
ShopingCart sc = scs.getShopingCartPort();
Map<String, Object> requestContext = ((BindingProvider)sc).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, userName);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
sc.someFunctionCall();
をそして、サーバ側で次のように取得する:
@Resource
WebServiceContext wsContext;
@WebMethod
public void someFunctionCall() {
MessageContext mc = wsContext.getMessageContext();
mc.get(BindingProvider.USERNAME_PROPERTY);
mc.get(BindingProvider.PASSWORD_PROPERTY);
}
しかし、私は常にnullを取得、私はdidnの私はこれらの変数を取得することはできませんを除いて「Tは、Webサービスがうまく動作しますが、XMLには何も設定:(
を、私は、Java 1.6、Tomcatの6とJAX-WSの両方を実行しているよ。
データベースのパスワードを使用してユーザーを認証する際の助けとなることはありがたいです。 ありがとうございました。
私もnullまだ、SOAPHandlerにBindingProvider.USERNAME_PROPERTYをチェックしようとしました。 – ahoge