【问题标题】:com.cumulocity.sdk.client.SDKException: Http status code: 401com.cumulocity.sdk.client.SDKException:Http 状态码:401
【发布时间】:2020-05-08 11:17:58
【问题描述】:

我正在尝试使用 Cumulocity Java SDK 在 Scala 中创建一个微服务,但我无法使用 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 效果很好!

有什么帮助吗?

【问题讨论】:

    标签: scala cumulocity


    【解决方案1】:

    我猜http://cumulocity:8111“解析”为http://myparenttent.com,所以 Cumulocity 不知道您的用户属于哪个租户。

    尝试导入 C8Y_TENANT 并在第一个示例中创建凭据时使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多