1

それも可能ですか?ドキュメントはそれを明確にしません。認証を機能させるためにさまざまなメカニズムを試しましたが、「401:Unauthorized」エラーが継続的に発生します。これが私がいる場所です:

    stub = new EngineStub();

    HttpClient client = new HttpClient();
    client.getParams().setAuthenticationPreemptive(true);
    stub._getServiceClient().getServiceContext().getConfigurationContext().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, client);

    HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
    List<String> authpref = new ArrayList<String>();
    authpref.add(AuthPolicy.BASIC);
    auth.setAuthSchemes(authpref);
    auth.setUsername(username); 
    auth.setPassword(password);
    auth.setPreemptiveAuthentication(true);
    stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
4

1 に答える 1

3

axis2 が BASIC AUTH で機能するとはどういう意味ですか? バックエンド サービスが基本認証を使用して保護されている場合は、クライアントから基本認証ヘッダーを設定してリクエストを送信するだけです。クライアント コードは正しく見えます。認証ポリシーがわからない;このようにせずに試してください;

 auth.setUsername(USER_NAME);
    auth.setPassword(PASSWORD);
    auth.setPreemptiveAuthentication(true);
    option.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);
    option.setManageSession(true);
于 2013-03-13T12:33:34.277 に答える