private void fetchStatusAndUpdate(final AcmeJsonResource resource,
                                      final Supplier<Status> statusSupplier) throws Exception {
        val acme = casProperties.getAcme();
        var attempts = acme.getRetryAttempts();

        while (statusSupplier.get() != Status.VALID && attempts-- > 0) {
            if (statusSupplier.get() == Status.INVALID) {
                throw new AcmeException("Order failed");
            }
            val timeout = Beans.newDuration(acme.getRetryInternal()).toMillis();
            Thread.sleep(timeout);
            resource.update();
        }
    }
Finds your {@link Account} at the ACME server. It will be found by your user's
public key. If your key is not known to the server yet, a new account will be
created.

@param session {@link Session} to bind with
@return {@link Account}
support/cas-server-support-acme/src/main/java/org/apereo/cas/acme/DefaultAcmeCertificateManager.java