org.apereo.cas.web.config.CasSupportActionsAcceptableUsagePolicyConfiguration Maven / Gradle / Ivy
package org.apereo.cas.web.config;
import org.apereo.cas.configuration.CasConfigurationProperties;
import org.apereo.cas.ticket.registry.TicketRegistrySupport;
import org.apereo.cas.web.flow.AcceptableUsagePolicyFormAction;
import org.apereo.cas.web.flow.AcceptableUsagePolicyRepository;
import org.apereo.cas.web.flow.AcceptableUsagePolicyWebflowConfigurer;
import org.apereo.cas.web.flow.CasWebflowConfigurer;
import org.apereo.cas.web.flow.DefaultAcceptableUsagePolicyRepository;
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.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 CasSupportActionsAcceptableUsagePolicyConfiguration}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
@Configuration("casSupportActionsAcceptableUsagePolicyConfiguration")
@EnableConfigurationProperties(CasConfigurationProperties.class)
public class CasSupportActionsAcceptableUsagePolicyConfiguration {
@Autowired
@Qualifier("loginFlowRegistry")
private FlowDefinitionRegistry loginFlowDefinitionRegistry;
@Autowired
private FlowBuilderServices flowBuilderServices;
@Autowired
@Qualifier("defaultTicketRegistrySupport")
private TicketRegistrySupport ticketRegistrySupport;
@Autowired
@Bean
public Action acceptableUsagePolicyFormAction(@Qualifier("acceptableUsagePolicyRepository")
final AcceptableUsagePolicyRepository repository) {
return new AcceptableUsagePolicyFormAction(repository);
}
@ConditionalOnMissingBean(name = "acceptableUsagePolicyWebflowConfigurer")
@Bean
public CasWebflowConfigurer acceptableUsagePolicyWebflowConfigurer() {
return new AcceptableUsagePolicyWebflowConfigurer(flowBuilderServices, loginFlowDefinitionRegistry);
}
@ConditionalOnMissingBean(name = "acceptableUsagePolicyRepository")
@Bean
public AcceptableUsagePolicyRepository acceptableUsagePolicyRepository() {
return new DefaultAcceptableUsagePolicyRepository(ticketRegistrySupport);
}
}