package io.cattle.platform.app; import io.cattle.platform.api.handler.AddClientIpHeader; import io.cattle.platform.api.handler.DeferredActionsHandler; import io.cattle.platform.api.handler.EventNotificationHandler; import io.cattle.platform.bootstrap.script.BootstrapScriptsHandler; import io.cattle.platform.core.util.SettingsUtils; import io.cattle.platform.docker.api.transform.TransformInspect; import io.cattle.platform.docker.machine.api.MachineLinkFilter; import io.cattle.platform.docker.machine.api.addon.BaseMachineConfig; import io.cattle.platform.docker.machine.api.filter.MachineValidationFilter; import io.cattle.platform.docker.machine.api.filter.MachineOutputFilter; import io.cattle.platform.docker.machine.launch.SecretsApiLauncher; import io.cattle.platform.docker.machine.launch.WebsocketProxyLauncher; import io.cattle.platform.extension.impl.EMUtils; import io.cattle.platform.extension.impl.ExtensionManagerImpl; import io.cattle.platform.host.api.HostApiProxyTokenImpl; import io.cattle.platform.host.api.HostApiProxyTokenManager; import io.cattle.platform.host.api.HostApiPublicCAScriptHandler; import io.cattle.platform.host.api.HostApiPublicKeyScriptHandler; import io.cattle.platform.host.stats.api.StatsAccess; import io.cattle.platform.host.stats.api.StatsOutputFilter; import io.cattle.platform.iaas.api.auditing.AuditLogOutPutFilter; import io.cattle.platform.iaas.api.auditing.AuditLogsRequestHandler; import io.cattle.platform.iaas.api.auditing.ResourceIdInputFilter; import io.cattle.platform.iaas.api.auditing.ResourceIdOutputFilter; import io.cattle.platform.iaas.api.auth.AchaiusPolicyOptionsFactory; import io.cattle.platform.iaas.api.auth.dao.impl.AuthDaoImpl; import io.cattle.platform.iaas.api.auth.dao.impl.AuthTokenDaoImpl; import io.cattle.platform.iaas.api.auth.dynamic.DynamicSchemaAuthorizationProvider; import io.cattle.platform.iaas.api.auth.identity.AccountOutputFilter; import io.cattle.platform.iaas.api.auth.identity.IdentityManager; import io.cattle.platform.iaas.api.auth.identity.TokenResourceManager; import io.cattle.platform.iaas.api.auth.impl.AgentQualifierAuthorizationProvider; import io.cattle.platform.iaas.api.auth.impl.ApiAuthenticator; import io.cattle.platform.iaas.api.auth.impl.DefaultAuthorizationProvider; import io.cattle.platform.iaas.api.auth.integration.azure.AzureConfigManager; import io.cattle.platform.iaas.api.auth.integration.azure.AzureIdentityProvider; import io.cattle.platform.iaas.api.auth.integration.azure.AzureRESTClient; import io.cattle.platform.iaas.api.auth.integration.azure.AzureTokenCreator; import io.cattle.platform.iaas.api.auth.integration.azure.AzureTokenUtil; import io.cattle.platform.iaas.api.auth.integration.external.ExternalServiceAuthProvider; import io.cattle.platform.iaas.api.auth.integration.external.ExternalServiceTokenUtil; import io.cattle.platform.iaas.api.auth.integration.internal.rancher.AdminAuthLookUp; import io.cattle.platform.iaas.api.auth.integration.internal.rancher.BasicAuthImpl; import io.cattle.platform.iaas.api.auth.integration.internal.rancher.RancherIdentityProvider; import io.cattle.platform.iaas.api.auth.integration.internal.rancher.TokenAccountLookup; import io.cattle.platform.iaas.api.auth.integration.internal.rancher.TokenAuthLookup; import io.cattle.platform.iaas.api.auth.integration.ldap.OpenLDAP.OpenLDAPConfigManager; import io.cattle.platform.iaas.api.auth.integration.ldap.OpenLDAP.OpenLDAPConstantsConfig; import io.cattle.platform.iaas.api.auth.integration.ldap.OpenLDAP.OpenLDAPIdentityProvider; import io.cattle.platform.iaas.api.auth.integration.ldap.OpenLDAP.OpenLDAPTokenCreator; import io.cattle.platform.iaas.api.auth.integration.ldap.OpenLDAP.OpenLDAPUtils; import io.cattle.platform.iaas.api.auth.integration.ldap.ad.ADConfigManager; import io.cattle.platform.iaas.api.auth.integration.ldap.ad.ADConstantsConfig; import io.cattle.platform.iaas.api.auth.integration.ldap.ad.ADIdentityProvider; import io.cattle.platform.iaas.api.auth.integration.ldap.ad.ADTokenCreator; import io.cattle.platform.iaas.api.auth.integration.ldap.ad.ADTokenUtils; import io.cattle.platform.iaas.api.auth.integration.local.LocalAuthConfigManager; import io.cattle.platform.iaas.api.auth.integration.local.LocalAuthTokenCreator; import io.cattle.platform.iaas.api.auth.integration.local.LocalAuthTokenUtils; import io.cattle.platform.iaas.api.auth.projects.ProjectMemberResourceManager; import io.cattle.platform.iaas.api.auth.projects.ProjectResourceManager; import io.cattle.platform.iaas.api.auth.projects.SetProjectMembersActionHandler; import io.cattle.platform.iaas.api.change.impl.ResourceChangeEventListenerImpl; import io.cattle.platform.iaas.api.change.impl.ResourceChangeEventProcessor; import io.cattle.platform.iaas.api.credential.ApiKeyOutputFilter; import io.cattle.platform.iaas.api.credential.SshKeyOutputFilter; import io.cattle.platform.iaas.api.filter.account.AccountFilter; import io.cattle.platform.iaas.api.filter.agent.AgentFilter; import io.cattle.platform.iaas.api.filter.apikey.ApiKeyFilter; import io.cattle.platform.iaas.api.filter.compat.CompatibilityOutputFilter; import io.cattle.platform.iaas.api.filter.containerevent.ContainerEventFilter; import io.cattle.platform.iaas.api.filter.dynamic.schema.DynamicSchemaFilter; import io.cattle.platform.iaas.api.filter.externalevent.ExternalEventFilter; import io.cattle.platform.iaas.api.filter.hosts.HostsFilter; import io.cattle.platform.iaas.api.filter.instance.InstanceAgentValidationFilter; import io.cattle.platform.iaas.api.filter.instance.InstanceImageValidationFilter; import io.cattle.platform.iaas.api.filter.instance.InstanceOutputFilter; import io.cattle.platform.iaas.api.filter.instance.InstancePortsValidationFilter; import io.cattle.platform.iaas.api.filter.instance.InstanceVolumeCleanupStrategyValidationFilter; import io.cattle.platform.iaas.api.filter.machinedriver.MachineDriverFilter; import io.cattle.platform.iaas.api.filter.registry.RegistryServerAddressFilter; import io.cattle.platform.iaas.api.filter.secret.SecretValidationFilter; import io.cattle.platform.iaas.api.filter.service.ServiceMappingsOutputFilter; import io.cattle.platform.iaas.api.filter.serviceevent.ServiceEventFilter; import io.cattle.platform.iaas.api.filter.snapshot.SnapshotValidationFilter; import io.cattle.platform.iaas.api.filter.ssl.CertificateCreateValidationFilter; import io.cattle.platform.iaas.api.filter.stack.StackOutputFilter; import io.cattle.platform.iaas.api.filter.storagepool.StoragePoolOutputFilter; import io.cattle.platform.iaas.api.filter.volume.VolumeOutputFilter; import io.cattle.platform.iaas.api.manager.DataManager; import io.cattle.platform.iaas.api.manager.HaConfigManager; import io.cattle.platform.iaas.api.manager.InstanceManager; import io.cattle.platform.iaas.api.manager.HostTemplateManager; import io.cattle.platform.iaas.api.manager.ProcessPoolManager; import io.cattle.platform.iaas.api.manager.ProcessSummaryManager; import io.cattle.platform.iaas.api.manager.SecretManager; import io.cattle.platform.iaas.api.manager.ServiceManager; import io.cattle.platform.iaas.api.manager.VolumeManager; import io.cattle.platform.iaas.api.object.postinit.AccountFieldPostInitHandler; import io.cattle.platform.iaas.api.process.ProcessInstanceReplayHandler; import io.cattle.platform.iaas.api.request.handler.ConfigurableRequestOptionsParser; import io.cattle.platform.iaas.api.request.handler.GenericWhitelistedProxy; import io.cattle.platform.iaas.api.request.handler.IdFormatterRequestHandler; import io.cattle.platform.iaas.api.request.handler.PostChildLinkHandler; import io.cattle.platform.iaas.api.request.handler.RequestReRouterHandler; import io.cattle.platform.iaas.api.request.handler.Scripts; import io.cattle.platform.iaas.api.request.handler.SecretsApiRequestHandler; import io.cattle.platform.iaas.api.user.preference.UserPreferenceDaoImpl; import io.cattle.platform.iaas.api.user.preference.UserPreferenceFilter; import io.cattle.platform.iaas.api.volume.VolumeCreateValidationFilter; import io.cattle.platform.iaas.api.volume.VolumeRevertRestoreActionOutputFilter; import io.cattle.platform.iaas.api.volume.VolumeRevertRestoreValidationFilter; import io.cattle.platform.object.meta.TypeSet; import io.cattle.platform.register.api.RegisterOutputFilter; import io.cattle.platform.register.api.RegisterScriptHandler; import io.cattle.platform.register.api.RegistrationTokenAccountLookup; import io.cattle.platform.register.api.RegistrationTokenOutputFilter; import io.cattle.platform.register.auth.impl.RegistrationAuthTokenManagerImpl; import io.cattle.platform.register.dao.impl.RegistrationTokenAuthDaoImpl; import io.cattle.platform.schema.doc.DocumentationLoader; import io.cattle.platform.servicediscovery.api.filter.ServiceStackNetworkDriverFilter; import io.cattle.platform.servicediscovery.api.filter.ServiceStackStorageDriverFilter; import io.cattle.platform.spring.resource.SpringUrlListFactory; import io.cattle.platform.systemstack.api.AccountCreateFilter; import io.github.ibuildthecloud.gdapi.doc.FieldDocumentation; import io.github.ibuildthecloud.gdapi.doc.TypeDocumentation; import io.github.ibuildthecloud.gdapi.doc.handler.DocumentationHandler; import io.github.ibuildthecloud.gdapi.id.IdentityFormatter; import io.github.ibuildthecloud.gdapi.json.JacksonMapper; import io.github.ibuildthecloud.gdapi.json.JsonMapper; import io.github.ibuildthecloud.gdapi.request.handler.ApiRequestHandler; import io.github.ibuildthecloud.gdapi.request.handler.BodyParserRequestHandler; import io.github.ibuildthecloud.gdapi.request.handler.CSRFCookieHandler; import io.github.ibuildthecloud.gdapi.request.handler.ExceptionHandler; import io.github.ibuildthecloud.gdapi.request.handler.NotFoundHandler; import io.github.ibuildthecloud.gdapi.request.handler.ParseCollectionAttributes; import io.github.ibuildthecloud.gdapi.request.handler.ResourceManagerRequestHandler; import io.github.ibuildthecloud.gdapi.request.handler.SchemasHandler; import io.github.ibuildthecloud.gdapi.request.handler.VersionHandler; import io.github.ibuildthecloud.gdapi.request.handler.VersionsHandler; import io.github.ibuildthecloud.gdapi.request.handler.write.DefaultReadWriteApiDelegate; import io.github.ibuildthecloud.gdapi.request.handler.write.ReadWriteApiDelegate; import io.github.ibuildthecloud.gdapi.request.handler.write.ReadWriteApiHandler; import io.github.ibuildthecloud.gdapi.request.resource.ResourceManagerLocator; import io.github.ibuildthecloud.gdapi.response.HtmlResponseWriter; import io.github.ibuildthecloud.gdapi.response.JsonResponseWriter; import io.github.ibuildthecloud.gdapi.response.ResponseObjectConverter; import io.github.ibuildthecloud.gdapi.validation.ResourceManagerReferenceValidator; import io.github.ibuildthecloud.gdapi.validation.ValidationHandler; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Arrays; import java.util.List; import java.util.Properties; import java.util.concurrent.ExecutorService; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class IaasApiConfig { @Bean TransformInspect TransformInspect() { return new TransformInspect(); } @Bean TypeSet MachineAddonTypeSet() { TypeSet typeSet = new TypeSet("MachineAddonTypeSet"); typeSet.setTypeClasses(Arrays.<Class<?>>asList( BaseMachineConfig.class )); return typeSet; } @Bean MachineValidationFilter MachineValidationFilter() { return new MachineValidationFilter(); } @Bean MachineOutputFilter MachineOutputFilter() { return new MachineOutputFilter(); } @Bean MachineLinkFilter MachineLinkFilter() { return new MachineLinkFilter(); } @Bean AuditLogsRequestHandler AuditLogsRequestHandler() { return new AuditLogsRequestHandler(); } @Bean ResourceIdOutputFilter ResourceIdOutputFilter() { return new ResourceIdOutputFilter(); } @Bean AuditLogOutPutFilter AuditLogOutPutFilter() { return new AuditLogOutPutFilter(); } @Bean ResourceIdInputFilter ResourceIdInputFilter() { return new ResourceIdInputFilter(); } @Bean HostApiPublicKeyScriptHandler HostApiPublicKeyScriptHandler() { return new HostApiPublicKeyScriptHandler(); } @Bean HostApiPublicCAScriptHandler HostApiPublicCAScriptHandler() { return new HostApiPublicCAScriptHandler(); } @Bean HostApiProxyTokenManager HostApiProxyTokenManager() { return new HostApiProxyTokenManager(); } @Bean WebsocketProxyLauncher WebsocketProxyLauncher() { return new WebsocketProxyLauncher(); } @Bean SecretsApiLauncher SecretsApiLauncher() { return new SecretsApiLauncher(); } @Bean TypeSet ProxyTokenTypeSet() { TypeSet typeSet = new TypeSet("ProxyTokenTypeSet"); typeSet.setTypeClasses(Arrays.<Class<?>>asList( HostApiProxyTokenImpl.class )); return typeSet; } @Bean StatsOutputFilter StatsOutputFilter() { return new StatsOutputFilter(); } @Bean TypeSet HostApiTypes() { TypeSet typeSet = new TypeSet("HostApiTypes"); typeSet.setTypeClasses(Arrays.<Class<?>>asList( StatsAccess.class )); return typeSet; } @Bean DataManager DataManager() { return new DataManager(); } @Bean ProcessSummaryManager ProcessSummaryManager() { return new ProcessSummaryManager(); } @Bean HaConfigManager HaConfigManager(@Qualifier("FreemarkerConfig") freemarker.template.Configuration config) { HaConfigManager haConfig = new HaConfigManager(); haConfig.setConfiguration(config); return haConfig; } @Bean ServiceManager ServiceManager() { return new ServiceManager(); } @Bean SecretManager SecretManager() { return new SecretManager(); } @Bean HostTemplateManager MachineDriverCredentialManager() { return new HostTemplateManager(); } @Bean InstanceManager InstanceManager() { return new InstanceManager(); } @Bean ProcessPoolManager ProcessPoolManager() { return new ProcessPoolManager(); } @Bean VolumeManager VolumeManager() { return new VolumeManager(); } @Bean ApiKeyFilter ApiKeyFilter() { return new ApiKeyFilter(); } @Bean CompatibilityOutputFilter CompatibilityOutputFilter() { return new CompatibilityOutputFilter(); } @Bean AgentFilter AgentFilter() { return new AgentFilter(); } @Bean InstanceAgentValidationFilter InstanceAgentValidationFilter() { return new InstanceAgentValidationFilter(); } @Bean InstanceImageValidationFilter InstanceImageValidationFilter() { return new InstanceImageValidationFilter(); } @Bean InstancePortsValidationFilter InstancePortsValidationFilter() { return new InstancePortsValidationFilter(); } @Bean InstanceVolumeCleanupStrategyValidationFilter InstanceVolumeCleanupStrategyValidationFilter() { return new InstanceVolumeCleanupStrategyValidationFilter(); } @Bean SshKeyOutputFilter SshKeyOutputFilter() { return new SshKeyOutputFilter(); } @Bean ApiKeyOutputFilter ApiKeyOutputFilter() { return new ApiKeyOutputFilter(); } @Bean HostsFilter HostsFilter() { return new HostsFilter(); } @Bean StoragePoolOutputFilter StoragePoolOutputFilter() { return new StoragePoolOutputFilter(); } @Bean InstanceOutputFilter InstanceOutputFilter() { return new InstanceOutputFilter(); } @Bean VolumeOutputFilter VolumeOutputFilter() { return new VolumeOutputFilter(); } @Bean ContainerEventFilter ContainerEventFilter() { return new ContainerEventFilter(); } @Bean ExternalEventFilter ExternalEventFilter() { return new ExternalEventFilter(); } @Bean RegistryServerAddressFilter RegistryServerAddressFilter() { return new RegistryServerAddressFilter(); } @Bean SecretValidationFilter SecretValidationFilter() { return new SecretValidationFilter(); } @Bean ServiceEventFilter ServiceEventFilter() { return new ServiceEventFilter(); } @Bean SnapshotValidationFilter SnapshotValidationFilter() { return new SnapshotValidationFilter(); } @Bean CertificateCreateValidationFilter CertificateCreateValidationFilter() { return new CertificateCreateValidationFilter(); } @Bean StackOutputFilter StackOutputFilter() { return new StackOutputFilter(); } @Bean ProcessInstanceReplayHandler ProcessInstanceReplayHandler() { return new ProcessInstanceReplayHandler(); } @Bean UserPreferenceFilter UserPreferenceFilter() { return new UserPreferenceFilter(); } @Bean UserPreferenceDaoImpl UserPreferenceDaoImpl() { return new UserPreferenceDaoImpl(); } @Bean DynamicSchemaFilter DynamicSchemaFilter() { return new DynamicSchemaFilter(); } @Bean AccountOutputFilter AccountOutputFilter() { return new AccountOutputFilter(); } @Bean AccountFilter AccountFilter() { return new AccountFilter(); } @Bean AccountCreateFilter AccountCreateFilter() { return new AccountCreateFilter(); } @Bean MachineDriverFilter MachineDriverFilter() { return new MachineDriverFilter(); } @Bean ServiceMappingsOutputFilter ServiceMappingsOutputFilter() { return new ServiceMappingsOutputFilter(); } @Bean ServiceStackStorageDriverFilter ServiceStackStorageDriverFilter() { return new ServiceStackStorageDriverFilter(); } @Bean ServiceStackNetworkDriverFilter ServiceStackNetworkDriverFilter() { return new ServiceStackNetworkDriverFilter(); } @Bean AccountFieldPostInitHandler AccountFieldPostInitHandler() { return new AccountFieldPostInitHandler(); } @Bean Scripts Scripts(ExtensionManagerImpl em) { return new Scripts(); } @Bean BodyParserRequestHandler BodyParserRequestHandler(ExtensionManagerImpl em) { BodyParserRequestHandler handler = new BodyParserRequestHandler(); EMUtils.add(em, ApiRequestHandler.class, handler, "BodyParserRequestHandler"); return handler; } @Bean ConfigurableRequestOptionsParser ConfigurableRequestOptionsParser(ExtensionManagerImpl em) { ConfigurableRequestOptionsParser handler = new ConfigurableRequestOptionsParser(); EMUtils.add(em, ApiRequestHandler.class, handler, "ConfigurableRequestOptionsParser"); return handler; } @Bean AddClientIpHeader AddClientIpHeader(ExtensionManagerImpl em) { AddClientIpHeader handler = new AddClientIpHeader(); EMUtils.add(em, ApiRequestHandler.class, handler, "AddClientIpHeader"); return handler; } @Bean IdFormatterRequestHandler IdFormatterRequestHandler(ExtensionManagerImpl em) { IdFormatterRequestHandler handler = new IdFormatterRequestHandler(); handler.setPlainFormatter(new IdentityFormatter()); EMUtils.add(em, ApiRequestHandler.class, handler, "IdFormatterRequestHandler"); return handler; } @Bean RequestReRouterHandler RequestReRouterHandler(ExtensionManagerImpl em) { RequestReRouterHandler handler = new RequestReRouterHandler(); EMUtils.add(em, ApiRequestHandler.class, handler, "RequestReRouterHandler"); return handler; } @Bean CSRFCookieHandler CSRFCookieHandler(ExtensionManagerImpl em) { CSRFCookieHandler handler = new CSRFCookieHandler(); EMUtils.add(em, ApiRequestHandler.class, handler, "CSRFCookieHandler"); return handler; } @Bean PostChildLinkHandler PostChildLinkHandler(ExtensionManagerImpl em) { PostChildLinkHandler handler = new PostChildLinkHandler(); EMUtils.add(em, ApiRequestHandler.class, handler, "PostChildLinkHandler"); return handler; } @Bean ParseCollectionAttributes ParseCollectionAttributes(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new ParseCollectionAttributes()); } @Bean VersionsHandler VersionsHandler(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new VersionsHandler()); } @Bean SchemasHandler SchemasHandler(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new SchemasHandler()); } @Bean ResourceManagerReferenceValidator ResourceManagerReferenceValidator() { return new ResourceManagerReferenceValidator(); } @Bean VersionHandler VersionHandler(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new VersionHandler()); } @Bean ValidationHandler ValidationHandler(ExtensionManagerImpl em, ResourceManagerReferenceValidator validator) { ValidationHandler handler = EMUtils.add(em, ApiRequestHandler.class, new ValidationHandler()); handler.setReferenceValidator(validator); return handler; } @Bean ReadWriteApiDelegate DefaultReadWriteApiDelegate() { return new DefaultReadWriteApiDelegate(); } @Bean ReadWriteApiHandler ResourceManagerRequestHandler(ExtensionManagerImpl em, ReadWriteApiDelegate delegate, ResourceManagerLocator locator) { ResourceManagerRequestHandler inner = new ResourceManagerRequestHandler(); inner.setResourceManagerLocator(locator); ReadWriteApiHandler handler = EMUtils.add(em, ApiRequestHandler.class, new ReadWriteApiHandler()); delegate.setHandlers(Arrays.<ApiRequestHandler>asList( inner )); handler.setDelegate(delegate); return handler; } @Bean ResourceManagerRequestHandler InnerResourceManagerRequestHandler() { return new ResourceManagerRequestHandler(); } @Bean NotFoundHandler NotFoundHandler(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new NotFoundHandler()); } @Bean EventNotificationHandler EventNotificationHandler(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new EventNotificationHandler()); } @Bean ResponseObjectConverter ResponseObjectConverter(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new ResponseObjectConverter()); } @Bean ExceptionHandler ExceptionHandler(ExtensionManagerImpl em) throws IOException { Properties props = new Properties(); try(InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("api/messages.properties")) { props.load(is); } ExceptionHandler handler = EMUtils.add(em, ApiRequestHandler.class, new ExceptionHandler()); handler.setStandardErrorCodes(props); handler.setMessageLocation("api/messages"); return handler; } @Bean JsonResponseWriter JsonResponseWriter(ExtensionManagerImpl em, JsonMapper jsonMapper) { JsonResponseWriter writer = EMUtils.add(em, ApiRequestHandler.class, new JsonResponseWriter()); writer.setJsonMapper(jsonMapper); return writer; } @Bean HtmlResponseWriter HtmlResponseWriter(ExtensionManagerImpl em) { HtmlResponseWriter writer = EMUtils.add(em, ApiRequestHandler.class, new HtmlResponseWriter()); JacksonMapper jacksonMapper = new JacksonMapper(); jacksonMapper.setEscapeForwardSlashes(true); jacksonMapper.init(); writer.setJsonMapper(jacksonMapper); return writer; } @Bean DeferredActionsHandler DeferredActionsHandler(ExtensionManagerImpl em) { return EMUtils.add(em, ApiRequestHandler.class, new DeferredActionsHandler()); } @Bean DynamicSchemaAuthorizationProvider DefaultAuthorizationProvider(@Qualifier("defaultAuthorizationProvider") DefaultAuthorizationProvider defaultProvider) { DynamicSchemaAuthorizationProvider provider = new DynamicSchemaAuthorizationProvider(); provider.setAuthorizationProvider(defaultProvider); return provider; } @Bean DefaultAuthorizationProvider defaultAuthorizationProvider() { return new DefaultAuthorizationProvider(); } @Bean AgentQualifierAuthorizationProvider AgentQualifierAuthorizationProvider() { return new AgentQualifierAuthorizationProvider(); } @Bean AchaiusPolicyOptionsFactory AchaiusPolicyOptionsFactory() { return new AchaiusPolicyOptionsFactory(); } @Bean ResourceChangeEventListenerImpl ResourceChangeEventListenerImpl() { return new ResourceChangeEventListenerImpl(); } @Bean ResourceChangeEventProcessor ResourceChangeEventProcessor() { return new ResourceChangeEventProcessor(); } @Bean TypeSet DocTypes() { TypeSet typeSet = new TypeSet("DocTypes"); typeSet.setTypeClasses(Arrays.<Class<?>>asList( TypeDocumentation.class, FieldDocumentation.class )); return typeSet; } @Bean DocumentationHandler DocumentationHandler() { return new DocumentationHandler(); } @Bean SpringUrlListFactory DocsLocation() { SpringUrlListFactory factory = new SpringUrlListFactory(); factory.setResources(Arrays.asList( "classpath:schema/base/documentation.json", "classpath*:schema/base/documentation.json.d/**/*.json" )); return factory; } @SuppressWarnings("unchecked") @Bean DocumentationLoader DocumentationLoader(@Qualifier("DocsLocation") List<?> resources) { DocumentationLoader loader = new DocumentationLoader(); loader.setResources((List<URL>) resources); return loader; } @Bean TokenResourceManager TokenResourceManager() { return new TokenResourceManager(); } @Bean ApiAuthenticator ApiAuthenticator() { return new ApiAuthenticator(); } @Bean AuthDaoImpl AuthDaoImpl() { return new AuthDaoImpl(); } @Bean BasicAuthImpl BasicAuthImpl() { return new BasicAuthImpl(); } @Bean AdminAuthLookUp AdminAuthLookUp() { return new AdminAuthLookUp(); } @Bean RancherIdentityProvider RancherIdentityProvider() { return new RancherIdentityProvider(); } @Bean ProjectResourceManager ProjectResourceManager() { return new ProjectResourceManager(); } @Bean ProjectMemberResourceManager ProjectMemberResourceManager() { return new ProjectMemberResourceManager(); } @Bean SetProjectMembersActionHandler SetProjectMembersActionHandler() { return new SetProjectMembersActionHandler(); } @Bean TokenAuthLookup TokenAuthLookup() { return new TokenAuthLookup(); } @Bean ExternalServiceAuthProvider ExternalServiceAuthProvider() { return new ExternalServiceAuthProvider(); } @Bean ExternalServiceTokenUtil ExternalServiceTokenUtil() { return new ExternalServiceTokenUtil(); } @Bean TokenAccountLookup TokenAccountLookup() { return new TokenAccountLookup(); } @Bean GenericWhitelistedProxy NoAuthenticationProxy() { GenericWhitelistedProxy proxy = new GenericWhitelistedProxy("NoAuthenticationProxy"); proxy.setNoAuthProxy("true"); proxy.setAllowedPaths(Arrays.asList( "/v1-auth/saml", "/v1-webhooks/endpoint")); return proxy; } @Bean SecretsApiRequestHandler SecretsApiRequestHandler() { return new SecretsApiRequestHandler(); } @Bean GenericWhitelistedProxy GenericWhitelistedProxy() { return new GenericWhitelistedProxy("GenericWhitelistedProxy"); } @Bean ADIdentityProvider ADIdentityProvider(@Qualifier("CoreExecutorService") ExecutorService es) { ADIdentityProvider provider = new ADIdentityProvider(); provider.setExecutorService(es); return provider; } @Bean OpenLDAPIdentityProvider OpenLDAPIdentityProvider(@Qualifier("CoreExecutorService") ExecutorService es) { OpenLDAPIdentityProvider provider = new OpenLDAPIdentityProvider(); provider.setExecutorService(es); return provider; } @Bean ADTokenCreator ADTokenCreator() { return new ADTokenCreator(); } @Bean ADTokenUtils ADTokenUtils() { return new ADTokenUtils(); } @Bean ADConfigManager ADConfigManager() { return new ADConfigManager(); } @Bean ADConstantsConfig ADConstantsConfig() { return new ADConstantsConfig(); } @Bean OpenLDAPTokenCreator OpenLDAPTokenCreator() { return new OpenLDAPTokenCreator(); } @Bean OpenLDAPUtils OpenLDAPUtils() { return new OpenLDAPUtils(); } @Bean OpenLDAPConfigManager OpenLDAPConfigManager() { return new OpenLDAPConfigManager(); } @Bean OpenLDAPConstantsConfig OpenLDAPConstantsConfig() { return new OpenLDAPConstantsConfig(); } @Bean SettingsUtils SettingsUtils() { return new SettingsUtils(); } @Bean IdentityManager IdentityManager(@Qualifier("CoreExecutorService") ExecutorService es) { IdentityManager manager = new IdentityManager(); manager.setExecutorService(es); return manager; } @Bean AuthTokenDaoImpl AuthTokenDaoImpl() { return new AuthTokenDaoImpl(); } @Bean LocalAuthConfigManager LocalAuthConfigManager() { return new LocalAuthConfigManager(); } @Bean LocalAuthTokenCreator LocalAuthTokenCreator() { return new LocalAuthTokenCreator(); } @Bean LocalAuthTokenUtils LocalAuthTokenUtils() { return new LocalAuthTokenUtils(); } @Bean AzureIdentityProvider AzureIdentityProvider() { return new AzureIdentityProvider(); } @Bean AzureTokenCreator AzureTokenCreator() { return new AzureTokenCreator(); } @Bean AzureTokenUtil AzureTokenUtil() { return new AzureTokenUtil(); } @Bean AzureConfigManager AzureConfigManager() { return new AzureConfigManager(); } @Bean AzureRESTClient AzureRESTClient() { return new AzureRESTClient(); } @Bean BootstrapScriptsHandler BootstrapScriptsHandler() { return new BootstrapScriptsHandler(); } @Bean RegistrationTokenOutputFilter RegistrationTokenOutputFilter() { return new RegistrationTokenOutputFilter(); } @Bean RegisterOutputFilter RegisterOutputFilter() { return new RegisterOutputFilter(); } @Bean RegisterScriptHandler RegisterScriptHandler() { return new RegisterScriptHandler(); } @Bean RegistrationTokenAccountLookup RegistrationTokenAccountLookup() { return new RegistrationTokenAccountLookup(); } @Bean RegistrationAuthTokenManagerImpl RegistrationAuthTokenManagerImpl() { return new RegistrationAuthTokenManagerImpl(); } @Bean RegistrationTokenAuthDaoImpl RegistrationTokenAuthDaoImpl() { return new RegistrationTokenAuthDaoImpl(); } @Bean VolumeRevertRestoreActionOutputFilter VolumeRevertRestoreActionOutputFilter() { return new VolumeRevertRestoreActionOutputFilter(); } @Bean VolumeRevertRestoreValidationFilter VolumeRevertRestoreValidationFilter() { return new VolumeRevertRestoreValidationFilter(); } @Bean VolumeCreateValidationFilter VolumeCreateValidationFilter() { return new VolumeCreateValidationFilter(); } }