WSO2IS 通过域响应获取租户不包含租户 ID

问题描述

运行 WSO2IS v5.11.0。使用 addTenant endpoint 创建域“example.com”的租户后,我执行以下 REST 调用来检索它

GET https://host:port/t/carbon.super/api/server/v1/tenants/domain/example.com

the docs 中记录的内容相反,响应不包含租户的 ID。回复如下:

{
    "domain": "example.com","owners": [
        {
            "username": "test@example.com"
        }
    ],"createdDate": "2021-02-04T14:43:53.598Z","lifecycleStatus": {
        "activated": true
    }
}

为什么响应中没有包含 id?我做错了什么还是这是一个错误

解决方法

似乎是 IS-5.11.0 中的一个错误。如果您尝试最新的里程碑版本 5.12.0-m9,您可以在请求中检索租户 ID。

修复 https://github.com/wso2/carbon-kernel/pull/2869 应该在最近的里程碑版本中解决了该问题。所以你可以把它打到 5.11.0 并使用。


在 IS-5.11.0 中, 如果您使用 POST request 创建租户并通过其域 GET https://host:port/api/server/v1/tenants/domain/example.com 检索租户,则租户 UUID 将不会返回。

如果您按照以下步骤操作:

  1. 使用 POST request
  2. 创建租户
  3. 在响应头中找到 Location 头并获取租户 UUID
  4. GET /tenants/{tenant-id} 之前获取租户
  5. 接下来通过域 GET https://host:port/api/server/v1/tenants/domain/example.com 获取租户 - 现在您将获取租户 UUID(由于第 3 步中的请求,租户对象可能会以其唯一 ID 进行缓存)

所以这不是 API 级别的问题。上面提到的碳内核修复应该已经修复了核心级别的问题。