2015-01-16 42 views
1

我正在實現自定義外部身份提供程序,爲此我需要從jackrabbit實現ExternalIdentityProvider類。如何在實現jackrabbit的類中獲取HTTP請求對象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

處理此問題的正確方法是使用自定義AuthenticationHandler,該自定義AuthenticationHandler使用您需要的任何參數創建特定Credentials對象的實例。這就是說,如果你正在與LinkedIn進行整合(並且這是在AEM中),那麼通過與現有的OAuth AuthenticationHandler進行集成可以更好地服務於你。 Facebook和Twitter有OOTB支持,但OAuth提供商設計爲可插入到不同的OAuth服務提供商。

相關問題