com.cumulocity.sdk.client.SDKException: Http код состояния: 401 - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь создать микросервис в Scala, используя Cumulocity Java SDK , но я не могу аутентифицировать его с помощью переменных среды C8Y_BASEURL, C8Y_PASSWORD, C8Y_USER.

Вот простой код:

 val C8Y_USER = sys.env.getOrElse("C8Y_USER", "no value for C8Y_USER")
 val C8Y_PASSWORD = sys.env.getOrElse("C8Y_PASSWORD", "no value for C8Y_PASSWORD")
 val C8Y_BASEURL = sys.env.getOrElse("C8Y_BASEURL", "no value for C8Y_BASEURL")

 val platform = new PlatformImpl(C8Y_BASEURL, new CumulocityCredentials(C8Y_USER, C8Y_PASSWORD))
 val alarmsRepresentation = platform.getAlarmApi.getAlarmsByFilter(new AlarmFilter().byStatus(CumulocityAlarmStatuses.ACKNOWLEDGED)).get(2000)

Результат кода:

{error="security/Unauthorized",message="Invalid credentials!",info="https://www.cumulocity.com/guides/reference-guide/#error_reporting",details="null"}

Странная вещь в том, что если я использую тот же пользователя и пароль с полным URL арендатора работает микросервис. Пример:

 val C8Y_USER = sys.env.getOrElse("C8Y_USER", "no value for C8Y_USER")
 val C8Y_PASSWORD = sys.env.getOrElse("C8Y_PASSWORD", "no value for C8Y_PASSWORD")
 val C8Y_TENANT = sys.env("C8Y_TENANT")
 val C8Y_BASEURL = "https://" + C8Y_TENANT + ".myparenttenant.com"     

Таким образом, в конце единственное отличие - это C8Y_BASEURL. При использовании значения по умолчанию C8Y_BASEURL значение равно http://cumulocity: 8111 , что не работа и моя собственная стоимость: https://subtenant.myparenttenant.com, которая работает просто отлично!

Любая помощь?

1 Ответ

0 голосов
/ 08 мая 2020

Я предполагаю http://cumulocity: 8111"разрешает" до http://myparenttent.com, поэтому Cumulocity не знает, какому арендатору принадлежит ваш пользователь.

Попробуйте импортировать C8Y_TENANT и использовать его при создании учетных данных в первом примере.

...