package org.apereo.cas.web.flow;
import org.apache.commons.lang3.tuple.Pair;
import org.apereo.cas.authentication.Credential;
import org.apereo.cas.authentication.principal.Principal;
import org.springframework.webflow.execution.RequestContext;
import java.io.Serializable;
/**
* This is {@link AcceptableUsagePolicyRepository}.
*
* @author Misagh Moayyed
* @since 4.2
*/
public interface AcceptableUsagePolicyRepository extends Serializable {
/**
* Verify whether the policy is accepted.
*
* @param requestContext the request context
* @param credential the credential
* @return pair true if policy is accepted along with principal.
*/
Pair<Boolean, Principal> verify(RequestContext requestContext, Credential credential);
/**
* Record the fact that the policy is accepted..
*
* @param requestContext the request context
* @param credential the credential
* @return true if choice was saved.
*/
boolean submit(RequestContext requestContext, Credential credential);
}