我正在实现自定义外部身份提供程序,为此,我需要从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?
}
非常感谢任何输入。
谢谢!
答案 0 :(得分:0)
处理此问题的正确方法是拥有一个自定义AuthenticationHandler,它使用您需要的任何参数创建特定Credentials对象的实例。
也就是说,如果您正在与LinkedIn集成(这是在AEM中),那么通过与现有OAuth AuthenticationHandler集成,您将获得更好的服务。 Facebook和Twitter都有OOTB支持,但OAuth提供商可以插入不同的OAuth服务提供商。