package org.apereo.cas.support.saml.authentication.principal; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apereo.cas.authentication.principal.AbstractWebApplicationService; /** * Implementation of a Service that supports Google Accounts (eventually a more * generic SAML2 support will come). * * @author Scott Battaglia * @since 3.1 */ public class GoogleAccountsService extends AbstractWebApplicationService { private static final long serialVersionUID = 6678711809842282833L; private final String relayState; private final String requestId; /** * Instantiates a new google accounts service. * * @param id the id * @param relayState the relay state * @param requestId the request id */ protected GoogleAccountsService(final String id, final String relayState, final String requestId) { super(id, id, null); this.relayState = relayState; this.requestId = requestId; } @JsonCreator public GoogleAccountsService(@JsonProperty("id") final String id, @JsonProperty("originalUrl") final String originalUrl, @JsonProperty("artifactId") final String artifactId, @JsonProperty("relayState") final String relayState, @JsonProperty("requestId") final String requestId) { super(id, originalUrl, artifactId); this.relayState = relayState; this.requestId = requestId; } public String getRelayState() { return this.relayState; } public String getRequestId() { return this.requestId; } @Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj.getClass() != getClass()) { return false; } final GoogleAccountsService rhs = (GoogleAccountsService) obj; return new EqualsBuilder() .appendSuper(super.equals(obj)) .append(this.relayState, rhs.relayState) .append(this.requestId, rhs.requestId) .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder() .appendSuper(super.hashCode()) .append(relayState) .append(requestId) .toHashCode(); } }