3

我们有一个外部身份管理系统,它必须使用 Sling 和 REST 管理 CQ5 中用户的生命周期。

我们能够创建和删除用户和组

  • 创造

    POST http://$host:$port/libs/cq/security/authorizables/POST 
    
    Content: rep:userId=example@example.org&givenName=Example&familyName=Example&email=example@example.org&rep:password=random
    
  • 删除

    POST http://$host:$port/home/users/e/example@example.org.delete.json
    Content: deleteAuthorizable=1
    

我们的问题是我们没有找到如何重命名用户(或组)。

我们如何重命名用户?

我们找到的唯一解决方案是

  1. 列出用户的所有组成员身份
  2. 删除用户
  3. 创建一个新用户
  4. 重新创建所有组成员身份

虽然这个解决方案可以工作,但它很可能会带来一些性能问题(我们有超过 70K 的用户和超过 15K 的组)。如果这是唯一的解决方案:我们如何通过 REST 有效地执行第一步(列出所有成员)

4

1 回答 1

1

知道这并不能解决您的问题,而只是指出通过 REST 重命名似乎是不行的。文档似乎相当明确:

jackrabbit-usermanager 包提供了一个 REST 接口来创建、更新和删除 JCR 中的用户和组。

要更新现有用户,请向 /system/userManager/user/username.update 发出请求。您不能更新用户名或密码(请参阅下面的更改密码),只能通过此 URL 更新其他属性。

虽然在同一页面上,但似乎对特定用户的查询应该带回他们的组成员身份:

$ curl http://localhost:8080/system/userManager/user/admin.tidy.1.json

{
    "memberOf": [],
    "declaredMemberOf": []
}

不确定 CQ 是否以这种方式锁定对用户信息的访问。

于 2012-06-27T21:46:21.883 回答