@Override
    public Map<String, List<Object>> getConsentableAttributesFrom(final ConsentDecision decision) {
        try {
            val result = this.consentCipherExecutor.decode(decision.getAttributes());
            if (StringUtils.isBlank(result)) {
                LOGGER.warn("Unable to decipher attributes from consent decision [{}]", decision.getId());
                return new HashMap<>();
            }
            val names = EncodingUtils.decodeBase64ToString(result);
            return MAPPER.readValue(JsonValue.readHjson(names).toString(), Map.class);
        } catch (final Exception e) {
            throw new IllegalArgumentException("Could not serialize attributes for consent decision");
        }
    }
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