@Override
    public boolean doesAttributeReleaseRequireConsent(final ConsentDecision decision,
                                                      final Map<String, List<Object>> attributes) {
        val consentAttributes = getConsentableAttributesFrom(decision);

        if (decision.getOptions() == ConsentReminderOptions.ATTRIBUTE_NAME) {
            val consentAttributesHash = sha512ConsentAttributeNames(consentAttributes);
            val currentAttributesHash = sha512ConsentAttributeNames(attributes);
            return !StringUtils.equals(consentAttributesHash, currentAttributesHash);
        }

        if (decision.getOptions() == ConsentReminderOptions.ATTRIBUTE_VALUE) {
            val consentAttributesHash = sha512ConsentAttributeNames(consentAttributes);
            val currentAttributesHash = sha512ConsentAttributeNames(attributes);

            val consentAttributeValuesHash = sha512ConsentAttributeValues(consentAttributes);
            val currentAttributeValuesHash = sha512ConsentAttributeValues(attributes);

            return !StringUtils.equals(consentAttributesHash, currentAttributesHash)
                || !StringUtils.equals(consentAttributeValuesHash, currentAttributeValuesHash);
        }
        return true;
    }
This is {@link DefaultConsentDecisionBuilder}.

@author Misagh Moayyed
@since 5.2.0
support/cas-server-support-consent-core/src/main/java/org/apereo/cas/consent/DefaultConsentDecisionBuilder.java