public void resetLockoutAttempts(String userDN,AMIdentity amIdentity,AccountLockoutInfo acInfo,boolean resetDuration){
  debug.message("entering ISAccountLockout.resetLockoutAttempts");
  if (debug.messageEnabled()) {
    debug.message("ISAccountLockout.resetLockoutAttempts:: " + "resetDuration =" + resetDuration);
  }
  int fail_count=0;
  long lastFailTime=0;
  long locked_out_at=0;
  long actualLockoutDuration=failureLockoutDuration;
  long currentLockoutDuration=acInfo.getActualLockoutDuration();
  if (acInfo != null) {
    fail_count=acInfo.getFailCount();
    lastFailTime=acInfo.getLastFailTime();
    locked_out_at=acInfo.getLockoutAt();
    long now=currentTimeMillis();
    if (!resetDuration) {
      actualLockoutDuration=currentLockoutDuration;
      if (debug.messageEnabled()) {
        debug.message("ISAccountLockout.resetLockoutAttempts::" + "Locked out At =" + locked_out_at);
      }
      if (locked_out_at > 0) {
        if (debug.messageEnabled()) {
          debug.message("ISAccountLockout.resetLockoutAttempts::" + " Using the multiplier");
        }
        actualLockoutDuration=failureLockoutMultiplier * (currentLockoutDuration);
      }
    }
  }
  if (storeInvalidAttemptsInDS) {
    try {
      if ((fail_count != 0) || (lastFailTime != 0) || (locked_out_at != 0)|| (actualLockoutDuration != currentLockoutDuration)) {
        Map attrMap=new HashMap();
        Set invalidAttempts=new HashSet();
        String invalidXML=createInvalidAttemptsXML(0,0,0,actualLockoutDuration);
        invalidAttempts.add(invalidXML);
        attrMap.put(invalidAttemptsDataAttrName,invalidAttempts);
        setLockoutObjectClass(amIdentity);
        amIdentity.setAttributes(attrMap);
        debug.message("Saving XML = " + invalidXML);
        amIdentity.store();
      }
      debug.message("ISAccountLockout::resetLockoutAttempts done");
    }
 catch (    Exception exp) {
      debug.message("error reseting Lockout Attempts");
    }
  }
  acInfo.setFailCount(0);
  acInfo.setLastFailTime(0);
  acInfo.setLockoutAt(0);
  acInfo.setLockout(false);
  acInfo.setActualLockoutDuration(actualLockoutDuration);
}

public void resetLockoutAttempts ( String userDN , AMIdentity amIdentity , AccountLockoutInfo acInfo , boolean resetDuration ) { debug . message ( "entering ISAccountLockout.resetLockoutAttempts" ) ; if ( debug . messageEnabled ( ) ) { debug . message ( "ISAccountLockout.resetLockoutAttempts:: " + "resetDuration =" + resetDuration ) ; } int fail_count = 0 ; long lastFailTime = 0 ; long locked_out_at = 0 ; long actualLockoutDuration = failureLockoutDuration ; long currentLockoutDuration = acInfo . getActualLockoutDuration ( ) ; if ( acInfo != null ) { fail_count = acInfo . getFailCount ( ) ; lastFailTime = acInfo . getLastFailTime ( ) ; locked_out_at = acInfo . getLockoutAt ( ) ; long now = currentTimeMillis ( ) ; if ( ! resetDuration ) { actualLockoutDuration = currentLockoutDuration ; if ( debug . messageEnabled ( ) ) { debug . message ( "ISAccountLockout.resetLockoutAttempts::" + "Locked out At =" + locked_out_at ) ; } if ( locked_out_at > 0 ) { if ( debug . messageEnabled ( ) ) { debug . message ( "ISAccountLockout.resetLockoutAttempts::" + " Using the multiplier" ) ; } actualLockoutDuration = failureLockoutMultiplier * ( currentLockoutDuration ) ; } } } if ( storeInvalidAttemptsInDS ) { try { if ( ( fail_count != 0 ) || ( lastFailTime != 0 ) || ( locked_out_at != 0 ) || ( actualLockoutDuration != currentLockoutDuration ) ) { Map attrMap = new HashMap ( ) ; Set invalidAttempts = new HashSet ( ) ; String invalidXML = createInvalidAttemptsXML ( 0 , 0 , 0 , actualLockoutDuration ) ; invalidAttempts . add ( invalidXML ) ; attrMap . put ( invalidAttemptsDataAttrName , invalidAttempts ) ; setLockoutObjectClass ( amIdentity ) ; amIdentity . setAttributes ( attrMap ) ; debug . message ( "Saving XML = " + invalidXML ) ; amIdentity . store ( ) ; } debug . message ( "ISAccountLockout::resetLockoutAttempts done" ) ; } catch ( Exception exp ) { debug . message ( "error reseting Lockout Attempts" ) ; } } acInfo . setFailCount ( 0 ) ; acInfo . setLastFailTime ( 0 ) ; acInfo . setLockoutAt ( 0 ) ; acInfo . setLockout ( false ) ; acInfo . setActualLockoutDuration ( actualLockoutDuration ) ; }
resets attempts related data in data store if the user has successfully authenticated .
