@Bean
        @ConditionalOnAvailableEndpoint
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        public SamlValidateEndpoint samlValidateEndpoint(
            final ConfigurableApplicationContext applicationContext,
            final CasConfigurationProperties casProperties,
            @Qualifier("samlResponseBuilder")
            final ObjectProvider<SamlResponseBuilder> samlResponseBuilder,
            @Qualifier(WebApplicationService.BEAN_NAME_FACTORY)
            final ObjectProvider<ServiceFactory<WebApplicationService>> webApplicationServiceFactory,
            @Qualifier(OpenSamlConfigBean.DEFAULT_BEAN_NAME)
            final ObjectProvider<OpenSamlConfigBean> openSamlConfigBean,
            @Qualifier(ServicesManager.BEAN_NAME)
            final ObjectProvider<ServicesManager> servicesManager,
            @Qualifier(AuthenticationSystemSupport.BEAN_NAME)
            final ObjectProvider<AuthenticationSystemSupport> authenticationSystemSupport,
            @Qualifier(AuditableExecution.AUDITABLE_EXECUTION_REGISTERED_SERVICE_ACCESS)
            final ObjectProvider<AuditableExecution> registeredServiceAccessStrategyEnforcer,
            @Qualifier(PrincipalResolver.BEAN_NAME_PRINCIPAL_RESOLVER)
            final ObjectProvider<PrincipalResolver> defaultPrincipalResolver,
            @Qualifier(PrincipalFactory.BEAN_NAME)
            final ObjectProvider<PrincipalFactory> principalFactory) {
            return new SamlValidateEndpoint(casProperties, applicationContext, servicesManager,
                authenticationSystemSupport, webApplicationServiceFactory, principalFactory,
                samlResponseBuilder, openSamlConfigBean, registeredServiceAccessStrategyEnforcer,
                defaultPrincipalResolver);
        }
This is {@link SamlConfiguration} that creates the necessary OpenSAML context and beans.

@author Misagh Moayyed
@since 5.0.0
support/cas-server-support-saml/src/main/java/org/apereo/cas/config/SamlConfiguration.java