@Override
    protected void update(final String username, final Collection<CredentialRegistration> givenRecords) {
        if (givenRecords.isEmpty()) {
            LOGGER.debug("No records are provided for [{}] so entry will be removed", username);
            executeModifyOperation(new HashSet<>(), Optional.ofNullable(locateLdapEntryFor(username)));
        } else {
            val records = givenRecords.stream()
                .map(record -> {
                    if (record.getRegistrationTime() == null) {
                        return record.withRegistrationTime(Instant.now(Clock.systemUTC()));
                    }
                    return record;
                })
                .collect(Collectors.toList());
            val results = records.stream()
                .map(Unchecked.function(reg -> WebAuthnUtils.getObjectMapper().writeValueAsString(records)))
                .map(reg -> getCipherExecutor().encode(reg))
                .collect(Collectors.toSet());
            if (!executeModifyOperation(results, Optional.ofNullable(locateLdapEntryFor(username)))) {
                LOGGER.error("Failed to update records for [{}]", username);
            }
        }
    }
This is {@link LdapWebAuthnCredentialRepository}.

@author Misagh Moayyed
@since 6.3.0
support/cas-server-support-webauthn-ldap/src/main/java/org/apereo/cas/webauthn/LdapWebAuthnCredentialRepository.java