3

ユーザー名トークンとパスワード ダイジェストによる認証を使用して、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を使用しています

4

0 に答える 0