package org.apereo.cas.web.flow.config; import org.apereo.cas.configuration.CasConfigurationProperties; import org.apereo.cas.web.flow.CasWebflowConfigurer; import org.apereo.cas.web.flow.Pac4jErrorViewResolver; import org.apereo.cas.web.flow.Pac4jWebflowConfigurer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.web.ErrorViewResolver; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.webflow.definition.registry.FlowDefinitionRegistry; import org.springframework.webflow.engine.builder.support.FlowBuilderServices; import org.springframework.webflow.execution.Action; /** * This is {@link Pac4jWebflowConfiguration}. * * @author Misagh Moayyed * @since 5.0.0 */ @Configuration("pac4jWebflowConfiguration") @EnableConfigurationProperties(CasConfigurationProperties.class) public class Pac4jWebflowConfiguration { @Autowired @Qualifier("loginFlowRegistry") private FlowDefinitionRegistry loginFlowDefinitionRegistry; @Autowired private FlowBuilderServices flowBuilderServices; @Autowired @Qualifier("saml2ClientLogoutAction") private Action saml2ClientLogoutAction; @Autowired @Qualifier("logoutFlowRegistry") private FlowDefinitionRegistry logoutFlowDefinitionRegistry; @ConditionalOnMissingBean(name = "pac4jWebflowConfigurer") @Bean public CasWebflowConfigurer pac4jWebflowConfigurer() { return new Pac4jWebflowConfigurer(flowBuilderServices, loginFlowDefinitionRegistry, logoutFlowDefinitionRegistry, saml2ClientLogoutAction); } @Bean public ErrorViewResolver pac4jErrorViewResolver() { return new Pac4jErrorViewResolver(); } }