Moved http settings to the new settings infrastructure
The following settings were moved to Setting contents in HttpTransportSettings: * http.cors.allow-origin * http.port * http.publish_port * http.detailed_errors.enabled * http.max_content_length * http.max_chunk_size * http.max_header_size * http.max_initial_line_length The following settings were removed: * http.port * http.netty.port * http.netty.publish_port * http.netty.max_content_length * http.netty.max_chunk_size * http.netty.max_header_size * http.netty.max_initial_line_length
This commit is contained in:
parent
008aa2c316
commit
745e8f96e7
|
@ -25,7 +25,7 @@ import org.elasticsearch.common.SuppressForbidden;
|
||||||
import org.elasticsearch.common.io.PathUtils;
|
import org.elasticsearch.common.io.PathUtils;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.env.Environment;
|
import org.elasticsearch.env.Environment;
|
||||||
import org.elasticsearch.http.netty.NettyHttpServerTransport;
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.plugins.PluginInfo;
|
import org.elasticsearch.plugins.PluginInfo;
|
||||||
import org.elasticsearch.transport.TransportSettings;
|
import org.elasticsearch.transport.TransportSettings;
|
||||||
|
|
||||||
|
@ -270,9 +270,7 @@ final class Security {
|
||||||
|
|
||||||
static void addBindPermissions(Permissions policy, Settings settings) throws IOException {
|
static void addBindPermissions(Permissions policy, Settings settings) throws IOException {
|
||||||
// http is simple
|
// http is simple
|
||||||
String httpRange = settings.get("http.netty.port",
|
String httpRange = HttpTransportSettings.SETTING_HTTP_PORT.get(settings).getPortRangeString();
|
||||||
settings.get("http.port",
|
|
||||||
NettyHttpServerTransport.DEFAULT_PORT_RANGE));
|
|
||||||
// listen is always called with 'localhost' but use wildcard to be sure, no name service is consulted.
|
// listen is always called with 'localhost' but use wildcard to be sure, no name service is consulted.
|
||||||
// see SocketPermission implies() code
|
// see SocketPermission implies() code
|
||||||
policy.add(new SocketPermission("*:" + httpRange, "listen,resolve"));
|
policy.add(new SocketPermission("*:" + httpRange, "listen,resolve"));
|
||||||
|
|
|
@ -57,6 +57,7 @@ import org.elasticsearch.env.Environment;
|
||||||
import org.elasticsearch.env.NodeEnvironment;
|
import org.elasticsearch.env.NodeEnvironment;
|
||||||
import org.elasticsearch.gateway.GatewayService;
|
import org.elasticsearch.gateway.GatewayService;
|
||||||
import org.elasticsearch.gateway.PrimaryShardAllocator;
|
import org.elasticsearch.gateway.PrimaryShardAllocator;
|
||||||
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.http.netty.NettyHttpServerTransport;
|
import org.elasticsearch.http.netty.NettyHttpServerTransport;
|
||||||
import org.elasticsearch.index.IndexSettings;
|
import org.elasticsearch.index.IndexSettings;
|
||||||
import org.elasticsearch.index.store.IndexStoreConfig;
|
import org.elasticsearch.index.store.IndexStoreConfig;
|
||||||
|
@ -113,9 +114,9 @@ public final class ClusterSettings extends AbstractScopedSettings {
|
||||||
@Override
|
@Override
|
||||||
public boolean hasChanged(Settings current, Settings previous) {
|
public boolean hasChanged(Settings current, Settings previous) {
|
||||||
return current.filter(loggerPredicate).getAsMap().equals(previous.filter(loggerPredicate).getAsMap()) == false;
|
return current.filter(loggerPredicate).getAsMap().equals(previous.filter(loggerPredicate).getAsMap()) == false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Settings getValue(Settings current, Settings previous) {
|
public Settings getValue(Settings current, Settings previous) {
|
||||||
Settings.Builder builder = Settings.builder();
|
Settings.Builder builder = Settings.builder();
|
||||||
builder.put(current.filter(loggerPredicate).getAsMap());
|
builder.put(current.filter(loggerPredicate).getAsMap());
|
||||||
|
@ -131,7 +132,7 @@ public final class ClusterSettings extends AbstractScopedSettings {
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void apply(Settings value, Settings current, Settings previous) {
|
public void apply(Settings value, Settings current, Settings previous) {
|
||||||
for (String key : value.getAsMap().keySet()) {
|
for (String key : value.getAsMap().keySet()) {
|
||||||
assert loggerPredicate.test(key);
|
assert loggerPredicate.test(key);
|
||||||
|
@ -142,90 +143,104 @@ public final class ClusterSettings extends AbstractScopedSettings {
|
||||||
} else {
|
} else {
|
||||||
ESLoggerFactory.getLogger(component).setLevel(value.get(key));
|
ESLoggerFactory.getLogger(component).setLevel(value.get(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static Set<Setting<?>> BUILT_IN_CLUSTER_SETTINGS = Collections.unmodifiableSet(new HashSet<>(
|
public static Set<Setting<?>> BUILT_IN_CLUSTER_SETTINGS = Collections.unmodifiableSet(new HashSet<>(
|
||||||
Arrays.asList(AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_ATTRIBUTE_SETTING,
|
Arrays.asList(AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_ATTRIBUTE_SETTING,
|
||||||
TransportClientNodesService.CLIENT_TRANSPORT_NODES_SAMPLER_INTERVAL, // TODO these transport client settings are kind of odd here and should only be valid if we are a transport client
|
TransportClientNodesService.CLIENT_TRANSPORT_NODES_SAMPLER_INTERVAL, // TODO these transport client settings are kind of odd here and should only be valid if we are a transport client
|
||||||
TransportClientNodesService.CLIENT_TRANSPORT_PING_TIMEOUT,
|
TransportClientNodesService.CLIENT_TRANSPORT_PING_TIMEOUT,
|
||||||
TransportClientNodesService.CLIENT_TRANSPORT_IGNORE_CLUSTER_NAME,
|
TransportClientNodesService.CLIENT_TRANSPORT_IGNORE_CLUSTER_NAME,
|
||||||
AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_FORCE_GROUP_SETTING,
|
AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_FORCE_GROUP_SETTING,
|
||||||
BalancedShardsAllocator.INDEX_BALANCE_FACTOR_SETTING,
|
BalancedShardsAllocator.INDEX_BALANCE_FACTOR_SETTING,
|
||||||
BalancedShardsAllocator.SHARD_BALANCE_FACTOR_SETTING,
|
BalancedShardsAllocator.SHARD_BALANCE_FACTOR_SETTING,
|
||||||
BalancedShardsAllocator.THRESHOLD_SETTING,
|
BalancedShardsAllocator.THRESHOLD_SETTING,
|
||||||
ClusterRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ALLOW_REBALANCE_SETTING,
|
ClusterRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ALLOW_REBALANCE_SETTING,
|
||||||
ConcurrentRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_CLUSTER_CONCURRENT_REBALANCE_SETTING,
|
ConcurrentRebalanceAllocationDecider.CLUSTER_ROUTING_ALLOCATION_CLUSTER_CONCURRENT_REBALANCE_SETTING,
|
||||||
EnableAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ENABLE_SETTING,
|
EnableAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ENABLE_SETTING,
|
||||||
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING,
|
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING,
|
||||||
ZenDiscovery.REJOIN_ON_MASTER_GONE_SETTING,
|
ZenDiscovery.REJOIN_ON_MASTER_GONE_SETTING,
|
||||||
FilterAllocationDecider.CLUSTER_ROUTING_INCLUDE_GROUP_SETTING,
|
FilterAllocationDecider.CLUSTER_ROUTING_INCLUDE_GROUP_SETTING,
|
||||||
FilterAllocationDecider.CLUSTER_ROUTING_EXCLUDE_GROUP_SETTING,
|
FilterAllocationDecider.CLUSTER_ROUTING_EXCLUDE_GROUP_SETTING,
|
||||||
FilterAllocationDecider.CLUSTER_ROUTING_REQUIRE_GROUP_SETTING,
|
FilterAllocationDecider.CLUSTER_ROUTING_REQUIRE_GROUP_SETTING,
|
||||||
FsRepository.REPOSITORIES_CHUNK_SIZE_SETTING,
|
FsRepository.REPOSITORIES_CHUNK_SIZE_SETTING,
|
||||||
FsRepository.REPOSITORIES_COMPRESS_SETTING,
|
FsRepository.REPOSITORIES_COMPRESS_SETTING,
|
||||||
FsRepository.REPOSITORIES_LOCATION_SETTING,
|
FsRepository.REPOSITORIES_LOCATION_SETTING,
|
||||||
IndexStoreConfig.INDICES_STORE_THROTTLE_TYPE_SETTING,
|
IndexStoreConfig.INDICES_STORE_THROTTLE_TYPE_SETTING,
|
||||||
IndexStoreConfig.INDICES_STORE_THROTTLE_MAX_BYTES_PER_SEC_SETTING,
|
IndexStoreConfig.INDICES_STORE_THROTTLE_MAX_BYTES_PER_SEC_SETTING,
|
||||||
IndicesQueryCache.INDICES_CACHE_QUERY_SIZE_SETTING,
|
IndicesQueryCache.INDICES_CACHE_QUERY_SIZE_SETTING,
|
||||||
IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING,
|
IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING,
|
||||||
IndicesTTLService.INDICES_TTL_INTERVAL_SETTING,
|
IndicesTTLService.INDICES_TTL_INTERVAL_SETTING,
|
||||||
MappingUpdatedAction.INDICES_MAPPING_DYNAMIC_TIMEOUT_SETTING,
|
MappingUpdatedAction.INDICES_MAPPING_DYNAMIC_TIMEOUT_SETTING,
|
||||||
MetaData.SETTING_READ_ONLY_SETTING,
|
MetaData.SETTING_READ_ONLY_SETTING,
|
||||||
RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING,
|
RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING,
|
||||||
RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_STATE_SYNC_SETTING,
|
RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_STATE_SYNC_SETTING,
|
||||||
RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_NETWORK_SETTING,
|
RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_NETWORK_SETTING,
|
||||||
RecoverySettings.INDICES_RECOVERY_ACTIVITY_TIMEOUT_SETTING,
|
RecoverySettings.INDICES_RECOVERY_ACTIVITY_TIMEOUT_SETTING,
|
||||||
RecoverySettings.INDICES_RECOVERY_INTERNAL_ACTION_TIMEOUT_SETTING,
|
RecoverySettings.INDICES_RECOVERY_INTERNAL_ACTION_TIMEOUT_SETTING,
|
||||||
RecoverySettings.INDICES_RECOVERY_INTERNAL_LONG_ACTION_TIMEOUT_SETTING,
|
RecoverySettings.INDICES_RECOVERY_INTERNAL_LONG_ACTION_TIMEOUT_SETTING,
|
||||||
ThreadPool.THREADPOOL_GROUP_SETTING,
|
ThreadPool.THREADPOOL_GROUP_SETTING,
|
||||||
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_INITIAL_PRIMARIES_RECOVERIES_SETTING,
|
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_INITIAL_PRIMARIES_RECOVERIES_SETTING,
|
||||||
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_INCOMING_RECOVERIES_SETTING,
|
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_INCOMING_RECOVERIES_SETTING,
|
||||||
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_OUTGOING_RECOVERIES_SETTING,
|
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_OUTGOING_RECOVERIES_SETTING,
|
||||||
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_RECOVERIES_SETTING,
|
ThrottlingAllocationDecider.CLUSTER_ROUTING_ALLOCATION_NODE_CONCURRENT_RECOVERIES_SETTING,
|
||||||
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_LOW_DISK_WATERMARK_SETTING,
|
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_LOW_DISK_WATERMARK_SETTING,
|
||||||
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_HIGH_DISK_WATERMARK_SETTING,
|
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_HIGH_DISK_WATERMARK_SETTING,
|
||||||
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED_SETTING,
|
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED_SETTING,
|
||||||
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_INCLUDE_RELOCATIONS_SETTING,
|
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_INCLUDE_RELOCATIONS_SETTING,
|
||||||
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_REROUTE_INTERVAL_SETTING,
|
DiskThresholdDecider.CLUSTER_ROUTING_ALLOCATION_REROUTE_INTERVAL_SETTING,
|
||||||
InternalClusterInfoService.INTERNAL_CLUSTER_INFO_UPDATE_INTERVAL_SETTING,
|
InternalClusterInfoService.INTERNAL_CLUSTER_INFO_UPDATE_INTERVAL_SETTING,
|
||||||
InternalClusterInfoService.INTERNAL_CLUSTER_INFO_TIMEOUT_SETTING,
|
InternalClusterInfoService.INTERNAL_CLUSTER_INFO_TIMEOUT_SETTING,
|
||||||
SnapshotInProgressAllocationDecider.CLUSTER_ROUTING_ALLOCATION_SNAPSHOT_RELOCATION_ENABLED_SETTING,
|
SnapshotInProgressAllocationDecider.CLUSTER_ROUTING_ALLOCATION_SNAPSHOT_RELOCATION_ENABLED_SETTING,
|
||||||
DestructiveOperations.REQUIRES_NAME_SETTING,
|
DestructiveOperations.REQUIRES_NAME_SETTING,
|
||||||
DiscoverySettings.PUBLISH_TIMEOUT_SETTING,
|
DiscoverySettings.PUBLISH_TIMEOUT_SETTING,
|
||||||
DiscoverySettings.PUBLISH_DIFF_ENABLE_SETTING,
|
DiscoverySettings.PUBLISH_DIFF_ENABLE_SETTING,
|
||||||
DiscoverySettings.COMMIT_TIMEOUT_SETTING,
|
DiscoverySettings.COMMIT_TIMEOUT_SETTING,
|
||||||
DiscoverySettings.NO_MASTER_BLOCK_SETTING,
|
DiscoverySettings.NO_MASTER_BLOCK_SETTING,
|
||||||
GatewayService.EXPECTED_DATA_NODES_SETTING,
|
GatewayService.EXPECTED_DATA_NODES_SETTING,
|
||||||
GatewayService.EXPECTED_MASTER_NODES_SETTING,
|
GatewayService.EXPECTED_MASTER_NODES_SETTING,
|
||||||
GatewayService.EXPECTED_NODES_SETTING,
|
GatewayService.EXPECTED_NODES_SETTING,
|
||||||
GatewayService.RECOVER_AFTER_DATA_NODES_SETTING,
|
GatewayService.RECOVER_AFTER_DATA_NODES_SETTING,
|
||||||
GatewayService.RECOVER_AFTER_MASTER_NODES_SETTING,
|
GatewayService.RECOVER_AFTER_MASTER_NODES_SETTING,
|
||||||
GatewayService.RECOVER_AFTER_NODES_SETTING,
|
GatewayService.RECOVER_AFTER_NODES_SETTING,
|
||||||
GatewayService.RECOVER_AFTER_TIME_SETTING,
|
GatewayService.RECOVER_AFTER_TIME_SETTING,
|
||||||
NetworkModule.HTTP_ENABLED,
|
NetworkModule.HTTP_ENABLED,
|
||||||
NettyHttpServerTransport.SETTING_CORS_ALLOW_CREDENTIALS,
|
HttpTransportSettings.SETTING_CORS_ALLOW_CREDENTIALS,
|
||||||
NettyHttpServerTransport.SETTING_CORS_ENABLED,
|
HttpTransportSettings.SETTING_CORS_ENABLED,
|
||||||
NettyHttpServerTransport.SETTING_CORS_MAX_AGE,
|
HttpTransportSettings.SETTING_CORS_MAX_AGE,
|
||||||
NettyHttpServerTransport.SETTING_HTTP_DETAILED_ERRORS_ENABLED,
|
HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED,
|
||||||
NettyHttpServerTransport.SETTING_PIPELINING,
|
HttpTransportSettings.SETTING_PIPELINING,
|
||||||
HierarchyCircuitBreakerService.TOTAL_CIRCUIT_BREAKER_LIMIT_SETTING,
|
HttpTransportSettings.SETTING_CORS_ALLOW_ORIGIN,
|
||||||
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_LIMIT_SETTING,
|
HttpTransportSettings.SETTING_HTTP_PORT,
|
||||||
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_OVERHEAD_SETTING,
|
HttpTransportSettings.SETTING_HTTP_PUBLISH_PORT,
|
||||||
HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_LIMIT_SETTING,
|
HttpTransportSettings.SETTING_PIPELINING_MAX_EVENTS,
|
||||||
HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_OVERHEAD_SETTING,
|
HttpTransportSettings.SETTING_HTTP_COMPRESSION,
|
||||||
InternalClusterService.CLUSTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING,
|
HttpTransportSettings.SETTING_HTTP_COMPRESSION_LEVEL,
|
||||||
SearchService.DEFAULT_SEARCH_TIMEOUT_SETTING,
|
HttpTransportSettings.SETTING_CORS_ALLOW_METHODS,
|
||||||
ElectMasterService.DISCOVERY_ZEN_MINIMUM_MASTER_NODES_SETTING,
|
HttpTransportSettings.SETTING_CORS_ALLOW_HEADERS,
|
||||||
TransportService.TRACE_LOG_EXCLUDE_SETTING,
|
HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED,
|
||||||
TransportService.TRACE_LOG_INCLUDE_SETTING,
|
HttpTransportSettings.SETTING_HTTP_MAX_CONTENT_LENGTH,
|
||||||
TransportCloseIndexAction.CLUSTER_INDICES_CLOSE_ENABLE_SETTING,
|
HttpTransportSettings.SETTING_HTTP_MAX_CHUNK_SIZE,
|
||||||
ShardsLimitAllocationDecider.CLUSTER_TOTAL_SHARDS_PER_NODE_SETTING,
|
HttpTransportSettings.SETTING_HTTP_MAX_HEADER_SIZE,
|
||||||
InternalClusterService.CLUSTER_SERVICE_RECONNECT_INTERVAL_SETTING,
|
HttpTransportSettings.SETTING_HTTP_MAX_INITIAL_LINE_LENGTH,
|
||||||
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_TYPE_SETTING,
|
HttpTransportSettings.SETTING_HTTP_RESET_COOKIES,
|
||||||
HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_TYPE_SETTING,
|
HierarchyCircuitBreakerService.TOTAL_CIRCUIT_BREAKER_LIMIT_SETTING,
|
||||||
Transport.TRANSPORT_TCP_COMPRESS,
|
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_LIMIT_SETTING,
|
||||||
|
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_OVERHEAD_SETTING,
|
||||||
|
HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_LIMIT_SETTING,
|
||||||
|
HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_OVERHEAD_SETTING,
|
||||||
|
InternalClusterService.CLUSTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING,
|
||||||
|
SearchService.DEFAULT_SEARCH_TIMEOUT_SETTING,
|
||||||
|
ElectMasterService.DISCOVERY_ZEN_MINIMUM_MASTER_NODES_SETTING,
|
||||||
|
TransportService.TRACE_LOG_EXCLUDE_SETTING,
|
||||||
|
TransportService.TRACE_LOG_INCLUDE_SETTING,
|
||||||
|
TransportCloseIndexAction.CLUSTER_INDICES_CLOSE_ENABLE_SETTING,
|
||||||
|
ShardsLimitAllocationDecider.CLUSTER_TOTAL_SHARDS_PER_NODE_SETTING,
|
||||||
|
InternalClusterService.CLUSTER_SERVICE_RECONNECT_INTERVAL_SETTING,
|
||||||
|
HierarchyCircuitBreakerService.FIELDDATA_CIRCUIT_BREAKER_TYPE_SETTING,
|
||||||
|
HierarchyCircuitBreakerService.REQUEST_CIRCUIT_BREAKER_TYPE_SETTING,
|
||||||
|
Transport.TRANSPORT_TCP_COMPRESS,
|
||||||
TransportSettings.TRANSPORT_PROFILES_SETTING,
|
TransportSettings.TRANSPORT_PROFILES_SETTING,
|
||||||
TransportSettings.HOST,
|
TransportSettings.HOST,
|
||||||
TransportSettings.PUBLISH_HOST,
|
TransportSettings.PUBLISH_HOST,
|
||||||
|
@ -254,72 +269,72 @@ public final class ClusterSettings extends AbstractScopedSettings {
|
||||||
NettyTransport.TCP_SEND_BUFFER_SIZE,
|
NettyTransport.TCP_SEND_BUFFER_SIZE,
|
||||||
NettyTransport.TCP_RECEIVE_BUFFER_SIZE,
|
NettyTransport.TCP_RECEIVE_BUFFER_SIZE,
|
||||||
NettyTransport.TCP_BLOCKING_SERVER,
|
NettyTransport.TCP_BLOCKING_SERVER,
|
||||||
NetworkService.GLOBAL_NETWORK_HOST_SETTING,
|
NetworkService.GLOBAL_NETWORK_HOST_SETTING,
|
||||||
NetworkService.GLOBAL_NETWORK_BINDHOST_SETTING,
|
NetworkService.GLOBAL_NETWORK_BINDHOST_SETTING,
|
||||||
NetworkService.GLOBAL_NETWORK_PUBLISHHOST_SETTING,
|
NetworkService.GLOBAL_NETWORK_PUBLISHHOST_SETTING,
|
||||||
NetworkService.TcpSettings.TCP_NO_DELAY,
|
NetworkService.TcpSettings.TCP_NO_DELAY,
|
||||||
NetworkService.TcpSettings.TCP_KEEP_ALIVE,
|
NetworkService.TcpSettings.TCP_KEEP_ALIVE,
|
||||||
NetworkService.TcpSettings.TCP_REUSE_ADDRESS,
|
NetworkService.TcpSettings.TCP_REUSE_ADDRESS,
|
||||||
NetworkService.TcpSettings.TCP_SEND_BUFFER_SIZE,
|
NetworkService.TcpSettings.TCP_SEND_BUFFER_SIZE,
|
||||||
NetworkService.TcpSettings.TCP_RECEIVE_BUFFER_SIZE,
|
NetworkService.TcpSettings.TCP_RECEIVE_BUFFER_SIZE,
|
||||||
NetworkService.TcpSettings.TCP_BLOCKING,
|
NetworkService.TcpSettings.TCP_BLOCKING,
|
||||||
NetworkService.TcpSettings.TCP_BLOCKING_SERVER,
|
NetworkService.TcpSettings.TCP_BLOCKING_SERVER,
|
||||||
NetworkService.TcpSettings.TCP_BLOCKING_CLIENT,
|
NetworkService.TcpSettings.TCP_BLOCKING_CLIENT,
|
||||||
NetworkService.TcpSettings.TCP_CONNECT_TIMEOUT,
|
NetworkService.TcpSettings.TCP_CONNECT_TIMEOUT,
|
||||||
IndexSettings.QUERY_STRING_ANALYZE_WILDCARD,
|
IndexSettings.QUERY_STRING_ANALYZE_WILDCARD,
|
||||||
IndexSettings.QUERY_STRING_ALLOW_LEADING_WILDCARD,
|
IndexSettings.QUERY_STRING_ALLOW_LEADING_WILDCARD,
|
||||||
PrimaryShardAllocator.NODE_INITIAL_SHARDS_SETTING,
|
PrimaryShardAllocator.NODE_INITIAL_SHARDS_SETTING,
|
||||||
ScriptService.SCRIPT_CACHE_SIZE_SETTING,
|
ScriptService.SCRIPT_CACHE_SIZE_SETTING,
|
||||||
IndicesFieldDataCache.INDICES_FIELDDATA_CLEAN_INTERVAL_SETTING,
|
IndicesFieldDataCache.INDICES_FIELDDATA_CLEAN_INTERVAL_SETTING,
|
||||||
IndicesFieldDataCache.INDICES_FIELDDATA_CACHE_SIZE_KEY,
|
IndicesFieldDataCache.INDICES_FIELDDATA_CACHE_SIZE_KEY,
|
||||||
IndicesRequestCache.INDICES_CACHE_QUERY_SIZE,
|
IndicesRequestCache.INDICES_CACHE_QUERY_SIZE,
|
||||||
IndicesRequestCache.INDICES_CACHE_QUERY_EXPIRE,
|
IndicesRequestCache.INDICES_CACHE_QUERY_EXPIRE,
|
||||||
IndicesRequestCache.INDICES_CACHE_REQUEST_CLEAN_INTERVAL,
|
IndicesRequestCache.INDICES_CACHE_REQUEST_CLEAN_INTERVAL,
|
||||||
HunspellService.HUNSPELL_LAZY_LOAD,
|
HunspellService.HUNSPELL_LAZY_LOAD,
|
||||||
HunspellService.HUNSPELL_IGNORE_CASE,
|
HunspellService.HUNSPELL_IGNORE_CASE,
|
||||||
HunspellService.HUNSPELL_DICTIONARY_OPTIONS,
|
HunspellService.HUNSPELL_DICTIONARY_OPTIONS,
|
||||||
IndicesStore.INDICES_STORE_DELETE_SHARD_TIMEOUT,
|
IndicesStore.INDICES_STORE_DELETE_SHARD_TIMEOUT,
|
||||||
Environment.PATH_CONF_SETTING,
|
Environment.PATH_CONF_SETTING,
|
||||||
Environment.PATH_DATA_SETTING,
|
Environment.PATH_DATA_SETTING,
|
||||||
Environment.PATH_HOME_SETTING,
|
Environment.PATH_HOME_SETTING,
|
||||||
Environment.PATH_LOGS_SETTING,
|
Environment.PATH_LOGS_SETTING,
|
||||||
Environment.PATH_PLUGINS_SETTING,
|
Environment.PATH_PLUGINS_SETTING,
|
||||||
Environment.PATH_REPO_SETTING,
|
Environment.PATH_REPO_SETTING,
|
||||||
Environment.PATH_SCRIPTS_SETTING,
|
Environment.PATH_SCRIPTS_SETTING,
|
||||||
Environment.PATH_SHARED_DATA_SETTING,
|
Environment.PATH_SHARED_DATA_SETTING,
|
||||||
Environment.PIDFILE_SETTING,
|
Environment.PIDFILE_SETTING,
|
||||||
DiscoveryService.DISCOVERY_SEED_SETTING,
|
DiscoveryService.DISCOVERY_SEED_SETTING,
|
||||||
DiscoveryService.INITIAL_STATE_TIMEOUT_SETTING,
|
DiscoveryService.INITIAL_STATE_TIMEOUT_SETTING,
|
||||||
DiscoveryModule.DISCOVERY_TYPE_SETTING,
|
DiscoveryModule.DISCOVERY_TYPE_SETTING,
|
||||||
DiscoveryModule.ZEN_MASTER_SERVICE_TYPE_SETTING,
|
DiscoveryModule.ZEN_MASTER_SERVICE_TYPE_SETTING,
|
||||||
FaultDetection.PING_RETRIES_SETTING,
|
FaultDetection.PING_RETRIES_SETTING,
|
||||||
FaultDetection.PING_TIMEOUT_SETTING,
|
FaultDetection.PING_TIMEOUT_SETTING,
|
||||||
FaultDetection.REGISTER_CONNECTION_LISTENER_SETTING,
|
FaultDetection.REGISTER_CONNECTION_LISTENER_SETTING,
|
||||||
FaultDetection.PING_INTERVAL_SETTING,
|
FaultDetection.PING_INTERVAL_SETTING,
|
||||||
FaultDetection.CONNECT_ON_NETWORK_DISCONNECT_SETTING,
|
FaultDetection.CONNECT_ON_NETWORK_DISCONNECT_SETTING,
|
||||||
ZenDiscovery.PING_TIMEOUT_SETTING,
|
ZenDiscovery.PING_TIMEOUT_SETTING,
|
||||||
ZenDiscovery.JOIN_TIMEOUT_SETTING,
|
ZenDiscovery.JOIN_TIMEOUT_SETTING,
|
||||||
ZenDiscovery.JOIN_RETRY_ATTEMPTS_SETTING,
|
ZenDiscovery.JOIN_RETRY_ATTEMPTS_SETTING,
|
||||||
ZenDiscovery.JOIN_RETRY_DELAY_SETTING,
|
ZenDiscovery.JOIN_RETRY_DELAY_SETTING,
|
||||||
ZenDiscovery.MAX_PINGS_FROM_ANOTHER_MASTER_SETTING,
|
ZenDiscovery.MAX_PINGS_FROM_ANOTHER_MASTER_SETTING,
|
||||||
ZenDiscovery.SEND_LEAVE_REQUEST_SETTING,
|
ZenDiscovery.SEND_LEAVE_REQUEST_SETTING,
|
||||||
ZenDiscovery.MASTER_ELECTION_FILTER_CLIENT_SETTING,
|
ZenDiscovery.MASTER_ELECTION_FILTER_CLIENT_SETTING,
|
||||||
ZenDiscovery.MASTER_ELECTION_WAIT_FOR_JOINS_TIMEOUT_SETTING,
|
ZenDiscovery.MASTER_ELECTION_WAIT_FOR_JOINS_TIMEOUT_SETTING,
|
||||||
ZenDiscovery.MASTER_ELECTION_FILTER_DATA_SETTING,
|
ZenDiscovery.MASTER_ELECTION_FILTER_DATA_SETTING,
|
||||||
UnicastZenPing.DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING,
|
UnicastZenPing.DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING,
|
||||||
UnicastZenPing.DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING,
|
UnicastZenPing.DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING,
|
||||||
SearchService.DEFAULT_KEEPALIVE_SETTING,
|
SearchService.DEFAULT_KEEPALIVE_SETTING,
|
||||||
SearchService.KEEPALIVE_INTERVAL_SETTING,
|
SearchService.KEEPALIVE_INTERVAL_SETTING,
|
||||||
Node.WRITE_PORTS_FIELD_SETTING,
|
Node.WRITE_PORTS_FIELD_SETTING,
|
||||||
Node.NODE_CLIENT_SETTING,
|
Node.NODE_CLIENT_SETTING,
|
||||||
Node.NODE_DATA_SETTING,
|
Node.NODE_DATA_SETTING,
|
||||||
Node.NODE_MASTER_SETTING,
|
Node.NODE_MASTER_SETTING,
|
||||||
Node.NODE_LOCAL_SETTING,
|
Node.NODE_LOCAL_SETTING,
|
||||||
Node.NODE_MODE_SETTING,
|
Node.NODE_MODE_SETTING,
|
||||||
Node.NODE_INGEST_SETTING,
|
Node.NODE_INGEST_SETTING,
|
||||||
URLRepository.ALLOWED_URLS_SETTING,
|
URLRepository.ALLOWED_URLS_SETTING,
|
||||||
URLRepository.REPOSITORIES_LIST_DIRECTORIES_SETTING,
|
URLRepository.REPOSITORIES_LIST_DIRECTORIES_SETTING,
|
||||||
URLRepository.REPOSITORIES_URL_SETTING,
|
URLRepository.REPOSITORIES_URL_SETTING,
|
||||||
URLRepository.SUPPORTED_PROTOCOLS_SETTING,
|
URLRepository.SUPPORTED_PROTOCOLS_SETTING,
|
||||||
TransportMasterNodeReadAction.FORCE_LOCAL_SETTING,
|
TransportMasterNodeReadAction.FORCE_LOCAL_SETTING,
|
||||||
AutoCreateIndex.AUTO_CREATE_INDEX_SETTING,
|
AutoCreateIndex.AUTO_CREATE_INDEX_SETTING,
|
||||||
|
|
|
@ -35,6 +35,10 @@ public class PortsRange {
|
||||||
this.portRange = portRange;
|
this.portRange = portRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPortRangeString() {
|
||||||
|
return portRange;
|
||||||
|
}
|
||||||
|
|
||||||
public int[] ports() throws NumberFormatException {
|
public int[] ports() throws NumberFormatException {
|
||||||
final IntArrayList ports = new IntArrayList();
|
final IntArrayList ports = new IntArrayList();
|
||||||
iterate(new PortCallback() {
|
iterate(new PortCallback() {
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* Licensed to Elasticsearch under one or more contributor
|
||||||
|
* license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright
|
||||||
|
* ownership. Elasticsearch licenses this file to you under
|
||||||
|
* the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
* not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.http;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.settings.Setting;
|
||||||
|
import org.elasticsearch.common.settings.Setting.Scope;
|
||||||
|
import org.elasticsearch.common.transport.PortsRange;
|
||||||
|
import org.elasticsearch.common.unit.ByteSizeUnit;
|
||||||
|
import org.elasticsearch.common.unit.ByteSizeValue;
|
||||||
|
|
||||||
|
public final class HttpTransportSettings {
|
||||||
|
|
||||||
|
public static final Setting<Boolean> SETTING_CORS_ENABLED = Setting.boolSetting("http.cors.enabled", false, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<String> SETTING_CORS_ALLOW_ORIGIN = new Setting<String>("http.cors.allow-origin", "", (value) -> value, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Integer> SETTING_CORS_MAX_AGE = Setting.intSetting("http.cors.max-age", 1728000, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<String> SETTING_CORS_ALLOW_METHODS = new Setting<String>("http.cors.allow-methods", "OPTIONS, HEAD, GET, POST, PUT, DELETE", (value) -> value, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<String> SETTING_CORS_ALLOW_HEADERS = new Setting<String>("http.cors.allow-headers", "X-Requested-With, Content-Type, Content-Length", (value) -> value, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Boolean> SETTING_CORS_ALLOW_CREDENTIALS = Setting.boolSetting("http.cors.allow-credentials", false, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Boolean> SETTING_PIPELINING = Setting.boolSetting("http.pipelining", true, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Integer> SETTING_PIPELINING_MAX_EVENTS = Setting.intSetting("http.pipelining.max_events", 10000, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Boolean> SETTING_HTTP_COMPRESSION = Setting.boolSetting("http.compression", false, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Integer> SETTING_HTTP_COMPRESSION_LEVEL = Setting.intSetting("http.compression_level", 6, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<PortsRange> SETTING_HTTP_PORT = new Setting<PortsRange>("http.port", "9200-9300", PortsRange::new, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Integer> SETTING_HTTP_PUBLISH_PORT = Setting.intSetting("http.publish_port", 0, 0, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<Boolean> SETTING_HTTP_DETAILED_ERRORS_ENABLED = Setting.boolSetting("http.detailed_errors.enabled", true, false, Scope.CLUSTER);
|
||||||
|
public static final Setting<ByteSizeValue> SETTING_HTTP_MAX_CONTENT_LENGTH = Setting.byteSizeSetting("http.max_content_length", new ByteSizeValue(100, ByteSizeUnit.MB), false, Scope.CLUSTER) ;
|
||||||
|
public static final Setting<ByteSizeValue> SETTING_HTTP_MAX_CHUNK_SIZE = Setting.byteSizeSetting("http.max_chunk_size", new ByteSizeValue(8, ByteSizeUnit.KB), false, Scope.CLUSTER) ;
|
||||||
|
public static final Setting<ByteSizeValue> SETTING_HTTP_MAX_HEADER_SIZE = Setting.byteSizeSetting("http.max_header_size", new ByteSizeValue(8, ByteSizeUnit.KB), false, Scope.CLUSTER) ;
|
||||||
|
public static final Setting<ByteSizeValue> SETTING_HTTP_MAX_INITIAL_LINE_LENGTH = Setting.byteSizeSetting("http.max_initial_line_length", new ByteSizeValue(4, ByteSizeUnit.KB), false, Scope.CLUSTER) ;
|
||||||
|
// don't reset cookies by default, since I don't think we really need to
|
||||||
|
// note, parsing cookies was fixed in netty 3.5.1 regarding stack allocation, but still, currently, we don't need cookies
|
||||||
|
public static final Setting<Boolean> SETTING_HTTP_RESET_COOKIES = Setting.boolSetting("http.reset_cookies", false, false, Scope.CLUSTER);
|
||||||
|
|
||||||
|
private HttpTransportSettings() {
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,6 +20,7 @@
|
||||||
package org.elasticsearch.http.netty;
|
package org.elasticsearch.http.netty;
|
||||||
|
|
||||||
import org.elasticsearch.common.util.concurrent.ThreadContext;
|
import org.elasticsearch.common.util.concurrent.ThreadContext;
|
||||||
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.http.netty.pipelining.OrderedUpstreamMessageEvent;
|
import org.elasticsearch.http.netty.pipelining.OrderedUpstreamMessageEvent;
|
||||||
import org.elasticsearch.rest.support.RestUtils;
|
import org.elasticsearch.rest.support.RestUtils;
|
||||||
import org.jboss.netty.channel.ChannelHandler;
|
import org.jboss.netty.channel.ChannelHandler;
|
||||||
|
@ -46,7 +47,8 @@ public class HttpRequestHandler extends SimpleChannelUpstreamHandler {
|
||||||
|
|
||||||
public HttpRequestHandler(NettyHttpServerTransport serverTransport, boolean detailedErrorsEnabled, ThreadContext threadContext) {
|
public HttpRequestHandler(NettyHttpServerTransport serverTransport, boolean detailedErrorsEnabled, ThreadContext threadContext) {
|
||||||
this.serverTransport = serverTransport;
|
this.serverTransport = serverTransport;
|
||||||
this.corsPattern = RestUtils.checkCorsSettingForRegex(serverTransport.settings().get(NettyHttpServerTransport.SETTING_CORS_ALLOW_ORIGIN));
|
this.corsPattern = RestUtils
|
||||||
|
.checkCorsSettingForRegex(HttpTransportSettings.SETTING_CORS_ALLOW_ORIGIN.get(serverTransport.settings()));
|
||||||
this.httpPipeliningEnabled = serverTransport.pipelining;
|
this.httpPipeliningEnabled = serverTransport.pipelining;
|
||||||
this.detailedErrorsEnabled = detailedErrorsEnabled;
|
this.detailedErrorsEnabled = detailedErrorsEnabled;
|
||||||
this.threadContext = threadContext;
|
this.threadContext = threadContext;
|
||||||
|
|
|
@ -49,12 +49,12 @@ import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ALLOW_CREDENTIALS;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ALLOW_CREDENTIALS;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ALLOW_HEADERS;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ALLOW_HEADERS;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ALLOW_METHODS;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ALLOW_METHODS;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ALLOW_ORIGIN;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ALLOW_ORIGIN;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ENABLED;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ENABLED;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_MAX_AGE;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_MAX_AGE;
|
||||||
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.ACCESS_CONTROL_ALLOW_CREDENTIALS;
|
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.ACCESS_CONTROL_ALLOW_CREDENTIALS;
|
||||||
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.ACCESS_CONTROL_ALLOW_HEADERS;
|
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.ACCESS_CONTROL_ALLOW_HEADERS;
|
||||||
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.ACCESS_CONTROL_ALLOW_METHODS;
|
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.ACCESS_CONTROL_ALLOW_METHODS;
|
||||||
|
@ -117,7 +117,7 @@ public class NettyHttpChannel extends HttpChannel {
|
||||||
String originHeader = request.header(ORIGIN);
|
String originHeader = request.header(ORIGIN);
|
||||||
if (!Strings.isNullOrEmpty(originHeader)) {
|
if (!Strings.isNullOrEmpty(originHeader)) {
|
||||||
if (corsPattern == null) {
|
if (corsPattern == null) {
|
||||||
String allowedOrigins = transport.settings().get(SETTING_CORS_ALLOW_ORIGIN, null);
|
String allowedOrigins = SETTING_CORS_ALLOW_ORIGIN.get(transport.settings());
|
||||||
if (!Strings.isNullOrEmpty(allowedOrigins)) {
|
if (!Strings.isNullOrEmpty(allowedOrigins)) {
|
||||||
resp.headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, allowedOrigins);
|
resp.headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, allowedOrigins);
|
||||||
}
|
}
|
||||||
|
@ -128,8 +128,8 @@ public class NettyHttpChannel extends HttpChannel {
|
||||||
if (nettyRequest.getMethod() == HttpMethod.OPTIONS) {
|
if (nettyRequest.getMethod() == HttpMethod.OPTIONS) {
|
||||||
// Allow Ajax requests based on the CORS "preflight" request
|
// Allow Ajax requests based on the CORS "preflight" request
|
||||||
resp.headers().add(ACCESS_CONTROL_MAX_AGE, SETTING_CORS_MAX_AGE.get(transport.settings()));
|
resp.headers().add(ACCESS_CONTROL_MAX_AGE, SETTING_CORS_MAX_AGE.get(transport.settings()));
|
||||||
resp.headers().add(ACCESS_CONTROL_ALLOW_METHODS, transport.settings().get(SETTING_CORS_ALLOW_METHODS, "OPTIONS, HEAD, GET, POST, PUT, DELETE"));
|
resp.headers().add(ACCESS_CONTROL_ALLOW_METHODS, SETTING_CORS_ALLOW_METHODS.get(transport.settings()));
|
||||||
resp.headers().add(ACCESS_CONTROL_ALLOW_HEADERS, transport.settings().get(SETTING_CORS_ALLOW_HEADERS, "X-Requested-With, Content-Type, Content-Length"));
|
resp.headers().add(ACCESS_CONTROL_ALLOW_HEADERS, SETTING_CORS_ALLOW_HEADERS.get(transport.settings()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SETTING_CORS_ALLOW_CREDENTIALS.get(transport.settings())) {
|
if (SETTING_CORS_ALLOW_CREDENTIALS.get(transport.settings())) {
|
||||||
|
|
|
@ -26,8 +26,6 @@ import org.elasticsearch.common.netty.NettyUtils;
|
||||||
import org.elasticsearch.common.netty.OpenChannelsHandler;
|
import org.elasticsearch.common.netty.OpenChannelsHandler;
|
||||||
import org.elasticsearch.common.network.NetworkAddress;
|
import org.elasticsearch.common.network.NetworkAddress;
|
||||||
import org.elasticsearch.common.network.NetworkService;
|
import org.elasticsearch.common.network.NetworkService;
|
||||||
import org.elasticsearch.common.settings.Setting;
|
|
||||||
import org.elasticsearch.common.settings.Setting.Scope;
|
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.transport.BoundTransportAddress;
|
import org.elasticsearch.common.transport.BoundTransportAddress;
|
||||||
import org.elasticsearch.common.transport.InetSocketTransportAddress;
|
import org.elasticsearch.common.transport.InetSocketTransportAddress;
|
||||||
|
@ -46,6 +44,7 @@ import org.elasticsearch.http.HttpRequest;
|
||||||
import org.elasticsearch.http.HttpServerAdapter;
|
import org.elasticsearch.http.HttpServerAdapter;
|
||||||
import org.elasticsearch.http.HttpServerTransport;
|
import org.elasticsearch.http.HttpServerTransport;
|
||||||
import org.elasticsearch.http.HttpStats;
|
import org.elasticsearch.http.HttpStats;
|
||||||
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.http.netty.pipelining.HttpPipeliningHandler;
|
import org.elasticsearch.http.netty.pipelining.HttpPipeliningHandler;
|
||||||
import org.elasticsearch.monitor.jvm.JvmInfo;
|
import org.elasticsearch.monitor.jvm.JvmInfo;
|
||||||
import org.elasticsearch.threadpool.ThreadPool;
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
|
@ -75,7 +74,6 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
import static org.elasticsearch.common.network.NetworkService.TcpSettings.TCP_BLOCKING;
|
import static org.elasticsearch.common.network.NetworkService.TcpSettings.TCP_BLOCKING;
|
||||||
import static org.elasticsearch.common.network.NetworkService.TcpSettings.TCP_KEEP_ALIVE;
|
import static org.elasticsearch.common.network.NetworkService.TcpSettings.TCP_KEEP_ALIVE;
|
||||||
import static org.elasticsearch.common.network.NetworkService.TcpSettings.TCP_NO_DELAY;
|
import static org.elasticsearch.common.network.NetworkService.TcpSettings.TCP_NO_DELAY;
|
||||||
|
@ -93,22 +91,6 @@ public class NettyHttpServerTransport extends AbstractLifecycleComponent<HttpSer
|
||||||
NettyUtils.setup();
|
NettyUtils.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Setting<Boolean> SETTING_CORS_ENABLED = Setting.boolSetting("http.cors.enabled", false, false, Scope.CLUSTER);
|
|
||||||
public static final String SETTING_CORS_ALLOW_ORIGIN = "http.cors.allow-origin";
|
|
||||||
public static final Setting<Integer> SETTING_CORS_MAX_AGE = Setting.intSetting("http.cors.max-age", 1728000, false, Scope.CLUSTER);
|
|
||||||
public static final String SETTING_CORS_ALLOW_METHODS = "http.cors.allow-methods";
|
|
||||||
public static final String SETTING_CORS_ALLOW_HEADERS = "http.cors.allow-headers";
|
|
||||||
public static final Setting<Boolean> SETTING_CORS_ALLOW_CREDENTIALS = Setting.boolSetting("http.cors.allow-credentials", false, false, Scope.CLUSTER);
|
|
||||||
|
|
||||||
public static final Setting<Boolean> SETTING_PIPELINING = Setting.boolSetting("http.pipelining", true, false, Scope.CLUSTER);
|
|
||||||
public static final String SETTING_PIPELINING_MAX_EVENTS = "http.pipelining.max_events";
|
|
||||||
public static final String SETTING_HTTP_COMPRESSION = "http.compression";
|
|
||||||
public static final String SETTING_HTTP_COMPRESSION_LEVEL = "http.compression_level";
|
|
||||||
public static final Setting<Boolean> SETTING_HTTP_DETAILED_ERRORS_ENABLED = Setting.boolSetting("http.detailed_errors.enabled", true, false, Scope.CLUSTER);
|
|
||||||
|
|
||||||
public static final int DEFAULT_SETTING_PIPELINING_MAX_EVENTS = 10000;
|
|
||||||
public static final String DEFAULT_PORT_RANGE = "9200-9300";
|
|
||||||
|
|
||||||
protected final NetworkService networkService;
|
protected final NetworkService networkService;
|
||||||
protected final BigArrays bigArrays;
|
protected final BigArrays bigArrays;
|
||||||
|
|
||||||
|
@ -131,7 +113,7 @@ public class NettyHttpServerTransport extends AbstractLifecycleComponent<HttpSer
|
||||||
|
|
||||||
protected final boolean resetCookies;
|
protected final boolean resetCookies;
|
||||||
|
|
||||||
protected final String port;
|
protected final PortsRange port;
|
||||||
|
|
||||||
protected final String bindHosts[];
|
protected final String bindHosts[];
|
||||||
|
|
||||||
|
@ -176,28 +158,25 @@ public class NettyHttpServerTransport extends AbstractLifecycleComponent<HttpSer
|
||||||
if (settings.getAsBoolean("netty.epollBugWorkaround", false)) {
|
if (settings.getAsBoolean("netty.epollBugWorkaround", false)) {
|
||||||
System.setProperty("org.jboss.netty.epollBugWorkaround", "true");
|
System.setProperty("org.jboss.netty.epollBugWorkaround", "true");
|
||||||
}
|
}
|
||||||
|
ByteSizeValue maxContentLength = HttpTransportSettings.SETTING_HTTP_MAX_CONTENT_LENGTH.get(settings);
|
||||||
ByteSizeValue maxContentLength = settings.getAsBytesSize("http.netty.max_content_length", settings.getAsBytesSize("http.max_content_length", new ByteSizeValue(100, ByteSizeUnit.MB)));
|
this.maxChunkSize = HttpTransportSettings.SETTING_HTTP_MAX_CHUNK_SIZE.get(settings);
|
||||||
this.maxChunkSize = settings.getAsBytesSize("http.netty.max_chunk_size", settings.getAsBytesSize("http.max_chunk_size", new ByteSizeValue(8, ByteSizeUnit.KB)));
|
this.maxHeaderSize = HttpTransportSettings.SETTING_HTTP_MAX_HEADER_SIZE.get(settings);
|
||||||
this.maxHeaderSize = settings.getAsBytesSize("http.netty.max_header_size", settings.getAsBytesSize("http.max_header_size", new ByteSizeValue(8, ByteSizeUnit.KB)));
|
this.maxInitialLineLength = HttpTransportSettings.SETTING_HTTP_MAX_INITIAL_LINE_LENGTH.get(settings);
|
||||||
this.maxInitialLineLength = settings.getAsBytesSize("http.netty.max_initial_line_length", settings.getAsBytesSize("http.max_initial_line_length", new ByteSizeValue(4, ByteSizeUnit.KB)));
|
this.resetCookies = HttpTransportSettings.SETTING_HTTP_RESET_COOKIES.get(settings);
|
||||||
// don't reset cookies by default, since I don't think we really need to
|
|
||||||
// note, parsing cookies was fixed in netty 3.5.1 regarding stack allocation, but still, currently, we don't need cookies
|
|
||||||
this.resetCookies = settings.getAsBoolean("http.netty.reset_cookies", settings.getAsBoolean("http.reset_cookies", false));
|
|
||||||
this.maxCumulationBufferCapacity = settings.getAsBytesSize("http.netty.max_cumulation_buffer_capacity", null);
|
this.maxCumulationBufferCapacity = settings.getAsBytesSize("http.netty.max_cumulation_buffer_capacity", null);
|
||||||
this.maxCompositeBufferComponents = settings.getAsInt("http.netty.max_composite_buffer_components", -1);
|
this.maxCompositeBufferComponents = settings.getAsInt("http.netty.max_composite_buffer_components", -1);
|
||||||
this.workerCount = settings.getAsInt("http.netty.worker_count", EsExecutors.boundedNumberOfProcessors(settings) * 2);
|
this.workerCount = settings.getAsInt("http.netty.worker_count", EsExecutors.boundedNumberOfProcessors(settings) * 2);
|
||||||
this.blockingServer = settings.getAsBoolean("http.netty.http.blocking_server", TCP_BLOCKING.get(settings));
|
this.blockingServer = settings.getAsBoolean("http.netty.http.blocking_server", TCP_BLOCKING.get(settings));
|
||||||
this.port = settings.get("http.netty.port", settings.get("http.port", DEFAULT_PORT_RANGE));
|
this.port = HttpTransportSettings.SETTING_HTTP_PORT.get(settings);
|
||||||
this.bindHosts = settings.getAsArray("http.netty.bind_host", settings.getAsArray("http.bind_host", settings.getAsArray("http.host", null)));
|
this.bindHosts = settings.getAsArray("http.netty.bind_host", settings.getAsArray("http.bind_host", settings.getAsArray("http.host", null)));
|
||||||
this.publishHosts = settings.getAsArray("http.netty.publish_host", settings.getAsArray("http.publish_host", settings.getAsArray("http.host", null)));
|
this.publishHosts = settings.getAsArray("http.netty.publish_host", settings.getAsArray("http.publish_host", settings.getAsArray("http.host", null)));
|
||||||
this.publishPort = settings.getAsInt("http.netty.publish_port", settings.getAsInt("http.publish_port", 0));
|
this.publishPort = HttpTransportSettings.SETTING_HTTP_PUBLISH_PORT.get(settings);
|
||||||
this.tcpNoDelay = settings.getAsBoolean("http.netty.tcp_no_delay", TCP_NO_DELAY.get(settings));
|
this.tcpNoDelay = settings.getAsBoolean("http.netty.tcp_no_delay", TCP_NO_DELAY.get(settings));
|
||||||
this.tcpKeepAlive = settings.getAsBoolean("http.netty.tcp_keep_alive", TCP_KEEP_ALIVE.get(settings));
|
this.tcpKeepAlive = settings.getAsBoolean("http.netty.tcp_keep_alive", TCP_KEEP_ALIVE.get(settings));
|
||||||
this.reuseAddress = settings.getAsBoolean("http.netty.reuse_address", TCP_REUSE_ADDRESS.get(settings));
|
this.reuseAddress = settings.getAsBoolean("http.netty.reuse_address", TCP_REUSE_ADDRESS.get(settings));
|
||||||
this.tcpSendBufferSize = settings.getAsBytesSize("http.netty.tcp_send_buffer_size", TCP_SEND_BUFFER_SIZE.get(settings));
|
this.tcpSendBufferSize = settings.getAsBytesSize("http.netty.tcp_send_buffer_size", TCP_SEND_BUFFER_SIZE.get(settings));
|
||||||
this.tcpReceiveBufferSize = settings.getAsBytesSize("http.netty.tcp_receive_buffer_size", TCP_RECEIVE_BUFFER_SIZE.get(settings));
|
this.tcpReceiveBufferSize = settings.getAsBytesSize("http.netty.tcp_receive_buffer_size", TCP_RECEIVE_BUFFER_SIZE.get(settings));
|
||||||
this.detailedErrorsEnabled = SETTING_HTTP_DETAILED_ERRORS_ENABLED.get(settings);
|
this.detailedErrorsEnabled = HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED.get(settings);
|
||||||
|
|
||||||
long defaultReceiverPredictor = 512 * 1024;
|
long defaultReceiverPredictor = 512 * 1024;
|
||||||
if (JvmInfo.jvmInfo().getMem().getDirectMemoryMax().bytes() > 0) {
|
if (JvmInfo.jvmInfo().getMem().getDirectMemoryMax().bytes() > 0) {
|
||||||
|
@ -215,10 +194,10 @@ public class NettyHttpServerTransport extends AbstractLifecycleComponent<HttpSer
|
||||||
receiveBufferSizePredictorFactory = new AdaptiveReceiveBufferSizePredictorFactory((int) receivePredictorMin.bytes(), (int) receivePredictorMin.bytes(), (int) receivePredictorMax.bytes());
|
receiveBufferSizePredictorFactory = new AdaptiveReceiveBufferSizePredictorFactory((int) receivePredictorMin.bytes(), (int) receivePredictorMin.bytes(), (int) receivePredictorMax.bytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.compression = settings.getAsBoolean(SETTING_HTTP_COMPRESSION, false);
|
this.compression = HttpTransportSettings.SETTING_HTTP_COMPRESSION.get(settings);
|
||||||
this.compressionLevel = settings.getAsInt(SETTING_HTTP_COMPRESSION_LEVEL, 6);
|
this.compressionLevel = HttpTransportSettings.SETTING_HTTP_COMPRESSION_LEVEL.get(settings);
|
||||||
this.pipelining = SETTING_PIPELINING.get(settings);
|
this.pipelining = HttpTransportSettings.SETTING_PIPELINING.get(settings);
|
||||||
this.pipeliningMaxEvents = settings.getAsInt(SETTING_PIPELINING_MAX_EVENTS, DEFAULT_SETTING_PIPELINING_MAX_EVENTS);
|
this.pipeliningMaxEvents = HttpTransportSettings.SETTING_PIPELINING_MAX_EVENTS.get(settings);
|
||||||
|
|
||||||
// validate max content length
|
// validate max content length
|
||||||
if (maxContentLength.bytes() > Integer.MAX_VALUE) {
|
if (maxContentLength.bytes() > Integer.MAX_VALUE) {
|
||||||
|
@ -312,10 +291,9 @@ public class NettyHttpServerTransport extends AbstractLifecycleComponent<HttpSer
|
||||||
}
|
}
|
||||||
|
|
||||||
private InetSocketTransportAddress bindAddress(final InetAddress hostAddress) {
|
private InetSocketTransportAddress bindAddress(final InetAddress hostAddress) {
|
||||||
PortsRange portsRange = new PortsRange(port);
|
|
||||||
final AtomicReference<Exception> lastException = new AtomicReference<>();
|
final AtomicReference<Exception> lastException = new AtomicReference<>();
|
||||||
final AtomicReference<InetSocketAddress> boundSocket = new AtomicReference<>();
|
final AtomicReference<InetSocketAddress> boundSocket = new AtomicReference<>();
|
||||||
boolean success = portsRange.iterate(new PortsRange.PortCallback() {
|
boolean success = port.iterate(new PortsRange.PortCallback() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPortNumber(int portNumber) {
|
public boolean onPortNumber(int portNumber) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.common.network.NetworkModule;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.transport.BoundTransportAddress;
|
import org.elasticsearch.common.transport.BoundTransportAddress;
|
||||||
import org.elasticsearch.common.transport.InetSocketTransportAddress;
|
import org.elasticsearch.common.transport.InetSocketTransportAddress;
|
||||||
import org.elasticsearch.node.Node;
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.test.ESIntegTestCase;
|
import org.elasticsearch.test.ESIntegTestCase;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
||||||
|
@ -41,7 +41,7 @@ public class HttpPublishPortIT extends ESIntegTestCase {
|
||||||
return Settings.settingsBuilder()
|
return Settings.settingsBuilder()
|
||||||
.put(super.nodeSettings(nodeOrdinal))
|
.put(super.nodeSettings(nodeOrdinal))
|
||||||
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
||||||
.put("http.publish_port", 9080)
|
.put(HttpTransportSettings.SETTING_HTTP_PUBLISH_PORT.getKey(), 9080)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.common.network.NetworkService;
|
import org.elasticsearch.common.network.NetworkService;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.util.MockBigArrays;
|
import org.elasticsearch.common.util.MockBigArrays;
|
||||||
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.indices.breaker.NoneCircuitBreakerService;
|
import org.elasticsearch.indices.breaker.NoneCircuitBreakerService;
|
||||||
import org.elasticsearch.rest.RestResponse;
|
import org.elasticsearch.rest.RestResponse;
|
||||||
import org.elasticsearch.rest.RestStatus;
|
import org.elasticsearch.rest.RestStatus;
|
||||||
|
@ -81,7 +82,7 @@ public class NettyHttpChannelTests extends ESTestCase {
|
||||||
public void testCorsEnabledWithoutAllowOrigins() {
|
public void testCorsEnabledWithoutAllowOrigins() {
|
||||||
// Set up a HTTP transport with only the CORS enabled setting
|
// Set up a HTTP transport with only the CORS enabled setting
|
||||||
Settings settings = Settings.builder()
|
Settings settings = Settings.builder()
|
||||||
.put(NettyHttpServerTransport.SETTING_CORS_ENABLED.getKey(), true)
|
.put(HttpTransportSettings.SETTING_CORS_ENABLED.getKey(), true)
|
||||||
.build();
|
.build();
|
||||||
httpServerTransport = new NettyHttpServerTransport(settings, networkService, bigArrays, threadPool);
|
httpServerTransport = new NettyHttpServerTransport(settings, networkService, bigArrays, threadPool);
|
||||||
HttpRequest httpRequest = new TestHttpRequest();
|
HttpRequest httpRequest = new TestHttpRequest();
|
||||||
|
@ -104,8 +105,8 @@ public class NettyHttpChannelTests extends ESTestCase {
|
||||||
public void testCorsEnabledWithAllowOrigins() {
|
public void testCorsEnabledWithAllowOrigins() {
|
||||||
// create a http transport with CORS enabled and allow origin configured
|
// create a http transport with CORS enabled and allow origin configured
|
||||||
Settings settings = Settings.builder()
|
Settings settings = Settings.builder()
|
||||||
.put(NettyHttpServerTransport.SETTING_CORS_ENABLED.getKey(), true)
|
.put(HttpTransportSettings.SETTING_CORS_ENABLED.getKey(), true)
|
||||||
.put(NettyHttpServerTransport.SETTING_CORS_ALLOW_ORIGIN, "remote-host")
|
.put(HttpTransportSettings.SETTING_CORS_ALLOW_ORIGIN.getKey(), "remote-host")
|
||||||
.build();
|
.build();
|
||||||
httpServerTransport = new NettyHttpServerTransport(settings, networkService, bigArrays, threadPool);
|
httpServerTransport = new NettyHttpServerTransport(settings, networkService, bigArrays, threadPool);
|
||||||
HttpRequest httpRequest = new TestHttpRequest();
|
HttpRequest httpRequest = new TestHttpRequest();
|
||||||
|
|
|
@ -23,8 +23,7 @@ import org.apache.http.impl.client.HttpClients;
|
||||||
import org.elasticsearch.common.network.NetworkModule;
|
import org.elasticsearch.common.network.NetworkModule;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.http.HttpServerTransport;
|
import org.elasticsearch.http.HttpServerTransport;
|
||||||
import org.elasticsearch.http.netty.NettyHttpServerTransport;
|
import org.elasticsearch.http.HttpTransportSettings;
|
||||||
import org.elasticsearch.node.Node;
|
|
||||||
import org.elasticsearch.test.ESIntegTestCase;
|
import org.elasticsearch.test.ESIntegTestCase;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
||||||
|
@ -45,7 +44,7 @@ public class DetailedErrorsDisabledIT extends ESIntegTestCase {
|
||||||
return Settings.settingsBuilder()
|
return Settings.settingsBuilder()
|
||||||
.put(super.nodeSettings(nodeOrdinal))
|
.put(super.nodeSettings(nodeOrdinal))
|
||||||
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
||||||
.put(NettyHttpServerTransport.SETTING_HTTP_DETAILED_ERRORS_ENABLED.getKey(), false)
|
.put(HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED.getKey(), false)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,15 +22,14 @@ import org.elasticsearch.common.logging.ESLogger;
|
||||||
import org.elasticsearch.common.logging.Loggers;
|
import org.elasticsearch.common.logging.Loggers;
|
||||||
import org.elasticsearch.common.network.NetworkModule;
|
import org.elasticsearch.common.network.NetworkModule;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.node.Node;
|
|
||||||
import org.elasticsearch.test.ESIntegTestCase;
|
import org.elasticsearch.test.ESIntegTestCase;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
||||||
import org.elasticsearch.test.rest.client.http.HttpResponse;
|
import org.elasticsearch.test.rest.client.http.HttpResponse;
|
||||||
|
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ALLOW_CREDENTIALS;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ALLOW_CREDENTIALS;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ALLOW_ORIGIN;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ALLOW_ORIGIN;
|
||||||
import static org.elasticsearch.http.netty.NettyHttpServerTransport.SETTING_CORS_ENABLED;
|
import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ENABLED;
|
||||||
import static org.hamcrest.Matchers.hasKey;
|
import static org.hamcrest.Matchers.hasKey;
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
import static org.hamcrest.Matchers.not;
|
import static org.hamcrest.Matchers.not;
|
||||||
|
@ -47,7 +46,7 @@ public class CorsRegexIT extends ESIntegTestCase {
|
||||||
protected Settings nodeSettings(int nodeOrdinal) {
|
protected Settings nodeSettings(int nodeOrdinal) {
|
||||||
return Settings.settingsBuilder()
|
return Settings.settingsBuilder()
|
||||||
.put(super.nodeSettings(nodeOrdinal))
|
.put(super.nodeSettings(nodeOrdinal))
|
||||||
.put(SETTING_CORS_ALLOW_ORIGIN, "/https?:\\/\\/localhost(:[0-9]+)?/")
|
.put(SETTING_CORS_ALLOW_ORIGIN.getKey(), "/https?:\\/\\/localhost(:[0-9]+)?/")
|
||||||
.put(SETTING_CORS_ALLOW_CREDENTIALS.getKey(), true)
|
.put(SETTING_CORS_ALLOW_CREDENTIALS.getKey(), true)
|
||||||
.put(SETTING_CORS_ENABLED.getKey(), true)
|
.put(SETTING_CORS_ENABLED.getKey(), true)
|
||||||
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
.put(NetworkModule.HTTP_ENABLED.getKey(), true)
|
||||||
|
|
Loading…
Reference in New Issue