@Override
    protected void renderMergedOutputModel(
        @Nonnull
        final Map model, @Nonnull
        final HttpServletRequest request,
        @Nonnull
        final HttpServletResponse response) throws Exception {
        try (val writer = new StringWriter()) {
            if (this.successResponse) {
                prepareViewModelWithAuthenticationPrincipal(model);
                prepareCasResponseAttributesForViewModel(model);
                writer.write("yes\n" + getPrimaryAuthenticationFrom(model).getPrincipal().getId() + '\n');
                if (model.containsKey(CasProtocolConstants.VALIDATION_CAS_MODEL_ATTRIBUTE_NAME_FORMATTED_ATTRIBUTES)) {
                    val attributes = (Collection) model.get(CasProtocolConstants.VALIDATION_CAS_MODEL_ATTRIBUTE_NAME_FORMATTED_ATTRIBUTES);
                    attributes.forEach(attr -> {
                        writer.write(attr.toString());
                        writer.write('\n');
                    });
                }
            } else {
                writer.write("no\n\n");
            }
            val message = writer.toString();
            LoggingUtils.protocolMessage("CAS v1 Response", Map.of(), message);
            response.setContentType(MediaType.TEXT_PLAIN_VALUE);
            response.getWriter().write(message);
        }
    }
Custom View to Return the CAS 1.0 Protocol Response. Implemented as a view
class rather than a JSP (like CAS 2.0 spec) because of the requirement of the
line feeds to be "\n".

@author Scott Battaglia
@since 3.0.0
support/cas-server-support-validation-core/src/main/java/org/apereo/cas/web/view/Cas10ResponseView.java