package org.apereo.cas.otp.repository.token;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.ZonedDateTime;
/**
* This is {@link OneTimeTokenRepositoryCleaner}.
*
* @author Misagh Moayyed
* @since 5.1.0
*/
public class OneTimeTokenRepositoryCleaner {
private static final Logger LOGGER = LoggerFactory.getLogger(OneTimeTokenRepositoryCleaner.class);
private final OneTimeTokenRepository tokenRepository;
private final Object lock = new Object();
public OneTimeTokenRepositoryCleaner(final OneTimeTokenRepository tokenRepository) {
this.tokenRepository = tokenRepository;
}
/**
* Clean the repository.
*/
public void clean() {
LOGGER.debug("Starting to clean previously used authenticator tokens from [{}] at [{}]", this.tokenRepository, ZonedDateTime.now());
synchronized (this.lock) {
tokenRepository.clean();
}
LOGGER.info("Finished cleaning authenticator tokens at [{}]", ZonedDateTime.now());
}
}