package org.apereo.cas.support.saml.authentication.principal;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apereo.cas.authentication.principal.AbstractWebApplicationServiceResponseBuilder;
import org.apereo.cas.authentication.principal.Response;
import org.apereo.cas.authentication.principal.WebApplicationService;
import org.apereo.cas.support.saml.SamlProtocolConstants;
import java.util.HashMap;
import java.util.Map;
/**
* Builds responses to SAML service requests.
*
* @author Misagh Moayyed
* @since 4.2
*/
public class SamlServiceResponseBuilder extends AbstractWebApplicationServiceResponseBuilder {
private static final long serialVersionUID = -4584738964007702003L;
@Override
public Response build(final WebApplicationService service, final String ticketId) {
final Map<String, String> parameters = new HashMap<>();
parameters.put(SamlProtocolConstants.CONST_PARAM_ARTIFACT, ticketId);
return buildRedirect(service, parameters);
}
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
return new EqualsBuilder()
.appendSuper(super.equals(obj))
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.appendSuper(super.hashCode())
.toHashCode();
}
@Override
public boolean supports(final WebApplicationService service) {
return service instanceof SamlService;
}
}