1

Java クライアントを作成し、WS-security を使用して Web サービスを呼び出す必要があります。クラスを生成するには、軸を使用しました。

基本的に、ユーザーとパスワードを持つ Credentials クラス、資格情報を含むクラス ヘッダー、およびヘッダーを含む別のクラス ServiceDispatcherRequest があります。

私はこのコードで試しました

    ServiceDispatcherServiceLocator service = new ServiceDispatcherServiceLocator();

ServiceDispatcherPortType port = service.getServiceDispatcherPortType();

ServiceDispatcherRequest request = new ServiceDispatcherRequest();

Credentials auth = new Credentials ("1", "xpto", "xpto");

Credentials[] credentials = new Credentials[10];

credentials[1]= auth;

Header header = new Header();

header.setCredentials(credentials);

request.setHeader(header);

ServiceDispatcherResponse response = port.serviceDispatcherOp(request);

しかし、私は次のエラーが発生します

サービス 'service' はセキュリティのために構成されていますが、AuthenticationRequest をメッセージ コンテキストで見つけることができませんでした。AuthenticationRequest なしでは認証できません。

だから私は AuthenticationRequest クラスについて検索し、これを試しました:

    Message message  = MessageFactory.getInstance().getMessage();

    AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder().username(user).password(pass.toCharArray()).build(); 

    message.getContext().setContext(SecurityService.AUTH_REQUEST,  authRequest); 

しかし、AuthenticationRequest を Web サービスに送信する方法がわかりません。

これについて何か助けていただければ幸いです。

4

0 に答える 0