在AEM 5.6.1中,是否将BTreeManager与UserManager一起用于用户管理?

在AEM 5.6.1中,是否将BTreeManager与UserManager一起用于用户管理?,aem,jackrabbit,crx,Aem,Jackrabbit,Crx,我们在JCR中遇到了臭名昭著的用户1000+子节点问题,我们试图提供一个解决方案,而不转移到SSO或LDAP解决方案,因为客户机没有这种解决方案的预算 考虑到BTreeManager可用的文档很少,我想知道是否有一种方法可以通过UserManager实现BTreeManager来处理帐户创建和登录,或者我们必须创建自己的UserManager类来处理BTreeManager实现的帐户创建吗?无论如何,我不建议您实现自己的UserManager,因为它完全超出了目标。 UserManager已经为

我们在JCR中遇到了臭名昭著的用户1000+子节点问题,我们试图提供一个解决方案,而不转移到SSO或LDAP解决方案,因为客户机没有这种解决方案的预算


考虑到BTreeManager可用的文档很少,我想知道是否有一种方法可以通过UserManager实现BTreeManager来处理帐户创建和登录,或者我们必须创建自己的UserManager类来处理BTreeManager实现的帐户创建吗?

无论如何,我不建议您实现自己的UserManager,因为它完全超出了目标。 UserManager已经为您提供了使用现有中间路径的可能性,例如,可以由某些自定义算法或BTreeManager创建

我对这种方法有很好的经验,例如在拥有约11万用户(仍在增长)的AEM环境中。在本例中,我们使用用户名生成一个中间路径:

/home/users/project-prefix/[first-char][second-char]/[third-char][fourth-char]/[username]

如果您更愿意利用BTreeManager来处理平衡的用户树,那么最好将您的自定义功能封装在自定义“AccountCreationService”中,该服务使用BTreeManager为每个用户创建一个中间路径,并将可授权的实际创建委托给UserManager。

因此,这是可能的,但是有没有关于如何使用BTreeManager的示例?我们甚至没有考虑构建自己的用户管理器——只是问我们是否需要。根据我的判断,我们最初的方法与您的方法类似,但只有两个字符深-/[first char]/[second char]/[usernode]。结果事与愿违。我已经构建了一个新的中间路径,它由帐户创建时时间戳的MD5散列的2字符子字符串集组成。e、 g.:/home/users/project/e2/81/ca/5c/b7/[usernode]。恐怕除了API文档之外,我还没有看到任何关于如何在web上使用BTreeManager的示例。但它并没有说明初始化的成本。我可能会构建一个将树保存在内存中的服务,但是您还必须考虑将更改事件合并到您的服务中。最好采用路径法。我使用了3个字符段作为我提到的使用100k用户的用例,效果非常好。但是,在决定使用2个还是3个字符之前,我们评估了这些段之间的用户分布。