} else if (ipAddress != null && !IpAddressPatternValidator.getInstance().match(user.getProfile().getIpPattern(), ipAddress)) {
if(log.isDebugEnabled())
log.debug("user has no access from ip: "+ipAddress);
errors.add("invalidIpAddress", new ActionMessage("module.common.login.error.invalidIpAddress", ipAddress));
} else {
long failedLogins = new UserLoginLogDAO().countInvalidLoginsForUser(user);
if (user.getProfile().isProfileLocked()) {
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("module.common.login.error.userLocked"));
} else if (failedLogins >= SystemConfiguration.getInstance().getIntValue(SystemConfiguration.Key.MAX_FAILED_LOGINS)
&& user.getProfile().getTimeLock() > 0
&& validatePassword(user, password)) {
UserLoginLogVO lastInvalidLogin = new UserLoginLogDAO().getLastInvalidLoginForUser(user);
if(lastInvalidLogin != null) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(lastInvalidLogin.getLoginDate());
cal.add(Calendar.MINUTE, user.getProfile().getTimeLock());
if (!new Date().after(cal.getTime()))