package org.apereo.cas.authentication;
import java.util.Optional;
/**
* A stateful authentication policy that is applied using arbitrary contextual information.
*
* @author Marvin S. Addison
* @since 4.0.0
*/
public interface ContextualAuthenticationPolicy<T> extends AuthenticationPolicy {
/**
* Gets the context used to evaluate the authentication policy.
*
* @return Context information.
*/
T getContext();
/**
* Return an optional message code to use when this {@link ContextualAuthenticationPolicy} is unsatisfied.
*
* @return Optional message code
*/
default Optional<String> getCode() {
return Optional.empty();
}
}