@Override
    public Collection<String> render(final Map<String, Object> attributes) {
        val formattedAttributes = new ArrayList<String>(attributes.size());
        attributes.forEach((key, value) -> {
            val attributeValues = CollectionUtils.toCollection(value)
                .stream()
                .map(Object::toString)
                .collect(Collectors.joining(","));
            val name = CasProtocolAttributesRenderer.sanitizeAttributeName(key);
            formattedAttributes.add(name.concat("=").concat(attributeValues));
        });
        return formattedAttributes;
    }
This is {@link AttributeValuesPerLineProtocolAttributesRenderer}.

@author Misagh Moayyed
@since 6.0.0
support/cas-server-support-validation-core/src/main/java/org/apereo/cas/web/view/attributes/AttributeValuesPerLineProtocolAttributesRenderer.java