/** * Creates a new password policy authentication request handler */ public PasswordPolicyAuthenticationRequestHandler() { super((dn, user) -> new RequestControl[] {new PasswordPolicyControl()}); } }
@Override public int hashCode() { return LdapUtils.computeHashCode( HASH_CODE_SEED, getOID(), getCriticality(), timeBeforeExpiration, graceAuthNsRemaining, error); }
@Override public void handle(final AuthenticationResponse response) { final PasswordPolicyControl ppc = (PasswordPolicyControl) response.getControl(PasswordPolicyControl.OID); if (ppc != null) { if (ppc.getError() != null) { response.setAccountState(new PasswordPolicyAccountState(ppc.getError())); } else { Calendar exp = null; if (ppc.getTimeBeforeExpiration() > 0) { exp = Calendar.getInstance(); exp.add(Calendar.SECOND, ppc.getTimeBeforeExpiration()); } if (exp != null || ppc.getGraceAuthNsRemaining() > 0) { response.setAccountState(new PasswordPolicyAccountState(exp, ppc.getGraceAuthNsRemaining())); } } } } }
@Override public String toString() { return String.format( "[%s@%d::criticality=%s, timeBeforeExpiration=%s, graceAuthNsRemaining=%s, error=%s]", getClass().getName(), hashCode(), getCriticality(), timeBeforeExpiration, graceAuthNsRemaining, error); }
public Object[][] createData() final PasswordPolicyControl timeBeforeExp = new PasswordPolicyControl(); timeBeforeExp.setTimeBeforeExpiration(2513067); final PasswordPolicyControl timeBeforeExpZero = new PasswordPolicyControl(); timeBeforeExpZero.setTimeBeforeExpiration(0); final PasswordPolicyControl graceAuthns = new PasswordPolicyControl(); graceAuthns.setGraceAuthNsRemaining(4); final PasswordPolicyControl graceAuthnsZero = new PasswordPolicyControl(); graceAuthnsZero.setGraceAuthNsRemaining(0); final PasswordPolicyControl passExpired = new PasswordPolicyControl(); passExpired.setError(PasswordPolicyControl.Error.PASSWORD_EXPIRED); final PasswordPolicyControl accountLocked = new PasswordPolicyControl(); accountLocked.setError(PasswordPolicyControl.Error.ACCOUNT_LOCKED); new PasswordPolicyControl(), }, };
/** * @param berValue to decode. * @param expected ppolicy control to test. * * @throws Exception On test failure. */ @Test(groups = {"control"}, dataProvider = "response") public void decode(final byte[] berValue, final PasswordPolicyControl expected) throws Exception { final PasswordPolicyControl actual = new PasswordPolicyControl(expected.getCriticality()); actual.decode(berValue); Assert.assertEquals(actual, expected); } }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { final int errValue = IntegerType.decode(encoded).intValue(); final PasswordPolicyControl.Error e = PasswordPolicyControl.Error.valueOf(errValue); if (e == null) { throw new IllegalArgumentException("Unknown error code " + errValue); } getObject().setError(e); } }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { getObject().setGraceAuthNsRemaining(IntegerType.decode(encoded).intValue()); } }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { getObject().setTimeBeforeExpiration(IntegerType.decode(encoded).intValue()); } }
final PasswordPolicyControl c = (PasswordPolicyControl) requestControl; ctl = new PasswordPolicyImpl(); ctl.setCritical(c.getCriticality()); } else if (SyncRequestControl.OID.equals(requestControl.getOID())) { final SyncRequestControl c = (SyncRequestControl) requestControl;
final PasswordPolicy c = (PasswordPolicy) responseControl; if (c.hasResponse()) { ctl = new PasswordPolicyControl(c.isCritical()); ((PasswordPolicyControl) ctl).setTimeBeforeExpiration(ppr.getTimeBeforeExpiration()); ((PasswordPolicyControl) ctl).setGraceAuthNsRemaining(ppr.getGraceAuthNRemaining()); ((PasswordPolicyControl) ctl).setError(PasswordPolicyControl.Error.valueOf(error.getValue()));
@Override public String toString() { return String.format( "[%s@%d::criticality=%s, timeBeforeExpiration=%s, graceAuthNsRemaining=%s, error=%s]", getClass().getName(), hashCode(), getCriticality(), timeBeforeExpiration, graceAuthNsRemaining, error); }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { final int errValue = IntegerType.decode(encoded).intValue(); final PasswordPolicyControl.Error e = PasswordPolicyControl.Error.valueOf(errValue); if (e == null) { throw new IllegalArgumentException("Unknown error code " + errValue); } getObject().setError(e); } }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { getObject().setGraceAuthNsRemaining(IntegerType.decode(encoded).intValue()); } }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { getObject().setTimeBeforeExpiration(IntegerType.decode(encoded).intValue()); } }
/** * Creates a new password policy authentication request handler */ public PasswordPolicyAuthenticationRequestHandler() { super((dn, user) -> new RequestControl[] {new PasswordPolicyControl()}); } }
@Override public int hashCode() { return LdapUtils.computeHashCode( HASH_CODE_SEED, getOID(), getCriticality(), timeBeforeExpiration, graceAuthNsRemaining, error); }
@Override public String toString() { return String.format( "[%s@%d::criticality=%s, timeBeforeExpiration=%s, " + "graceAuthNsRemaining=%s, error=%s]", getClass().getName(), hashCode(), getCriticality(), timeBeforeExpiration, graceAuthNsRemaining, error); }
@Override public void handle(final AuthenticationResponse response) { final PasswordPolicyControl ppc = (PasswordPolicyControl) response.getControl(PasswordPolicyControl.OID); if (ppc != null) { if (ppc.getError() != null) { response.setAccountState(new PasswordPolicyAccountState(ppc.getError())); } else { ZonedDateTime exp = null; if (ppc.getTimeBeforeExpiration() >= 0) { exp = ZonedDateTime.now().plusSeconds(ppc.getTimeBeforeExpiration()); } if (exp != null || ppc.getGraceAuthNsRemaining() >= 0) { response.setAccountState(new PasswordPolicyAccountState(exp, ppc.getGraceAuthNsRemaining())); } } } } }
@Override public void handle(final DERParser parser, final ByteBuffer encoded) { final int errValue = IntegerType.decode(encoded).intValue(); final PasswordPolicyControl.Error e = PasswordPolicyControl.Error.valueOf(errValue); if (e == null) { throw new IllegalArgumentException("Unknown error code " + errValue); } getObject().setError(e); } }