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