ユーザー名トークンとパスワード ダイジェストによる認証を使用して、weblogic にデプロイする単純な Web サービスを実装しようとしています。クリア テキストを使用するコードの例はたくさんありますが、ダイジェスト パスワードを使用する例は見つかりませんでした。
このWebサービスを使用してみました:
@WebService
@Policies({ @Policy( uri = "../policy/usernametoken.xml" ) } )
public class Hello{
public String sayHello(String name){
return "Hello : " + name;
}
}
、次の WS ポリシー ファイル usernametoken.xml を使用します。
<wsp:Policy
xmlns:wsp="http://www.w3.org/ns/ws-policy"
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" >
<sp:SupportingTokens>
<wsp:Policy>
<sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/wssecuritypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10/>
<sp:HashPassword />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SupportingTokens>
</wsp:Policy>
、およびこのクライアント:
public static void main(String[] args)
{
HelloService service = new HelloService();
Hello port = service.getHelloPort();
List<CredentialProvider> credProviders = new ArrayList<CredentialProvider>();
String username = "weblogic";
String password = "web1ogiC";
CredentialProvider cp = new ClientUNTCredentialProvider(username.getBytes(), password.getBytes());
credProviders.add(cp);
Map<String, Object> rc = ((BindingProvider)port).getRequestContext();
rc.put(WSSecurityContext.CREDENTIAL_PROVIDER_LIST, credProviders);
String result = port.sayHello("xxx1");
System.out.println("*************** RESULT from WebService ***************");
System.out.println(result);
System.out.println("******************************************************");
}
、しかし、それは動作しません。
また、ダイジェスト パスワードを使用して SOAPUI ツールを介して起動しようとしましたが、これも機能していません。
実際の例を提供するか、私の例を修正することで、誰かが私を助けてくれますか?
編集:weblogic 12cを使用しています