package org.apereo.cas.trusted.authentication.api; import java.time.LocalDate; import java.util.Set; /** * This is {@link MultifactorAuthenticationTrustStorage}. * * @author Misagh Moayyed * @since 5.0.0 */ public interface MultifactorAuthenticationTrustStorage { /** * Expire records that are on/before the provided date. * * @param onOrBefore the on or before */ void expire(LocalDate onOrBefore); /** * Expire device by registration key. * * @param key the key */ void expire(String key); /** * Get all records by date. * * @param onOrAfterDate the on or after date * @return the records */ Set<MultifactorAuthenticationTrustRecord> get(LocalDate onOrAfterDate); /** * Get record. * * @param principal the principal id * @return the records */ Set<MultifactorAuthenticationTrustRecord> get(String principal); /** * Get record by date. * * @param principal the principal id * @param onOrAfterDate the on or after date * @return the optional */ Set<MultifactorAuthenticationTrustRecord> get(String principal, LocalDate onOrAfterDate); /** * Set trusted record. * * @param record the record * @return the multifactor authentication trust record */ MultifactorAuthenticationTrustRecord set(MultifactorAuthenticationTrustRecord record); }