Базовая аутентификация HTTP для вызова WEBService - PullRequest
2 голосов
/ 28 августа 2010

Я пытаюсь вызвать веб-сервис с базовой HTTP-аутентификацией. Я сгенерировал код клиента с помощью инструмента WSDL2JAVA из AXIS.

Но я не могу установить имя пользователя и пароль для вызова веб-службы.

Я пытался поместить их в URL-адрес конечной точки как

http://username:password@somwserver/wsdl

Но я получаю несанкционированную ошибку за это. Я пытаюсь найти способ получить этот набор для моего вызова в коде Java ....

Примечание: я могу вызвать тот же сервис через soapUI и получить результаты. Я указал имя пользователя и пароль на вкладке «Aut» в запросе.

Вот некоторые фрагменты кода моей заглушки, если это полезно для вас

       _serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);


    _serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
            targetEndpoint));
    _serviceClient.getOptions().setUseSeparateListener(useSeparateListener);

        //adding SOAP soap_headers
     _serviceClient.addHeadersToEnvelope(env);
    // set the message context with that soap envelope
    _messageContext.setEnvelope(env);

    // add the message contxt to the operation client
    _operationClient.addMessageContext(_messageContext);

    //execute the operation client
    _operationClient.execute(true);

Любые входные данные будут с благодарностью !!

1 Ответ

6 голосов
/ 29 августа 2010
 HttpTransportProperties.Authenticator
                       auth = new HttpTransportProperties.Authenticator();
            auth.setUsername("username");
            auth.setPassword("password");

 _serviceClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.BASIC_AUTHENTICATE,auth);
...