@Override public String toString() { return String.format( "[%s@%d::criticality=%s, timeBeforeExpiration=%s]", getClass().getName(), hashCode(), getCriticality(), timeBeforeExpiration); }
@Override public int hashCode() { return LdapUtils.computeHashCode(HASH_CODE_SEED, getOID(), getCriticality()); }
/** * Creates a new password expiring control. * * @param time in seconds until expiration */ public PasswordExpiringControl(final int time) { super(OID); setTimeBeforeExpiration(time); }
/** * @param berValue to decode. * @param expected password expiring control to test. * * @throws Exception On test failure. */ @Test(groups = {"control"}, dataProvider = "response") public void decode(final byte[] berValue, final PasswordExpiringControl expected) throws Exception { final PasswordExpiringControl actual = new PasswordExpiringControl(expected.getCriticality()); actual.decode(berValue); Assert.assertEquals(actual, expected); } }
/** * Password expiring control test data. * * @return response test data */ @DataProvider(name = "response") public Object[][] createData() { return new Object[][] { // BER: 34:36:31 new Object[] { LdapUtils.base64Decode("NDYx"), new PasswordExpiringControl(461), }, // BER: 33:38:34 new Object[] { LdapUtils.base64Decode("Mzg0"), new PasswordExpiringControl(384), }, }; }
@Override public void handle(final AuthenticationResponse response) { final PasswordExpiringControl expiringControl = (PasswordExpiringControl) response.getControl( PasswordExpiringControl.OID); if (expiringControl != null) { if (expiringControl.getTimeBeforeExpiration() > 0) { final Calendar exp = Calendar.getInstance(); exp.add(Calendar.SECOND, expiringControl.getTimeBeforeExpiration()); response.setAccountState(new PasswordExpirationAccountState(exp)); } else { logger.warn("Received password expiring control with non-positive value: %s", expiringControl); } } if (response.getAccountState() == null) { final PasswordExpiredControl expiredControl = (PasswordExpiredControl) response.getControl( PasswordExpiredControl.OID); if (expiredControl != null) { response.setAccountState( new PasswordExpirationAccountState(PasswordExpirationAccountState.Error.PASSWORD_EXPIRED)); } } } }
ctl = new PasswordExpiringControl(critical); ctl.decode(encoded); break;
@Override public void handle(final AuthenticationResponse response) { final PasswordExpiringControl expiringControl = (PasswordExpiringControl) response.getControl( PasswordExpiringControl.OID); if (expiringControl != null) { if (expiringControl.getTimeBeforeExpiration() > 0) { final ZonedDateTime exp = ZonedDateTime.now().plusSeconds(expiringControl.getTimeBeforeExpiration()); response.setAccountState(new PasswordExpirationAccountState(exp)); } else { logger.warn("Received password expiring control with non-positive value: %s", expiringControl); } } if (response.getAccountState() == null) { final PasswordExpiredControl expiredControl = (PasswordExpiredControl) response.getControl( PasswordExpiredControl.OID); if (expiredControl != null) { response.setAccountState( new PasswordExpirationAccountState(PasswordExpirationAccountState.Error.PASSWORD_EXPIRED)); } } } }
@Override public String toString() { return String.format( "[%s@%d::criticality=%s, timeBeforeExpiration=%s]", getClass().getName(), hashCode(), getCriticality(), timeBeforeExpiration); }
@Override public int hashCode() { return LdapUtils.computeHashCode(HASH_CODE_SEED, getOID(), getCriticality()); }
/** * Creates a new password expiring control. * * @param time in seconds until expiration * @param critical whether this control is critical */ public PasswordExpiringControl(final int time, final boolean critical) { super(OID, critical); setTimeBeforeExpiration(time); }
ctl = new PasswordExpiringControl(critical); ctl.decode(encoded); break;
@Override public void handle(final AuthenticationResponse response) { final PasswordExpiringControl expiringControl = (PasswordExpiringControl) response.getControl( PasswordExpiringControl.OID); if (expiringControl != null) { if (expiringControl.getTimeBeforeExpiration() > 0) { final ZonedDateTime exp = ZonedDateTime.now().plusSeconds(expiringControl.getTimeBeforeExpiration()); response.setAccountState(new PasswordExpirationAccountState(exp)); } else { logger.warn("Received password expiring control with non-positive value: %s", expiringControl); } } if (response.getAccountState() == null) { final PasswordExpiredControl expiredControl = (PasswordExpiredControl) response.getControl( PasswordExpiredControl.OID); if (expiredControl != null) { response.setAccountState( new PasswordExpirationAccountState(PasswordExpirationAccountState.Error.PASSWORD_EXPIRED)); } } } }
@Override public String toString() { return String.format( "[%s@%d::criticality=%s, timeBeforeExpiration=%s]", getClass().getName(), hashCode(), getCriticality(), timeBeforeExpiration); }
@Override public int hashCode() { return LdapUtils.computeHashCode(HASH_CODE_SEED, getOID(), getCriticality()); }
/** * Creates a new password expiring control. * * @param time in seconds until expiration * @param critical whether this control is critical */ public PasswordExpiringControl(final int time, final boolean critical) { super(OID, critical); setTimeBeforeExpiration(time); }
ctl = new PasswordExpiringControl(critical); ctl.decode(encoded); break;
/** * Creates a new password expiring control. * * @param time in seconds until expiration */ public PasswordExpiringControl(final int time) { super(OID); setTimeBeforeExpiration(time); }
/** * Creates a new password expiring control. * * @param time in seconds until expiration */ public PasswordExpiringControl(final int time) { super(OID); setTimeBeforeExpiration(time); }
/** * Creates a new password expiring control. * * @param time in seconds until expiration * @param critical whether this control is critical */ public PasswordExpiringControl(final int time, final boolean critical) { super(OID, critical); setTimeBeforeExpiration(time); }