@Override public void validate(final IdentityContext context, final TOTPCredentials credentials, final CredentialStore<?> store) { super.validate(context, credentials, store); if (Status.VALID.equals(credentials.getStatus()) || Status.EXPIRED.equals(credentials.getStatus())) { if (!isValid(context, credentials, store)) { credentials.setStatus(Status.INVALID); credentials.setValidatedAccount(null); } } }
private List<OTPCredentialStorage> getCredentialStorages(final IdentityContext context, final TOTPCredentials credentials, final CredentialStore<?> store) { List<OTPCredentialStorage> storages = store.retrieveCredentials(context, getAccount(context, credentials.getUsername()), OTPCredentialStorage.class); for (OTPCredentialStorage storage : new ArrayList<OTPCredentialStorage>(storages)) { if (!CredentialUtils.isCurrentCredential(storage) || !isDeviceStorage(credentials.getDevice(), storage)) { storages.remove(storage); } } return storages; }
private boolean isValid(final IdentityContext context, final TOTPCredentials credentials, final CredentialStore<?> store) { for (OTPCredentialStorage storage : getCredentialStorages(context, credentials, store)) { String secretKey = storage.getSecretKey(); String token = credentials.getToken(); if (this.totp.validate(token, secretKey.getBytes())) { return true; } } return false; }
private List<OTPCredentialStorage> getCredentialStorages(final IdentityContext context, final TOTPCredentials credentials, final CredentialStore<?> store) { List<OTPCredentialStorage> storages = store.retrieveCredentials(context, getAccount(context, credentials.getUsername()), OTPCredentialStorage.class); for (OTPCredentialStorage storage : new ArrayList<OTPCredentialStorage>(storages)) { if (!CredentialUtils.isCurrentCredential(storage) || !isDeviceStorage(credentials.getDevice(), storage)) { storages.remove(storage); } } return storages; }
private boolean isValid(final IdentityContext context, final TOTPCredentials credentials, final CredentialStore<?> store) { for (OTPCredentialStorage storage : getCredentialStorages(context, credentials, store)) { String secretKey = storage.getSecretKey(); String token = credentials.getToken(); if (this.totp.validate(token, secretKey.getBytes())) { return true; } } return false; }
@Override public void validate(final IdentityContext context, final TOTPCredentials credentials, final CredentialStore<?> store) { super.validate(context, credentials, store); if (Status.VALID.equals(credentials.getStatus()) || Status.EXPIRED.equals(credentials.getStatus())) { if (!isValid(context, credentials, store)) { credentials.setStatus(Status.INVALID); credentials.setValidatedAccount(null); } } }