package at.gv.egovernment.moa.id.auth; import at.gv.egovernment.moa.id.util.MOAIDMessageProvider; import at.gv.egovernment.moa.logging.Logger; /** * Thread cleaning the AuthenticationServer session store * and authentication data store from garbage. * * @author Paul Ivancsics * @version $Id$ */ public class AuthenticationSessionCleaner implements Runnable { /** interval the AuthenticationSessionCleaner is run in */ private static final long SESSION_CLEANUP_INTERVAL = 30 * 60; // 30 min /** * Runs the thread. Cleans the AuthenticationServer session store * and authentication data store from garbage, then sleeps for given interval, and restarts. */ public void run() { while (true) { try { Logger.debug("AuthenticationSessionCleaner run"); AuthenticationServer.getInstance().cleanup(); } catch (Exception e) { Logger.error(MOAIDMessageProvider.getInstance().getMessage("cleaner.01", null), e); } try { Thread.sleep(SESSION_CLEANUP_INTERVAL * 1000); } catch (InterruptedException e) { } } } /** * start the sessionCleaner */ public static void start() { // start the session cleanup thread Thread sessionCleaner = new Thread(new AuthenticationSessionCleaner()); sessionCleaner.setName("SessionCleaner"); sessionCleaner.setDaemon(true); sessionCleaner.setPriority(Thread.MIN_PRIORITY); sessionCleaner.start(); } }