2015-01-16 5 views
1

사용자 정의 외부 아이디 공급자를 구현 중이며 이렇게하려면 jackrabbit에서 ExternalIdentityProvider 클래스를 구현해야합니다. 보통의 경우클래스 구현에서 HTTP 요청 객체를 얻는 방법 ExternalIdentityProvider ExternalIdentityProvider

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

당신은 j_username과 j_password을 통과해야하고 값 SimpleCredentials 객체에서 이러한 얻을 수

내 질문에 내가 통과해야하기 때문에 추가적인 형태의 매개 변수 예를 링크드 인 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

올바른 처리 방법은 필요한 매개 변수가있는 특정 Credentials 개체의 인스턴스를 만드는 사용자 지정 AuthenticationHandler를 사용하는 것입니다.

그렇다면 LinkedIn과 통합하는 경우 (기존의 AEM에 포함되어있는 경우) 기존 OAuth AuthenticationHandler와 통합하면 더 효과적입니다. Facebook 및 Twitter에 대한 OOTB 지원이 있지만 OAuth 공급자는 다른 OAuth 서비스 공급자에 대해 플러그 가능하도록 설계되었습니다.