public static Class<? extends AwsS3Service> getS3ServiceClass(Settings settings) { return settings.getAsClass(S3_SERVICE_TYPE_KEY, InternalAwsS3Service.class); }
@Override public Iterable<? extends Module> spawnModules() { return ImmutableList.of(Modules.createModule(settings.getAsClass("websocket.type", NettyWebSocketServerTransportModule.class, "org.xbib.elasticsearch.websocket.http.", "HttpServerTransportModule"), settings)); }
@Override public Iterable<? extends Module> spawnModules() { return ImmutableList.of(Modules.createModule(settings.getAsClass("http.type", NettyHttpServerTransportModule.class, "org.elasticsearch.http.", "HttpServerTransportModule"), settings)); }
private void configureFilters() { MapBinder<String, FilterHttpServerAdapterFactory> filterBinder = MapBinder.newMapBinder(binder(), String.class, FilterHttpServerAdapterFactory.class); Map<String, Settings> filtersSettings = componentSettings.getGroups("http_filter"); for (Map.Entry<String, Settings> entry : filtersSettings.entrySet()) { String filterName = entry.getKey(); Settings filterSettings = entry.getValue(); Class<? extends FilterHttpServerAdapter> type = null; try { type = filterSettings.getAsClass("type", null, "com.sonian.elasticsearch.http.filter.", "FilterHttpServerAdapter"); } catch (NoClassSettingsException e) { // Ignore } if (type == null) { throw new ElasticsearchIllegalArgumentException("Http Filter [" + filterName + "] must have a type associated with it"); } filterBinder.addBinding(filterName) .toProvider(FactoryProvider.newFactory(FilterHttpServerAdapterFactory.class, type)) .in(Scopes.SINGLETON); } } }
@Override protected void configure() { bind(HttpServerTransport.class) .to(FilterHttpServerTransport.class).asEagerSingleton(); Class<? extends HttpServerTransport> transport; // This is a hack for debugging. It allows switching back to NettyHttpServer if needed. // HttpServerTransportModule should be loaded instead of just binding HttpServerTransport // directly. Unfortunately, it's not possible to override annotation then. transport = componentSettings.getAsClass("transport_type", JettyHttpServerTransport.class, "org.elasticsearch.http.", "HttpServerTransport"); bind(HttpServerTransport.class) .annotatedWith(FilteredHttpServerTransport.class) .to(transport).asEagerSingleton(); bind(ESLoggerWrapper.class).asEagerSingleton(); configureFilters(); }
final Class<? extends NonCachingAuthorizator> defaultNonCachingAuthorizator = SettingsBasedAuthorizator.class; final Class<? extends NonCachingAuthenticationBackend> authenticationBackend = settings.getAsClass( ConfigConstants.SEARCHGUARD_AUTHENTICATION_AUTHENTICATION_BACKEND, defaultNonCachingAuthenticationBackend); final Class<? extends HTTPAuthenticator> httpAuthenticator = settings.getAsClass( ConfigConstants.SEARCHGUARD_AUTHENTICATION_HTTP_AUTHENTICATOR, defaultHTTPAuthenticator); bind(HTTPAuthenticator.class).to(httpAuthenticator).asEagerSingleton(); final Class<? extends NonCachingAuthorizator> authorizator = settings.getAsClass( ConfigConstants.SEARCHGUARD_AUTHENTICATION_AUTHORIZER, defaultNonCachingAuthorizator); settings.getAsClass(ConfigConstants.SEARCHGUARD_WAFFLE_WINDOWS_AUTH_PROVIDER_IMPL, WindowsAuthProviderImpl.class)) .asEagerSingleton();