SoapUI 5.5.0 (бесплатная версия) Ошибка при извлечении токена доступа OAuth2 с ошибкой - PullRequest
1 голос
/ 16 июня 2020

Я прочитал много статей, посвященных моей текущей проблеме, но ни одно из решений статьи / потока не решило мою проблему.

Я использую SoapUI 5.5.0 (бесплатная версия) и пытаюсь получить токен доступа OAuth2 из API поставщика с помощью функции Get Token в разделе авторизации моего запроса. Я создал профиль и назначил ему следующую конфигурацию:

  • OAuth2 Flow: Client Credentials Grant
  • Client Identification: our-client-id
  • Client Secret : our-client-secret
  • URI токена доступа: baseURL-provided-by-vendor / oauth
  • Scope: empty

Я нажимаю кнопку «Получить Кнопка «Токен доступа», и SoapUI выдает предупреждение об ошибке «Не удалось получить токен доступа. Подробности см. В журнале SoapUI»

В журнале SoapUI отображается следующее (сокращенно):

Вт 16 июня 09:57:51 CDT 2020: ОШИБКА: Ошибка при получении токена доступа OAuth 2 ** Вт 16 июня 09:57:51 CDT 2020: ОШИБКА: com.eviware.soapui.impl.rest.actions.oauth. OAuth2Exception: org. apache .oltu.oauth2.common.exception.OAuthSystemException: OAuthProblemException {error = 'invalid_request', description = 'Отсутствующие параметры: access_token', uri = 'null', state = 'null', scope = ' null ', redirectUri =' null ', responseStatus = 0, параметры = {}} **

* 1 024 *

Основываясь на этой ошибке, я провел довольно исчерпывающее исследование (на этом и других сайтах) и нашел альтернативные методы, включающие доступ к токену непосредственно из одного из моих groovy скриптов. Я попытался запустить следующий предложенный метод в сценарии groovy:

import com.eviware.soapui.impl.rest.actions.oauth.OltuOAuth2ClientFacade

def authContainer = testRunner.testCase.testSuite.project.OAuth2ProfileContainer
def profileName = "Automation"
def authProfile = authContainer.getProfileByName(profileName)

def clientFacade = new OltuOAuth2ClientFacade()
clientFacade.requestAccessToken(authProfile)
//To get the access token
def accessToken = authProfile.getAccessToken()

Когда я выполняю этот сценарий, я получаю следующую ошибку:

com. eviware.soapui.impl.rest.actions.oauth.OAuth2Exception: org. apache .oltu.oauth2.common.exception.OAuthSystemException: OAuthProblemException {error = 'invalid_request', description = 'Отсутствующие параметры: access_token', uri = ' null ', state =' null ', scope =' null ', redirectUri =' null ', responseStatus = 0, parameters = {}} ошибка в строке: 8

Он имеет проблема с вызовом метода clientFacade.requestAccessToken (authProfile) .

Обратите внимание, что в Postman я могу запросить токен доступа с того же URL-адреса, используя тот же тип потока, с теми же учетными данными клиента, без предоставленной области, и получить токен вообще без ошибок.

На данный момент я вынужден вручную получить токен с помощью Postman, а затем вставить его в поле Access Token в SoapUI, что не идеально. Я действительно хотел бы иметь возможность автоматизировать это в SoapUI. Любые предложения были бы замечательными. Спасибо!

...