package org.apereo.cas.support.pac4j.config; import org.apereo.cas.CentralAuthenticationService; import org.apereo.cas.authentication.AuthenticationSystemSupport; import org.apereo.cas.configuration.CasConfigurationProperties; import org.apereo.cas.support.pac4j.web.flow.DelegatedClientAuthenticationAction; import org.pac4j.core.client.Clients; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.webflow.execution.Action; /** * This is {@link Pac4jConfiguration}. * * @author Misagh Moayyed * @since 5.0.0 */ @Configuration("pac4jConfiguration") @EnableConfigurationProperties(CasConfigurationProperties.class) public class Pac4jConfiguration { @Autowired private CasConfigurationProperties casProperties; @Autowired @Qualifier("defaultAuthenticationSystemSupport") private AuthenticationSystemSupport authenticationSystemSupport; @Autowired @Qualifier("centralAuthenticationService") private CentralAuthenticationService centralAuthenticationService; @Autowired @RefreshScope @Bean @Lazy public Action clientAction(@Qualifier("builtClients") final Clients builtClients) { return new DelegatedClientAuthenticationAction(builtClients, authenticationSystemSupport, centralAuthenticationService, casProperties.getTheme().getParamName(), casProperties.getLocale().getParamName(), casProperties.getAuthn().getPac4j().isAutoRedirect()); } }