java - 如何将登录模块与在 AEM 6.0 中公开为 RESTful API 的外部用户系统集成?

标签 java aem jackrabbit crx

我正在研究如何集成或自定义登录模块,以便与公开为 RESTful API 的外部用户系统一起工作。

我看到了 AuthenticationHandler 接口(interface),但它似乎只从用户请求中提取凭证。然后构建 AuthenticationInfo 对象并将其发送到 CRX 登录模块以进行身份​​验证和授权。 我坚持到了这一点。

有人知道 AEM 6.0 中这个问题的解决方案吗?

感谢并感谢您的帮助。

最佳答案

您可能想要创建自定义的 ExternalIdentityProvider,而不是自定义的 AuthenticationHandler。一旦您创建并安装了自己的身份提供者 bundle ,AEM 就会将其用于所有登录请求。本质上,AEM 将对所有已注册的身份提供者调用“身份验证”方法(根据其 JAAS 排名排序),如果任何模块成功登录,则认为该用户已通过身份验证。您也不必担心创建 JCR 用户记录,因为默认的同步处理程序会自动为您处理。

您需要做的就是创建一个实现 ExternalIdentityProvider 的新服务类,并实现 getName 和 authenticate 方法。据我所知,其他方法不会在正常登录场景中使用。您还需要配置“Apache Jackrabbit Oak 外部登录模块”,以便它知道您的身份提供者的名称以及 JAAS 排名。

有关外部登录模块的更多详细信息,请参见此处:http://jackrabbit.apache.org/oak/docs/security/authentication/externalloginmodule.html

您还可以通过查看 GitHub 中的 oak-auth-ldap 模块找到一个如何实现自定义外部登录模块的工作示例:https://github.com/apache/jackrabbit-oak

关于java - 如何将登录模块与在 AEM 6.0 中公开为 RESTful API 的外部用户系统集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26485551/

相关文章:

Java:有没有办法在 boolean 数组上实现移位?如果是这样,我该如何去做呢?

aem - maven-scr-plugin 因 SCRDescriptorException "unable to scan files ... Class file format probably not supported by ASM ?"而失败

java - JCR按路径查询

java - 在 JSF Converter 类的 getAsObject() 和 getAsString() 方法中转换什么值

java - 读取文件和分割信息

java - Fragment 中的 findViewById() 返回 null

jackrabbit - 有人知道一个简单易用的JCR UI管理工具吗?

jsp - 在JSP中无法使用UTF-8进行编码

aem - 多字段组件问题

java - 无法冒充 - Jackrabbit