/*
* Copyright (C) 2014 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.shiro.jdbi;
import com.intel.mtwilson.My;
import com.intel.mtwilson.launcher.ext.annotations.Background;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.time.DurationFormatUtils;
/**
*
* @author jbuhacoff
*/
@Background
public class ArchiveRequestLog implements Runnable {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ArchiveRequestLog.class);
@Override
public void run() {
try (LoginDAO dao = MyJdbi.authz()) {
// get the configured window size (in time)
int expiresAfter = My.configuration().getAntiReplayProtectionWindowMilliseconds();
Calendar expirationTime = Calendar.getInstance();
expirationTime.add(Calendar.MILLISECOND, -expiresAfter);
// delete requests older than the expiration time
dao.deleteRequestLogEntriesEarlierThan(expirationTime.getTime());
} catch (IOException | SQLException e) {
log.error("Error while archiving old requests", e);
}
}
}