Aem SlingAuthenticationHandler如何与CRXLogin模块对话
我读到这一点。但是在我无法弄清楚AuthenticationInfo对象是如何传递给CRXLoginModule之后。我对SlingAuthenticationHandler流程的理解如下-Aem SlingAuthenticationHandler如何与CRXLogin模块对话,aem,jackrabbit,jcr,sling,Aem,Jackrabbit,Jcr,Sling,我读到这一点。但是在我无法弄清楚AuthenticationInfo对象是如何传递给CRXLoginModule之后。我对SlingAuthenticationHandler流程的理解如下- SlingAuthenticator调用AuthenticationHandler(CQ默认值为TokenAuthenticationHandler) AuthenticationHandler返回带有用户名和密码的AuthenticationInfo。在SlingAuthenticationHandler
请帮助我了解流程。谢谢你的帮助 简单的答案是,您列出的任何内容都不会与CRXLoginModule交互 如果您参考链接到的演示文稿,则演示文稿也不会提到CRXLoginModule 原因是
com.day.crx.core.crxlogimodule
是day的自定义javax.security.auth.spi.LoginModule
,用于在OSGi框架内移动身份验证机制之前与jackrabbit jcr进行交互,这发生在CQ 5.5中
身份验证处理程序不使用该LoginModule,而是使用jackrabbit提供的默认LoginModule,即您已经识别的org.apache.jackrabbit.core.security.Authentication.DefaultLoginModule
adminSession = repository.loginAdministrative(null);
SimpleCredentials sc = new SimpleCredentials(userId, new char[0]);
sc.setAttribute(".token", "");
userSession = adminSession.impersonate(sc);
TokenCredentials tc = new TokenCredentials((String)sc.getAttribute(".token"));
AuthenticationInfo authInfo = new AuthenticationInfo("TOKEN", userId);
authInfo.put("user.jcr.credentials", tc);