package org.apereo.cas.authentication; import org.apache.commons.lang3.tuple.Pair; import org.apereo.cas.services.MultifactorAuthenticationProvider; import org.apereo.cas.services.RegisteredService; import java.util.Optional; /** * This is {@link AuthenticationContextValidator}, which is responsible for evaluating an authentication * object to see whether it satisfied a requested authentication context. * * @author Misagh Moayyed * @since 5.1.0 */ public interface AuthenticationContextValidator { /** * Validate the authentication context. * * @param authentication the authentication * @param requestedContext the requested context * @param service the service * @return the resulting pair indicates whether context is satisfied, and if so, by which provider. */ Pair<Boolean, Optional<MultifactorAuthenticationProvider>> validate(Authentication authentication, String requestedContext, RegisteredService service); }