package org.apereo.cas.services;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* This is {@link DefaultRegisteredServiceMultifactorPolicy}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public class DefaultRegisteredServiceMultifactorPolicy implements RegisteredServiceMultifactorPolicy {
private static final long serialVersionUID = -3068390754996358337L;
private Set<String> multifactorAuthenticationProviders = new LinkedHashSet<>();
private FailureModes failureMode = FailureModes.CLOSED;
private String principalAttributeNameTrigger;
private String principalAttributeValueToMatch;
private boolean bypassEnabled;
/**
* Instantiates a new Default registered service authentication policy.
*/
public DefaultRegisteredServiceMultifactorPolicy() {
}
@Override
public Set<String> getMultifactorAuthenticationProviders() {
return this.multifactorAuthenticationProviders;
}
public void setMultifactorAuthenticationProviders(final Set<String> multifactorAuthenticationProviders) {
this.multifactorAuthenticationProviders = multifactorAuthenticationProviders;
}
@Override
public FailureModes getFailureMode() {
return this.failureMode;
}
public void setFailureMode(final FailureModes failureMode) {
this.failureMode = failureMode;
}
@Override
public String getPrincipalAttributeNameTrigger() {
return this.principalAttributeNameTrigger;
}
public void setPrincipalAttributeNameTrigger(final String principalAttributeNameTrigger) {
this.principalAttributeNameTrigger = principalAttributeNameTrigger;
}
@Override
public String getPrincipalAttributeValueToMatch() {
return this.principalAttributeValueToMatch;
}
public void setPrincipalAttributeValueToMatch(final String principalAttributeValueToMatch) {
this.principalAttributeValueToMatch = principalAttributeValueToMatch;
}
public void setBypassEnabled(final boolean bypass) {
this.bypassEnabled = bypass;
}
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
final DefaultRegisteredServiceMultifactorPolicy rhs = (DefaultRegisteredServiceMultifactorPolicy) obj;
return new EqualsBuilder()
.append(this.multifactorAuthenticationProviders, rhs.multifactorAuthenticationProviders)
.append(this.failureMode, rhs.failureMode)
.append(this.principalAttributeNameTrigger, rhs.principalAttributeNameTrigger)
.append(this.principalAttributeValueToMatch, rhs.principalAttributeValueToMatch)
.append(this.bypassEnabled, rhs.bypassEnabled)
.isEquals();
}
@Override
public boolean isBypassEnabled() {
return this.bypassEnabled;
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(this.multifactorAuthenticationProviders)
.append(this.failureMode)
.append(this.principalAttributeNameTrigger)
.append(this.principalAttributeValueToMatch)
.append(this.bypassEnabled)
.toHashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("multifactorAuthenticationProviders", this.multifactorAuthenticationProviders)
.append("failureMode", this.failureMode)
.append("principalAttributeNameTrigger", this.principalAttributeNameTrigger)
.append("principalAttributeValueToMatch", this.principalAttributeValueToMatch)
.append("bypassEnabled", this.bypassEnabled)
.toString();
}
}