diff --git a/oauth2_http/java/com/google/auth/oauth2/IdTokenCredentials.java b/oauth2_http/java/com/google/auth/oauth2/IdTokenCredentials.java index 42bdbaa6e..ea7d324d9 100644 --- a/oauth2_http/java/com/google/auth/oauth2/IdTokenCredentials.java +++ b/oauth2_http/java/com/google/auth/oauth2/IdTokenCredentials.java @@ -105,9 +105,9 @@ public class IdTokenCredentials extends OAuth2Credentials { private static final long serialVersionUID = -2133257318957588431L; - private IdTokenProvider idTokenProvider; + private final IdTokenProvider idTokenProvider; + private final List options; private String targetAudience; - private List options; private IdTokenCredentials(Builder builder) { this.idTokenProvider = Preconditions.checkNotNull(builder.getIdTokenProvider()); @@ -131,7 +131,7 @@ public IdToken getIdToken() { @Override public int hashCode() { - return Objects.hash(options, targetAudience); + return Objects.hash(idTokenProvider, options, targetAudience); } @Override @@ -146,7 +146,8 @@ public boolean equals(Object obj) { } IdTokenCredentials other = (IdTokenCredentials) obj; return Objects.equals(this.idTokenProvider, other.idTokenProvider) - && Objects.equals(this.targetAudience, other.targetAudience); + && Objects.equals(this.targetAudience, other.targetAudience) + && Objects.equals(this.options, other.options); } @Override @@ -169,9 +170,15 @@ public static class Builder extends OAuth2Credentials.Builder { protected Builder() {} + /** + * Sets the provider for the ID token. + * + * @param idTokenProvider the provider for the ID token, cannot be null + * @return the builder object + */ @CanIgnoreReturnValue public Builder setIdTokenProvider(IdTokenProvider idTokenProvider) { - this.idTokenProvider = idTokenProvider; + this.idTokenProvider = Preconditions.checkNotNull(idTokenProvider); return this; } @@ -179,6 +186,13 @@ public IdTokenProvider getIdTokenProvider() { return this.idTokenProvider; } + /** + * Sets the target audience for the ID token. + * + * @param targetAudience the target audience, cannot be null for non-UserCredentials. If set for + * UserCredentials, the value will be ignored. + * @return the builder object + */ @CanIgnoreReturnValue public Builder setTargetAudience(String targetAudience) { this.targetAudience = targetAudience; @@ -189,6 +203,12 @@ public String getTargetAudience() { return this.targetAudience; } + /** + * Sets the options for the ID token. + * + * @param options list of options, can be null or empty if no options are needed. + * @return the builder object + */ @CanIgnoreReturnValue public Builder setOptions(List options) { this.options = options;