protected ExpirationPolicy computeExpirationPolicy() {
        val reset = casProperties.getAuthn().getPm().getReset();
        val numberOfUses = reset.getNumberOfUses();
        val seconds = Beans.newDuration(reset.getExpiration()).toSeconds();

        if (numberOfUses >= 1) {
            LOGGER.debug("Password reset URL shall expire after [{}] uses and in [{}] second(s)", numberOfUses, seconds);
            return new MultiTimeUseOrTimeoutExpirationPolicy(numberOfUses, seconds);
        }

        LOGGER.debug("Password reset URL shall expire in [{}] second(s)", seconds);
        return HardTimeoutExpirationPolicy.builder().timeToKillInSeconds(seconds).build();
    }
This is {@link DefaultPasswordResetUrlBuilder}.

@author Misagh Moayyed
@since 6.6.0
support/cas-server-support-pm-core/src/main/java/org/apereo/cas/pm/impl/DefaultPasswordResetUrlBuilder.java