/*
* Copyright 2003 Federal Chancellery Austria
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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();
}
}