|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier
public class GoogleIdTokenVerifier
Thread-safe Google ID token verifier.
The public keys are loaded Google's public certificate endpoint at
"https://www.googleapis.com/oauth2/v1/certs". The public keys are cached in this instance
of GoogleIdTokenVerifier. Therefore, for maximum efficiency, applications should use a
single globally-shared instance of the GoogleIdTokenVerifier. Use
verify(GoogleIdToken) or GoogleIdToken.verify(GoogleIdTokenVerifier) to verify a
Google ID token.
Samples usage:
public static GoogleIdTokenVerifier verifier;
public static void initVerifier(
HttpTransport transport, JsonFactory jsonFactory, String clientId) {
verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
.setClientId(clientId)
.build();
}
public static boolean verifyToken(GoogleIdToken idToken)
throws GeneralSecurityException, IOException {
return verifier.verify(idToken);
}
| Nested Class Summary | |
|---|---|
static class |
GoogleIdTokenVerifier.Builder
Builder for GoogleIdTokenVerifier. |
| Constructor Summary | |
|---|---|
|
GoogleIdTokenVerifier(HttpTransport transport,
JsonFactory jsonFactory)
Constructor with required parameters. |
|
GoogleIdTokenVerifier(HttpTransport transport,
JsonFactory jsonFactory,
String clientId)
Deprecated. (scheduled to be removed in 1.11) Use the #GoogleIdTokenVerifier.Builder to
specify client IDs or use GoogleIdTokenVerifier(HttpTransport, JsonFactory) if no client IDs are required. |
protected |
GoogleIdTokenVerifier(Set<String> clientIds,
HttpTransport transport,
JsonFactory jsonFactory)
Construct the GoogleIdTokenVerifier. |
protected |
GoogleIdTokenVerifier(Set<String> clientIds,
HttpTransport transport,
JsonFactory jsonFactory,
Clock clock)
Construct the GoogleIdTokenVerifier. |
| Method Summary | |
|---|---|
String |
getClientId()
Deprecated. (scheduled to be removed in 1.11) Use getClientIds() |
Set<String> |
getClientIds()
Returns the set of client IDs. |
long |
getExpirationTimeMilliseconds()
Returns the expiration time in milliseconds to be used with Clock.currentTimeMillis()
or 0 for none. |
JsonFactory |
getJsonFactory()
Returns the JSON factory. |
List<PublicKey> |
getPublicKeys()
Returns the public keys or null for none. |
GoogleIdTokenVerifier |
loadPublicCerts()
Downloads the public keys from the public certificates endpoint at "https://www.googleapis.com/oauth2/v1/certs". |
boolean |
verify(GoogleIdToken idToken)
Verifies that the given ID token is valid using verify(GoogleIdToken, String) with the
getClientIds(). |
boolean |
verify(GoogleIdToken idToken,
String clientId)
Verifies that the given ID token is valid, using the given client ID. |
boolean |
verify(Set<String> clientIds,
GoogleIdToken idToken)
Verifies that the given ID token is valid, using the given set of client IDs. |
GoogleIdToken |
verify(String idTokenString)
Returns a Google ID token if the given ID token string is valid using verify(GoogleIdToken, String) with the getClientIds(). |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
@Deprecated
public GoogleIdTokenVerifier(HttpTransport transport,
JsonFactory jsonFactory,
String clientId)
#GoogleIdTokenVerifier.Builder to
specify client IDs or use GoogleIdTokenVerifier(HttpTransport, JsonFactory) if no client IDs are required.
transport - HTTP transportjsonFactory - JSON factoryclientId - client ID or null for none
public GoogleIdTokenVerifier(HttpTransport transport,
JsonFactory jsonFactory)
#GoogleIdTokenVerifier.Builder to specify
client IDs.
transport - HTTP transportjsonFactory - JSON factory
protected GoogleIdTokenVerifier(Set<String> clientIds,
HttpTransport transport,
JsonFactory jsonFactory)
GoogleIdTokenVerifier.
clientIds - set of client IDs or null for nonetransport - HTTP transportjsonFactory - JSON factory
protected GoogleIdTokenVerifier(Set<String> clientIds,
HttpTransport transport,
JsonFactory jsonFactory,
Clock clock)
GoogleIdTokenVerifier.
clientIds - set of client IDs or null for nonetransport - HTTP transportjsonFactory - JSON factoryclock - Clock for expiration checks| Method Detail |
|---|
public final JsonFactory getJsonFactory()
@Deprecated public final String getClientId()
getClientIds()
null for none that was specified in
GoogleIdTokenVerifier(HttpTransport, JsonFactory, String).
public final Set<String> getClientIds()
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
verify(GoogleIdToken, String) with the
getClientIds().
idToken - Google ID token
true if verified successfully or false if failed
GeneralSecurityException
IOException
public GoogleIdToken verify(String idTokenString)
throws GeneralSecurityException,
IOException
verify(GoogleIdToken, String) with the getClientIds().
idTokenString - Google ID token string
null if failed
GeneralSecurityException
IOException
public boolean verify(GoogleIdToken idToken,
String clientId)
throws GeneralSecurityException,
IOException
"accounts.google.com".clientId is null.
idToken - Google ID tokenclientId - client ID or null to skip checking it
true if verified successfully or false if failed
GeneralSecurityException
IOException
public boolean verify(Set<String> clientIds,
GoogleIdToken idToken)
throws GeneralSecurityException,
IOException
"accounts.google.com".clientIds is
null.
idToken - Google ID tokenclientIds - set of client IDs
true if verified successfully or false if failed
GeneralSecurityException
IOException
public GoogleIdTokenVerifier loadPublicCerts()
throws GeneralSecurityException,
IOException
"https://www.googleapis.com/oauth2/v1/certs".
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.
GeneralSecurityException
IOException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||