2014-03-24 3 views
1

GoogleAuthUtil을 사용하여 Google로부터받는 JWT를 확인하려고합니다. this page 하단의 코드를 사용하려고합니다. I 오류 Cannot instantiate the type JsonFactory을 얻고있다 mJFactory = new JsonFactory();을 :이 라인에 데형식을 인스턴스화 할 수 없습니다. JsonFactory

import java.io.IOException; 
import java.security.GeneralSecurityException; 
import java.util.Arrays; 
import java.util.List; 

import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken; 
import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier; 
import com.google.api.client.http.javanet.NetHttpTransport; 
import com.google.api.client.json.JsonFactory; 

public class Checker { 

    private final List mClientIDs; 
    private final String mAudience; 
    private final GoogleIdTokenVerifier mVerifier; 
    private final JsonFactory mJFactory; 
    private String mProblem = "Verification failed. (Time-out?)"; 

    public Checker(String[] clientIDs, String audience) { 
     mClientIDs = Arrays.asList(clientIDs); 
     mAudience = audience; 
     NetHttpTransport transport = new NetHttpTransport(); 
     mJFactory = new JsonFactory(); 
     mVerifier = new GoogleIdTokenVerifier(transport, mJFactory); 
    } 

    public GoogleIdToken.Payload check(String tokenString) { 
     GoogleIdToken.Payload payload = null; 
     try { 
      GoogleIdToken token = GoogleIdToken.parse(mJFactory, tokenString); 
      if (mVerifier.verify(token)) { 
       GoogleIdToken.Payload tempPayload = token.getPayload(); 
       if (!tempPayload.getAudience().equals(mAudience)) 
        mProblem = "Audience mismatch"; 
       else if (!mClientIDs.contains(tempPayload.getIssuee())) 
        mProblem = "Client ID mismatch"; 
       else 
        payload = tempPayload; 
      } 
     } catch (GeneralSecurityException e) { 
      mProblem = "Security issue: " + e.getLocalizedMessage(); 
     } catch (IOException e) { 
      mProblem = "Network problem: " + e.getLocalizedMessage(); 
     } 
     return payload; 
    } 

    public String problem() { 
     return mProblem; 
    } 
} 

문제 : 여기 내 정확한 소스 코드입니다. 나는 생성자를 적절하게 호출하고 있으며 라이브러리를 제대로 가져 왔기 때문에 왜이 오류가 발생하는지 알지 못한다. 누구든지 나를 도울 수 있다면, 좋을 것입니다! 도움이 될만한 추가 정보가 있는지 알려주세요.

편집 : 는 여기에 내가 코드를 복사 작은 실수를 한 것이 었습니다 the Javadoc

답변

2

좋아 문제에 대한 링크입니다. JsonFactory은 추상 클래스이므로 구현을 제공하려면 GsonFactory 하위 클래스를 사용해야합니다.

관련 문제