@Override
    protected void prepareMergedOutputModel(final Map<String, Object> model, final HttpServletRequest request,
                                            final HttpServletResponse response) throws Exception {
        val casResponse = new CasJsonServiceResponse();
        try {
            super.prepareMergedOutputModel(model, request, response);
            if (getAssertionFrom(model) != null) {
                val success = createAuthenticationSuccess(model);
                casResponse.setAuthenticationSuccess(success);
            } else {
                val failure = createAuthenticationFailure(model);
                casResponse.setAuthenticationFailure(failure);
            }
        } catch (final Exception e) {
            val failure = createAuthenticationFailure(model);
            casResponse.setAuthenticationFailure(failure);
        } finally {
            val casModel = new HashMap<String, Object>();
            casModel.put(ATTRIBUTE_NAME_MODEL_SERVICE_RESPONSE, casResponse);
            model.clear();
            model.putAll(casModel);
            if (LoggingUtils.isProtocolMessageLoggerEnabled()) {
                LoggingUtils.protocolMessage("CAS Validation Response",
                    JSON_VIEW.getObjectMapper().writeValueAsString(casModel));
            }
        }
    }
Attribute name in the final model representing the service response.
support/cas-server-support-validation-core/src/main/java/org/apereo/cas/web/view/json/Cas30JsonResponseView.java