/********************************************************************************* * The contents of this file are subject to the Common Public Attribution * License Version 1.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.openemm.org/cpal1.html. The License is based on the Mozilla * Public License Version 1.1 but Sections 14 and 15 have been added to cover * use of software over a computer network and provide for limited attribution * for the Original Developer. In addition, Exhibit A has been modified to be * consistent with Exhibit B. * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License. * * The Original Code is OpenEMM. * The Original Developer is the Initial Developer. * The Initial Developer of the Original Code is AGNITAS AG. All portions of * the code written by AGNITAS AG are Copyright (c) 2009 AGNITAS AG. All Rights * Reserved. * * Contributor(s): AGNITAS AG. ********************************************************************************/ package org.agnitas.dao; import org.agnitas.beans.FailedLoginData; /** * Interface for accessing login tracking information. * The records contains IP-address, used username, login status (success, failed, etc.) and a time stamp. * * @author Markus Dörschmidt * */ public interface LoginTrackDao { /** * Returns informations abound failed logins for a given IP address. * @param ipAddress IP address to retrieve login informations * @return login informations */ public FailedLoginData getFailedLoginData(String ipAddress); /** * Track successful login. All data about the login (IP address, username, time stamp, etc.) * are recoreded. * * @param ipAddress IP address of host * @param username used username */ public void trackSuccessfulLogin(String ipAddress, String username); /** * Track failed login. All data about the login (IP address, username, time stamp, etc.) * are recoreded. * * @param ipAddress IP address of host * @param username used username */ public void trackFailedLogin(String ipAddress, String username); /** * Track successful during lock period login. All data about the login (IP address, username, time stamp, etc.) * are recoreded. * * @param ipAddress IP address of host * @param username used username */ public void trackLoginDuringBlock(String ipAddress, String username); /** * Deletes old login records. A record is supposed to be old, if its time stamp exceeds the given retention time. * To prevent locking the persistence system behind, a maximum number of records can be specified to be deleted * with one method call. * * @param retentionTime numer of days a records must be stored * @param maxRecords maximum number of records to be deleteded at one method call * @return number of records deleted */ public int deleteOldRecords(int retentionTime, int maxRecords); }