package org.apereo.cas.web.flow; import org.apereo.cas.support.pac4j.web.flow.DelegatedClientAuthenticationAction; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.web.ErrorViewResolver; import org.springframework.http.HttpStatus; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.Map; import java.util.Optional; /** * This is {@link Pac4jErrorViewResolver}. * * @author Misagh Moayyed * @since 5.0.0 */ public class Pac4jErrorViewResolver implements ErrorViewResolver { @Autowired @Qualifier("conventionErrorViewResolver") private ErrorViewResolver conventionErrorViewResolver; @Override public ModelAndView resolveErrorView(final HttpServletRequest request, final HttpStatus status, final Map<String, Object> map) { final Optional<ModelAndView> mv = DelegatedClientAuthenticationAction.hasDelegationRequestFailed(request, status.value()); return mv.orElseGet(() -> conventionErrorViewResolver.resolveErrorView(request, status, map)); } }