package org.apereo.cas.web.view;
import org.apereo.cas.CasViewConstants;
import org.apereo.cas.authentication.ProtocolAttributeEncoder;
import org.apereo.cas.services.ServicesManager;
import org.apereo.cas.services.web.view.AbstractDelegatingCasView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.View;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* Renders and prepares CAS2 views. This view is responsible
* to simply just prep the base model, and delegates to
* a the real view to render the final output.
*
* @author Misagh Moayyed
* @since 4.1.0
*/
public class Cas20ResponseView extends AbstractDelegatingCasView {
private static final Logger LOGGER = LoggerFactory.getLogger(Cas20ResponseView.class);
public Cas20ResponseView(final boolean successResponse,
final ProtocolAttributeEncoder protocolAttributeEncoder,
final ServicesManager servicesManager,
final String authenticationContextAttribute,
final View view) {
super(successResponse, protocolAttributeEncoder, servicesManager, authenticationContextAttribute, view);
}
@Override
protected void prepareMergedOutputModel(final Map<String, Object> model, final HttpServletRequest request,
final HttpServletResponse response) throws Exception {
super.putIntoModel(model, CasViewConstants.MODEL_ATTRIBUTE_NAME_PRINCIPAL, getPrincipal(model));
super.putIntoModel(model, CasViewConstants.MODEL_ATTRIBUTE_NAME_CHAINED_AUTHENTICATIONS, getChainedAuthentications(model));
super.putIntoModel(model, CasViewConstants.MODEL_ATTRIBUTE_NAME_PRIMARY_AUTHENTICATION, getPrimaryAuthenticationFrom(model));
LOGGER.debug("Prepared CAS response output model with attribute names [{}]", model.keySet());
}
}