Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 25 additions & 5 deletions oauth2_http/java/com/google/auth/oauth2/IdTokenCredentials.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<IdTokenProvider.Option> options;
private String targetAudience;
private List<IdTokenProvider.Option> options;

private IdTokenCredentials(Builder builder) {
this.idTokenProvider = Preconditions.checkNotNull(builder.getIdTokenProvider());
Expand All @@ -131,7 +131,7 @@ public IdToken getIdToken() {

@Override
public int hashCode() {
return Objects.hash(options, targetAudience);
return Objects.hash(idTokenProvider, options, targetAudience);
}

@Override
Expand All @@ -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
Expand All @@ -169,16 +170,29 @@ 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;
}

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;
Expand All @@ -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<IdTokenProvider.Option> options) {
this.options = options;
Expand Down
Loading