Sling 自定义登录模块查询

普拉尚·昂卡

我创建了一个自定义身份验证流来使用外部提供程序进行身份验证。根据我的理解,这是执行流程。

  1. CustomAuthenticationHandler(扩展DefaultAuthenticationFeedbackHandler和实现AuthenticationHandlerAuthenticationFeedbackHandler):这会提取凭据并使用 JAAS 配置调用适当的登录模块。
  2. CustomLoginModule(扩展AbstractLoginModule)。这会调用身份提供者,可选地分配其他组。
  3. CustomIdentityProvider(实现ExternalIdentityProvider):这是应该通过调用我的外部提供程序的 auth API 进行身份验证的地方。

身份验证工作正常,我的意思是

1 > 2 > 3 工作正常,我可以调用 API 并对用户进行身份验证。

我从 (3) 中的 API 获取用户信息,并通过 CustomUser (extending ExtenalUser)将其传递给 (2 )。

我的问题是我无法将用户信息从 (2) 传递到 (1)。我需要这些信息来进一步处理请求,以显示在 UI 上。

如何将这些数据从 (2) 传递到 (1) ?

到目前为止我尝试过什么?

我创建了一个 AuthInfo 对象并调用 LoginModule 类的 setInfoInfo 对象。它不工作。我在 authInfo 中设置的自定义参数在

public boolean authenticationSucceeded(HttpServletRequest request,
            HttpServletResponse response, AuthenticationInfo authInfo)

我在CustomAuthenticationHandler课堂上写过的我怎样才能得到我的自定义参数CustomAuthenticationHandler

帕奇拉

我认为您不需要 2 和 3。在 extractCredentials 方法中,您可以调用 API 进行身份验证和 authenticationSucceeded 方法将用户分配给组。

如果你想使用自定义参数,那么你需要在你的自定义后认证类中实现 org.apache.sling.auth.core.spi.AuthenticationInfoPostProcessor 这个接口。

您可以在 process 方法中获取 AuthInfo 对象

@Component
@Service
public class CustomAuthPostProcess implements AuthenticationInfoPostProcessor {
 @Override
public void postProcess(final AuthenticationInfo authenticationInfo,
        final HttpServletRequest httpServletRequest,
        final HttpServletResponse httpServletResponse)
        throws LoginException {
 // Your logic
   }  
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何添加自定义Sling绑定?

来自分类Dev

Sling 身份验证处理程序与登录模块

来自分类Dev

将自定义节点类型添加到Apache Sling WebApp

来自分类Dev

OSGi slf4j登录Apache Sling / felix

来自分类Dev

如何使用查询或脚本批量替换sling:resourceType值

来自分类Dev

Sling Dynamic Include with Dispatcher

来自分类Dev

具有Wildfly的JAAS自定义登录模块

来自分类Dev

Wildfly 8自定义登录模块访问HttpServletRequest参数

来自分类Dev

带有正确的“ sling:match”的sling SSL配置

来自分类Dev

Sling运行模式的优先顺序

来自分类Dev

如何维护magento 1.9.2社区版中的自定义登录和注册帐户模块的自定义会话

来自分类Dev

自定义casperjs模块

来自分类Dev

快速登录Firebase的自定义登录

来自分类Dev

角查询生成器模块如何为自定义日期功能创建查询

来自分类Dev

Glassfish 4中的自定义领域:找不到登录模块

来自分类Dev

Glassfish 4中的自定义领域:找不到登录模块

来自分类Dev

自定义PostgreSQL查询

来自分类Dev

自定义DQL查询

来自分类Dev

自定义查询结果

来自分类Dev

JQPL自定义查询

来自分类Dev

在Sling模型中用冒号注入JCR属性

来自分类Dev

Apache Sling脚本解析规则如何工作?

来自分类Dev

何时在Sling中显式关闭ResourceResolver

来自分类Dev

在sling:listChildren上使用c:forEach

来自分类Dev

在AEM中使用Sling:alias vs vanityUrl

来自分类Dev

Sling servlet请求方法属性被忽略?

来自分类Dev

如何在Sling中创建系统用户?

来自分类Dev

需要Apache Sling JCR浏览器

来自分类Dev

Sling-使用pageManager查找页面路径