Use BTreeManager with UserManager for user management in AEM 5.6.1? | Adobe Higher Education
Skip to main content
johnd50678728
October 16, 2015
Répondu

Use BTreeManager with UserManager for user management in AEM 5.6.1?

We are running into the notorious 1000+ child node issue in the JCR for users, and we are trying to provide a solution without moving to a SSO or LDAP solution as the client does not have the budget for such a solution.

Given the little documentation available for BTreeManager, I was wondering if there is a way to implement BTreeManager with UserManager to handle account creation and sign in, or will we have to create our own UserManager class to handle account creation with a BTreeManager implementation?

Ce sujet a été fermé aux réponses.
Meilleure réponse par joerghoh

Hi,

You are not required to follow the geometrixx that closely :-)

I just created a user named "abc@geometrixx.com" and placed the usernode below /home/users/geometrixx/a/b/c/abc@geometrixx.com. Worked.

kind regards,
Jörg

7 commentaires

joerghoh
Adobe Employee
Adobe Employee
October 16, 2015

Hi John,

how does your process to create users look like? IIRC you can specify a path to the user node if you use the /usermanager console.

kind regards,
Jörg

smacdonald2008
Level 10
October 16, 2015

There is an API:

 http://docs.adobe.com/docs/en/cq/5-5/javadoc/org/apache/jackrabbit/commons/flat/BTreeManager.html

You can use this API within custom services for AEM. There is no reason why you cannot build a custom user manager service with AEM using this API. 

However - i am not aware of any task-based documentation that shows using this API within AEM. If you want better documentation to show task-based information, please log a support ticket. 

johnd50678728
October 16, 2015

Yes, I know we can build a custom user manager, but we were wondering if that could be avoided, as it's fraught with risk and regression.

Thanks.

johnd50678728
October 16, 2015

The users are under /home/users/mysite and then are hashed based on the first and second characters of the username (e-mail address) as follows:

/home/users/x/[first-char]/[second-char]/[username]

Example

Username: jblow@x.com

JCR path: /home/users/mysite/j/b/jblow@x.com

John

joerghoh
Adobe Employee
joerghohAdobe EmployeeRéponse
Adobe Employee
October 16, 2015

Hi,

You are not required to follow the geometrixx that closely :-)

I just created a user named "abc@geometrixx.com" and placed the usernode below /home/users/geometrixx/a/b/c/abc@geometrixx.com. Worked.

kind regards,
Jörg

johnd50678728
October 16, 2015

Yes, that's what we're doing now and it works, but it's not using BTreeManager, which is what we're wanting to do. The current hashing approach has hit the 1000 node/branch wall, which is the crux of the problem.

John

joerghoh
Adobe Employee
Adobe Employee
October 16, 2015

Hi,

the /useradmin does not require any BTreeManager, because you can choose the path freely via the user interface. You're free to use /home/users/site/u/us/username1 for a user, and user /home/users/site/u/us2/username2 for a different user. You can choose any arbitrary node structure, you don't need to put all users in a single directory or use a directory structure which is just 1 level deep. Use 3 or 4 levels if you really require it.

But a certain point I would really think of an external Identity Management system.

kind regards,
Jörg