@Beta public class GoogleIdTokenVerifier extends Object
Beta
The public keys are loaded from the public certificates endpoint at
getPublicCertsEncodedUrl() and cached in this instance. Therefore, for maximum efficiency,
applications should use a single globally-shared instance of the GoogleIdTokenVerifier.
Use verify(GoogleIdToken) to verify a Google ID token, and then
IdToken.verifyAudience(java.util.Collection<java.lang.String>) to verify the client ID.
Samples usage:
public static GoogleIdTokenVerifier verifier;
public static void initVerifier(HttpTransport transport, JsonFactory jsonFactory) {
verifier = new GoogleIdTokenVerifier(transport, jsonFactory);
}
public static boolean verifyToken(GoogleIdToken idToken, Collection trustedClientIds)
throws GeneralSecurityException, IOException {
return verifier.verify(idToken) && idToken.verifyAudience(trustedClientIds);
}
| Modifier and Type | Class and Description |
|---|---|
static class |
GoogleIdTokenVerifier.Builder
|
| Modifier | Constructor and Description |
|---|---|
protected |
GoogleIdTokenVerifier(GoogleIdTokenVerifier.Builder builder) |
|
GoogleIdTokenVerifier(com.google.api.client.http.HttpTransport transport,
com.google.api.client.json.JsonFactory jsonFactory)
Constructor with required parameters.
|
| Modifier and Type | Method and Description |
|---|---|
long |
getExpirationTimeMilliseconds()
Returns the expiration time in milliseconds to be used with
Clock.currentTimeMillis()
or 0 for none. |
com.google.api.client.json.JsonFactory |
getJsonFactory()
Returns the JSON factory.
|
String |
getPublicCertsEncodedUrl()
Returns the public certificates encoded URL.
|
List<PublicKey> |
getPublicKeys()
Returns the public keys or
null for none. |
com.google.api.client.http.HttpTransport |
getTransport()
Returns the HTTP transport.
|
GoogleIdTokenVerifier |
loadPublicCerts()
Downloads the public keys from the public certificates endpoint at
getPublicCertsEncodedUrl(). |
boolean |
verify(GoogleIdToken idToken)
Verifies that the given ID token is valid using the cached public keys.
|
GoogleIdToken |
verify(String idTokenString)
Verifies that the given ID token is valid using
verify(GoogleIdToken) and returns the
ID token if succeeded. |
public GoogleIdTokenVerifier(com.google.api.client.http.HttpTransport transport,
com.google.api.client.json.JsonFactory jsonFactory)
Use GoogleIdTokenVerifier.Builder to specify client IDs.
transport - HTTP transportjsonFactory - JSON factoryprotected GoogleIdTokenVerifier(GoogleIdTokenVerifier.Builder builder)
builder - builderpublic final com.google.api.client.http.HttpTransport getTransport()
public final com.google.api.client.json.JsonFactory getJsonFactory()
public final String getPublicCertsEncodedUrl()
public final List<PublicKey> getPublicKeys()
null for none.public final long getExpirationTimeMilliseconds()
Clock.currentTimeMillis()
or 0 for none.public boolean verify(GoogleIdToken idToken) throws GeneralSecurityException, IOException
"accounts.google.com".idToken - Google ID tokentrue if verified successfully or false if failedGeneralSecurityExceptionIOExceptionpublic GoogleIdToken verify(String idTokenString) throws GeneralSecurityException, IOException
verify(GoogleIdToken) and returns the
ID token if succeeded.idTokenString - Google ID token stringnull if failedGeneralSecurityExceptionIOExceptionpublic GoogleIdTokenVerifier loadPublicCerts() throws GeneralSecurityException, IOException
getPublicCertsEncodedUrl().
This method is automatically called if the public keys have not yet been initialized or if the expiration time is very close, so normally this doesn't need to be called. Only call this method explicitly to force the public keys to be updated.
GeneralSecurityExceptionIOExceptionCopyright © 2010-2013 Google. All Rights Reserved.