1

我正在实现自定义外部身份提供程序,为此我需要从 jackrabbit 实现 ExternalIdentityProvider 类。

http://jackrabbit.apache.org/oak/docs/security/authentication/externalloginmodule.html

在正常情况下,您需要传递 j_username 和 j_password 并且您可以从值 SimpleCredentials 对象中获取这些

我的问题是,由于我需要传递额外的表单参数,例如我的情况下的linkedin ID,我该如何实现?

    @Component(
            policy = ConfigurationPolicy.REQUIRE
    )
    @Service
    public class RDBMSIdentityProvider implements ExternalIdentityProvider {

    @Override
    public ExternalUser authenticate(Credentials credentials)
            throws ExternalIdentityException, LoginException {
          //i can get username / password from  credentials object
          //how to get additional parameters from http request object?
    }

任何输入都受到高度赞赏。

谢谢!

4

1 回答 1

0

处理此问题的正确方法是使用自定义 AuthenticationHandler 来创建特定 Credentials 对象的实例,其中包含您需要的任何参数。

也就是说,如果您正在与 LinkedIn 集成(这是在 AEM 中),那么通过与现有的 OAuth AuthenticationHandler 集成来为您提供更好的服务。Facebook 和 Twitter 支持 OOTB,但 OAuth 提供程序设计为可插入不同的 OAuth 服务提供程序。

于 2015-01-16T16:55:18.603 回答