3

SlingとRESTを使用してCQ5のユーザーのライフサイクルを管理する必要がある外部ID管理システムがあります。

を使用してユーザーとグループを作成および削除できます

  • 作成

    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バンドルは、JCRでユーザーとグループを作成、更新、削除するためのRESTインターフェースを提供します。

既存のユーザーを更新するには、/ system / userManager / user / username.updateにリクエストをPOSTします。ユーザー名またはパスワードを更新することはできません(以下の「パスワードの変更」を参照)。このURLを介して更新できるのは追加のプロパティのみです。

同じページにありますが、特定のユーザーに対するクエリは、グループメンバーシップを取り戻す必要があるようです。

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

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

CQがこの方法でユーザー情報へのアクセスをロックダウンしているかどうかはわかりません。

于 2012-06-27T21:46:21.883 に答える