logstash-input-http 3.10.0-java → 4.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5da80cab8cc393b3a17069505ee11f7e29446a8d5593f5b1a8727641b9b983dc
4
- data.tar.gz: '068a700971f647791e2badbd5391538978f82e2abb9c8e2d939c086b0c683d32'
3
+ metadata.gz: fe102365f0992c7be2664c393bb5678e17980fe6f66d35d8027a3b2a90d572d9
4
+ data.tar.gz: 52408f65829a38c1737ed7bb06a7b01ec1f1b1038bf36cd1e610d8c490ac723c
5
5
  SHA512:
6
- metadata.gz: a431fb3abc16f2bfca58de5fb91d8920999134fd2dd0a8fff94ce40ebdc36110ef7dcd0471f832deb4d9c36f437c5694c3ae7a1080bc9c782e8eabe183a3fde9
7
- data.tar.gz: 61c3e32a3314438bcd4f1be32e691c7cf6c2936fbfeb7ea9ef4f4c4459e97d1ed895347d274f450e469d451c81cfdb834767d4922bb1ab53924db300478afe63
6
+ metadata.gz: eed5f4bde55202f473b37a0743dc4995c675980fdc365c0b0df230ae209477d6e108ecfb028387cc1c57f826cfd38f9c7e295d30f8ebb07a3d0d6c6819790fe2
7
+ data.tar.gz: 7d72588d9a877920e22d37d7870999ea22b81680f0834179bdef3ab0ebac355337285b2db2c58ee97aaa7f3722ecd8f866770cded3660fef5872921e81f0895a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## 4.1.0
2
+ - add improved proactive rate-limiting, rejecting new requests when queue has been actively blocking for more than 10 seconds [#186](https://github.com/logstash-plugins/logstash-input-http/pull/186)
3
+ - This is a forward-port of functionality also introduced to the 3.x series in v3.10.0
4
+
5
+ ## 4.0.0
6
+ - SSL settings that were marked deprecated in version `3.7.0` are now marked obsolete, and will prevent the plugin from starting.
7
+ - These settings are:
8
+ - `tls_min_version`, which should be replaced by `ssl_supported_protocols`
9
+ - `tls_max_version`, which should be replaced by `ssl_supported_protocols`
10
+ - `cipher_suites`, which should bre replaced by `ssl_cipher_suites`
11
+ - `ssl`, which should bre replaced by `ssl_enabled`
12
+ - `keystore`, which should bre replaced by `ssl_keystore_path`
13
+ - `keystore_password`, which should bre replaced by `ssl_keystore_password`
14
+ - `ssl_verify_mode`, which should bre replaced by `ssl_client_authentication`
15
+ - `verify_mode`, which should bre replaced by `ssl_client_authentication`
16
+ - [#182](https://github.com/logstash-plugins/logstash-input-http/pull/182)
17
+
1
18
  ## 3.10.0
2
19
  - add improved proactive rate-limiting, rejecting new requests when queue has been actively blocking for more than 10 seconds [#179](https://github.com/logstash-plugins/logstash-input-http/pull/179)
3
20
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.10.0
1
+ 4.1.0
data/docs/index.asciidoc CHANGED
@@ -87,21 +87,21 @@ for the request's content-type is found in the `additional_codecs` setting.
87
87
 
88
88
  This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
89
89
 
90
+ NOTE: As of version `4.0.0` of this plugin, a number of previously deprecated settings related to SSL have been removed.
91
+ Please check out <<plugins-{type}s-{plugin}-obsolete-options>> for details.
92
+
93
+
90
94
  [cols="<,<,<",options="header",]
91
95
  |=======================================================================
92
96
  |Setting |Input type|Required
93
97
  | <<plugins-{type}s-{plugin}-additional_codecs>> |<<hash,hash>>|No
94
- | <<plugins-{type}s-{plugin}-cipher_suites>> |<<array,array>>|__Deprecated__
95
98
  | <<plugins-{type}s-{plugin}-ecs_compatibility>> | <<string,string>>|No
96
99
  | <<plugins-{type}s-{plugin}-host>> |<<string,string>>|No
97
- | <<plugins-{type}s-{plugin}-keystore>> |<<path,path>>|__Deprecated__
98
- | <<plugins-{type}s-{plugin}-keystore_password>> |<<password,password>>|__Deprecated__
99
100
  | <<plugins-{type}s-{plugin}-password>> |<<password,password>>|No
100
101
  | <<plugins-{type}s-{plugin}-port>> |<<number,number>>|No
101
102
  | <<plugins-{type}s-{plugin}-max_pending_requests>> |<<number,number>>|No
102
103
  | <<plugins-{type}s-{plugin}-response_headers>> |<<hash,hash>>|No
103
104
  | <<plugins-{type}s-{plugin}-response_code>> |<<number,number>>, one of `[200, 201, 202, 204]`|No
104
- | <<plugins-{type}s-{plugin}-ssl>> |<<boolean,boolean>>|__Deprecated__
105
105
  | <<plugins-{type}s-{plugin}-ssl_certificate>> |a valid filesystem path|No
106
106
  | <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> |<<array,array>>|No
107
107
  | <<plugins-{type}s-{plugin}-ssl_cipher_suites>> |<<array,array>>|No
@@ -117,12 +117,8 @@ This plugin supports the following configuration options plus the <<plugins-{typ
117
117
  | <<plugins-{type}s-{plugin}-ssl_truststore_password>> |<<password,password>>|No
118
118
  | <<plugins-{type}s-{plugin}-ssl_truststore_path>> |<<path,path>>|No
119
119
  | <<plugins-{type}s-{plugin}-ssl_truststore_type>> |<<string,string>>|No
120
- | <<plugins-{type}s-{plugin}-ssl_verify_mode>> |<<string,string>>, one of `["none", "peer", "force_peer"]`|__Deprecated__
121
120
  | <<plugins-{type}s-{plugin}-threads>> |<<number,number>>|No
122
- | <<plugins-{type}s-{plugin}-tls_max_version>> |<<number,number>>|__Deprecated__
123
- | <<plugins-{type}s-{plugin}-tls_min_version>> |<<number,number>>|__Deprecated__
124
121
  | <<plugins-{type}s-{plugin}-user>> |<<string,string>>|No
125
- | <<plugins-{type}s-{plugin}-verify_mode>> |<<string,string>>, one of `["none", "peer", "force_peer"]`|__Deprecated__
126
122
  |=======================================================================
127
123
 
128
124
  Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
@@ -140,13 +136,6 @@ Apply specific codecs for specific content types.
140
136
  The default codec will be applied only after this list is checked
141
137
  and no codec for the request's content-type is found
142
138
 
143
- [id="plugins-{type}s-{plugin}-cipher_suites"]
144
- ===== `cipher_suites`
145
- deprecated[3.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_cipher_suites>>]
146
-
147
- * Value type is <<array,array>>
148
-
149
- The list of cipher suites to use, listed by priorities.
150
139
 
151
140
  [id="plugins-{type}s-{plugin}-ecs_compatibility"]
152
141
  ===== `ecs_compatibility`
@@ -220,23 +209,6 @@ See <<plugins-{type}s-{plugin}-ecs_metadata>> for detailed information.
220
209
 
221
210
  The host or ip to bind
222
211
 
223
- [id="plugins-{type}s-{plugin}-keystore"]
224
- ===== `keystore`
225
- deprecated[3.7.0, Use <<plugins-{type}s-{plugin}-ssl_keystore_path>> instead]
226
-
227
- * Value type is <<path,path>>
228
- * There is no default value for this setting.
229
-
230
- The JKS keystore to validate the client's certificates
231
-
232
- [id="plugins-{type}s-{plugin}-keystore_password"]
233
- ===== `keystore_password`
234
- deprecated[3.7.0, Use <<plugins-{type}s-{plugin}-ssl_keystore_password>> instead]
235
-
236
- * Value type is <<password,password>>
237
- * There is no default value for this setting.
238
-
239
- Set the keystore password
240
212
 
241
213
  [id="plugins-{type}s-{plugin}-password"]
242
214
  ===== `password`
@@ -314,16 +286,6 @@ specify a target field for the client host of the http request
314
286
 
315
287
  specify target field for the client host of the http request
316
288
 
317
- [id="plugins-{type}s-{plugin}-ssl"]
318
- ===== `ssl`
319
- deprecated[3.7.0, Replaced by <<plugins-{type}s-{plugin}-ssl_enabled>>]
320
-
321
- * Value type is <<boolean,boolean>>
322
- * Default value is `false`
323
-
324
- Events are, by default, sent in plain text. You can
325
- enable encryption by setting `ssl` to true and configuring
326
- the `ssl_certificate` and `ssl_key` options.
327
289
 
328
290
  [id="plugins-{type}s-{plugin}-ssl_certificate"]
329
291
  ===== `ssl_certificate`
@@ -473,22 +435,6 @@ NOTE: You cannot use this setting and <<plugins-{type}s-{plugin}-ssl_certificate
473
435
 
474
436
  The format of the truststore file. It must be either `jks` or `pkcs12`.
475
437
 
476
- [id="plugins-{type}s-{plugin}-ssl_verify_mode"]
477
- ===== `ssl_verify_mode`
478
- deprecated[3.7.0, Replaced by <<plugins-{type}s-{plugin}-ssl_client_authentication>>]
479
-
480
- * Value can be any of: `none`, `peer`, `force_peer`
481
- * Default value is `"none"`
482
-
483
- By default the server doesn't do any client verification.
484
-
485
- `peer` will make the server ask the client to provide a certificate.
486
- If the client provides a certificate, it will be validated.
487
-
488
- `force_peer` will make the server ask the client to provide a certificate.
489
- If the client doesn't provide a certificate, the connection will be closed.
490
-
491
- This option needs to be used with <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> and a defined list of CAs.
492
438
 
493
439
  [id="plugins-{type}s-{plugin}-threads"]
494
440
  ===== `threads`
@@ -498,23 +444,6 @@ This option needs to be used with <<plugins-{type}s-{plugin}-ssl_certificate_aut
498
444
 
499
445
  Number of threads to use for both accepting connections and handling requests
500
446
 
501
- [id="plugins-{type}s-{plugin}-tls_max_version"]
502
- ===== `tls_max_version`
503
- deprecated[3.6.0]
504
-
505
- * Value type is <<number,number>>
506
-
507
- The maximum TLS version allowed for the encrypted connections.
508
- The value must be the one of the following: 1.1 for TLS 1.1, 1.2 for TLS 1.2, 1.3 for TLSv1.3
509
-
510
- [id="plugins-{type}s-{plugin}-tls_min_version"]
511
- ===== `tls_min_version`
512
- deprecated[3.6.0]
513
-
514
- * Value type is <<number,number>>
515
-
516
- The minimum TLS version allowed for the encrypted connections.
517
- The value must be one of the following: 1.1 for TLS 1.1, 1.2 for TLS 1.2, 1.3 for TLSv1.3
518
447
 
519
448
  [id="plugins-{type}s-{plugin}-user"]
520
449
  ===== `user`
@@ -524,15 +453,24 @@ The value must be one of the following: 1.1 for TLS 1.1, 1.2 for TLS 1.2, 1.3 fo
524
453
 
525
454
  Username for basic authorization
526
455
 
527
- [id="plugins-{type}s-{plugin}-verify_mode"]
528
- ===== `verify_mode`
529
- deprecated[3.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_verify_mode>>]
530
-
531
- * Value can be any of: `none`, `peer`, `force_peer`
532
- * Default value is `"none"`
456
+ [id="plugins-{type}s-{plugin}-obsolete-options"]
457
+ ==== HTTP Input Obsolete Configuration Options
533
458
 
534
- Set the client certificate verification method. Valid methods: none, peer, force_peer
459
+ WARNING: As of version `4.0.0` of this plugin, some configuration options have been replaced.
460
+ The plugin will fail to start if it contains any of these obsolete options.
535
461
 
462
+ [cols="<,<",options="header",]
463
+ |=======================================================================
464
+ |Setting|Replaced by
465
+ | cipher_suites |<<plugins-{type}s-{plugin}-ssl_cipher_suites>>
466
+ | keystore |<<plugins-{type}s-{plugin}-ssl_keystore_path>>
467
+ | keystore_password |<<plugins-{type}s-{plugin}-ssl_keystore_password>>
468
+ | ssl |<<plugins-{type}s-{plugin}-ssl_enabled>>
469
+ | ssl_verify_mode |<<plugins-{type}s-{plugin}-ssl_client_authentication>>
470
+ | tls_max_version |<<plugins-{type}s-{plugin}-ssl_supported_protocols>>
471
+ | tls_min_version |<<plugins-{type}s-{plugin}-ssl_supported_protocols>>
472
+ | verify_mode |<<plugins-{type}s-{plugin}-ssl_client_authentication>>
473
+ |=======================================================================
536
474
 
537
475
  [id="plugins-{type}s-{plugin}-common-options"]
538
476
  include::{include_path}/{type}.asciidoc[]
@@ -55,11 +55,6 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
55
55
  # Password for basic authorization
56
56
  config :password, :validate => :password, :required => false
57
57
 
58
- # Events are by default sent in plain text. You can
59
- # enable encryption by setting `ssl` to true and configuring
60
- # the `ssl_certificate` and `ssl_key` options.
61
- config :ssl, :validate => :boolean, :default => false, :deprecated => "Set 'ssl_enabled' instead."
62
-
63
58
  # Events are by default sent in plain text. You can
64
59
  # enable encryption by setting `ssl` to true and configuring
65
60
  # the `ssl_certificate` and `ssl_key` options.
@@ -108,17 +103,6 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
108
103
  # This option needs to be used with `ssl_certificate_authorities` and a defined list of CAs.
109
104
  config :ssl_client_authentication, :validate => %w[none optional required], :default => 'none'
110
105
 
111
- # By default the server doesn't do any client verification.
112
- #
113
- # `peer` will make the server ask the client to provide a certificate.
114
- # If the client provides a certificate, it will be validated.
115
- #
116
- # `force_peer` will make the server ask the client to provide a certificate.
117
- # If the client doesn't provide a certificate, the connection will be closed.
118
- #
119
- # This option needs to be used with `ssl_certificate_authorities` and a defined list of CAs.
120
- config :ssl_verify_mode, :validate => ["none", "peer", "force_peer"], :default => "none", :deprecated => "Set 'ssl_client_authentication' instead."
121
-
122
106
  # Time in milliseconds for an incomplete ssl handshake to timeout
123
107
  config :ssl_handshake_timeout, :validate => :number, :default => 10000
124
108
 
@@ -150,25 +134,15 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
150
134
 
151
135
  config :response_code, :validate => [200, 201, 202, 204], :default => 200
152
136
 
153
- # Deprecated options
154
-
155
- # The JKS keystore to validate the client's certificates
156
- config :keystore, :validate => :path, :deprecated => "Set 'ssl_keystore_path' instead."
157
-
158
- # The JKS keystore password
159
- config :keystore_password, :validate => :password, :deprecated => "Set 'ssl_keystore_password' instead."
160
-
161
- config :verify_mode, :validate => ['none', 'peer', 'force_peer'], :default => 'none', :deprecated => "Set 'ssl_client_authentication' instead."
162
-
163
- config :cipher_suites, :validate => :array, :default => [], :deprecated => "Set 'ssl_cipher_suites' instead."
164
-
165
- # The minimum TLS version allowed for the encrypted connections. The value must be one of the following:
166
- # 1.0 for TLS 1.0, 1.1 for TLS 1.1, 1.2 for TLS 1.2, 1.3 for TLS 1.3
167
- config :tls_min_version, :validate => :number, :default => TLS.min.version, :deprecated => "Set 'ssl_supported_protocols' instead."
168
-
169
- # The maximum TLS version allowed for the encrypted connections. The value must be the one of the following:
170
- # 1.0 for TLS 1.0, 1.1 for TLS 1.1, 1.2 for TLS 1.2, 1.3 for TLS 1.3
171
- config :tls_max_version, :validate => :number, :default => TLS.max.version, :deprecated => "Set 'ssl_supported_protocols' instead."
137
+ # Obsolete Settings
138
+ config :ssl, :obsolete => "Set 'ssl_enabled' instead."
139
+ config :keystore, :obsolete => "Set 'ssl_keystore_path' instead."
140
+ config :keystore_password, :validate => :password, :obsolete => "Set 'ssl_keystore_password' instead."
141
+ config :verify_mode, :obsolete => "Set 'ssl_client_authentication' instead."
142
+ config :cipher_suites, :obsolete => "Set 'ssl_cipher_suites' instead."
143
+ config :tls_min_version, :obsolete => "Set 'ssl_supported_protocols' instead."
144
+ config :tls_max_version, :obsolete => "Set 'ssl_supported_protocols' instead."
145
+ config :ssl_verify_mode, :obsolete => "Set 'ssl_client_authentication' instead."
172
146
 
173
147
  attr_reader :codecs
174
148
 
@@ -200,8 +174,6 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
200
174
  public
201
175
  def register
202
176
 
203
- setup_ssl_params!
204
-
205
177
  validate_ssl_settings!
206
178
 
207
179
  if @user && @password
@@ -342,34 +314,6 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
342
314
  end
343
315
 
344
316
  def setup_ssl_params!
345
- @ssl_enabled = normalize_config(:ssl_enabled) do |normalizer|
346
- normalizer.with_deprecated_alias(:ssl)
347
- end
348
-
349
- @ssl_cipher_suites = normalize_config(:ssl_cipher_suites) do |normalizer|
350
- normalizer.with_deprecated_alias(:cipher_suites)
351
- end
352
-
353
- @ssl_supported_protocols = normalize_config(:ssl_supported_protocols) do |normalizer|
354
- normalizer.with_deprecated_mapping(:tls_min_version, :tls_max_version) do |tls_min_version, tls_max_version|
355
- TLS.get_supported(tls_min_version..tls_max_version).map(&:name)
356
- end
357
- end
358
-
359
- @ssl_client_authentication = normalize_config(:ssl_client_authentication) do |normalizer|
360
- normalizer.with_deprecated_mapping(:verify_mode, :ssl_verify_mode) do |verify_mode, ssl_verify_mode|
361
- normalize_ssl_client_authentication_value!(verify_mode, ssl_verify_mode)
362
- end
363
- end
364
-
365
- @ssl_keystore_path = normalize_config(:ssl_keystore_path) do |normalizer|
366
- normalizer.with_deprecated_alias(:keystore)
367
- end
368
-
369
- @ssl_keystore_password = normalize_config(:ssl_keystore_password) do |normalizer|
370
- normalizer.with_deprecated_alias(:keystore_password)
371
- end
372
-
373
317
  params['ssl_enabled'] = @ssl_enabled unless @ssl_enabled.nil?
374
318
  params['ssl_cipher_suites'] = @ssl_cipher_suites unless @ssl_cipher_suites.nil?
375
319
  params['ssl_supported_protocols'] = @ssl_supported_protocols unless @ssl_supported_protocols.nil?
@@ -378,17 +322,6 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
378
322
  params['ssl_keystore_password'] = @ssl_keystore_password unless @ssl_keystore_password.nil?
379
323
  end
380
324
 
381
- def normalize_ssl_client_authentication_value!(verify_mode, ssl_verify_mode)
382
- verify_mode_explicitly_set = original_params.key?("verify_mode")
383
-
384
- if verify_mode_explicitly_set && original_params.key?("ssl_verify_mode")
385
- raise LogStash::ConfigurationError, "Both (deprecated) `ssl_verify_mode` and `verify_mode` were set. Use only `ssl_verify_mode`"
386
- end
387
-
388
- deprecated_value = (verify_mode_explicitly_set ? verify_mode : ssl_verify_mode).downcase
389
- SSL_VERIFY_MODE_TO_CLIENT_AUTHENTICATION_MAP[deprecated_value]
390
- end
391
-
392
325
  def create_http_server(message_handler)
393
326
  org.logstash.plugins.inputs.http.NettyHttpServer.new(
394
327
  @host, @port, message_handler, build_ssl_params, @threads, @max_pending_requests, @max_content_length, @response_code)
@@ -467,13 +400,7 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
467
400
  end
468
401
 
469
402
  def provided_ssl_client_authentication_config(values = [@ssl_client_authentication])
470
- if original_params.include?('ssl_verify_mode')
471
- ['ssl_verify_mode', *values.map { |v| SSL_VERIFY_MODE_TO_CLIENT_AUTHENTICATION_MAP.key(v) }]
472
- elsif original_params.include?('verify_mode')
473
- ['verify_mode', *values.map { |v| SSL_VERIFY_MODE_TO_CLIENT_AUTHENTICATION_MAP.key(v) }]
474
- else
475
403
  ['ssl_client_authentication', *values]
476
- end
477
404
  end
478
405
 
479
406
  private
@@ -8,4 +8,4 @@ require_jar('io.netty', 'netty-common', '4.1.115.Final')
8
8
  require_jar('io.netty', 'netty-transport', '4.1.115.Final')
9
9
  require_jar('io.netty', 'netty-handler', '4.1.115.Final')
10
10
  require_jar('io.netty', 'netty-transport-native-unix-common', '4.1.115.Final')
11
- require_jar('org.logstash.plugins.input.http', 'logstash-input-http', '3.10.0')
11
+ require_jar('org.logstash.plugins.input.http', 'logstash-input-http', '4.1.0')
@@ -288,22 +288,7 @@ describe LogStash::Inputs::Http do
288
288
  event = logstash_queue.pop
289
289
  expect(event.get("message")).to eq("Hello")
290
290
  end
291
-
292
- end
293
-
294
- context 'enforced TLSv1.3 (deprecated options)' do
295
-
296
- let(:config) { super().merge 'tls_min_version' => 1.3,
297
- 'cipher_suites' => [ 'TLS_AES_128_GCM_SHA256' ] }
298
-
299
- it "should parse the json body" do
300
- expect(response.code).to eq(200)
301
- event = logstash_queue.pop
302
- expect(event.get("message")).to eq("Hello")
303
- end
304
-
305
291
  end
306
-
307
292
  end if TLS13_ENABLED_BY_DEFAULT
308
293
 
309
294
  end
@@ -623,16 +608,6 @@ describe LogStash::Inputs::Http do
623
608
  subject.run(nil)
624
609
  end
625
610
  end
626
-
627
- context "and `ssl_` settings provided" do
628
- let(:ssc) { SelfSignedCertificate.new }
629
- let(:config) { { "port" => 0, "ssl_enabled" => false, "ssl_certificate" => ssc.certificate.path, "ssl_client_authentication" => "none", "cipher_suites" => ["TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"] } }
630
-
631
- it "should warn about not using the configs" do
632
- expect(subject.logger).to receive(:warn).with(/^Configured SSL settings are not used when `ssl_enabled` is set to `false`: \[("ssl_certificate"(,\s)?|"ssl_client_authentication"(,\s)?|"cipher_suites"(,\s)?)*\]$/)
633
- subject.register
634
- end
635
- end
636
611
  end
637
612
 
638
613
  context "with :ssl_enabled => true" do
@@ -690,31 +665,7 @@ describe LogStash::Inputs::Http do
690
665
  expect { subject.register }.to_not raise_exception
691
666
  end
692
667
  end
693
- ["ssl_verify_mode", "verify_mode"].each do |config_name|
694
- ["peer", "force_peer"].each do |verify_mode|
695
- context "with deprecated #{config_name} = #{verify_mode}" do
696
- subject { LogStash::Inputs::Http.new("port" => port,
697
- "ssl_enabled" => true,
698
- "ssl_certificate" => ssl_certificate.path,
699
- "ssl_certificate_authorities" => ssl_certificate.path,
700
- "ssl_key" => ssl_key.path,
701
- config_name => verify_mode
702
- ) }
703
- it "should not raise exception" do
704
- expect { subject.register }.to_not raise_exception
705
- end
706
- end
707
- end
708
- end
709
- ["ssl_verify_mode", "verify_mode"].each do |config_name|
710
- context "with deprecated #{config_name} = none" do
711
- subject { LogStash::Inputs::Http.new(config.merge(config_name => "none")) }
712
668
 
713
- it "should not raise exception" do
714
- expect { subject.register }.to_not raise_exception
715
- end
716
- end
717
- end
718
669
  context "with invalid ssl certificate" do
719
670
  before do
720
671
  cert = File.readlines path = config["ssl_certificate"]
@@ -762,76 +713,6 @@ describe LogStash::Inputs::Http do
762
713
  end
763
714
  end
764
715
 
765
- context "with both verify_mode and ssl_verify_mode options set" do
766
- let(:config) do
767
- super().merge('verify_mode' => 'none', 'ssl_verify_mode' => 'none')
768
- end
769
-
770
- it "should raise a configuration error" do
771
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_verify_mode`.?/i
772
- end
773
- end
774
-
775
- context "with both ssl_client_authentication and ssl_verify_mode options set" do
776
- let(:config) do
777
- super().merge('ssl_client_authentication' => 'optional', 'ssl_verify_mode' => 'none')
778
- end
779
-
780
- it "should raise a configuration error" do
781
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_client_authentication.?/i
782
- end
783
- end
784
-
785
- context "with both ssl_client_authentication and verify_mode options set" do
786
- let(:config) do
787
- super().merge('ssl_client_authentication' => 'optional', 'verify_mode' => 'none')
788
- end
789
-
790
- it "should raise a configuration error" do
791
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_client_authentication.?/i
792
- end
793
- end
794
-
795
- context "with ssl_cipher_suites and cipher_suites set" do
796
- let(:config) do
797
- super().merge('ssl_cipher_suites' => ['TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'],
798
- 'cipher_suites' => ['TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'])
799
- end
800
-
801
- it "should raise a configuration error" do
802
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_cipher_suites.?/i
803
- end
804
- end
805
-
806
- context "with ssl_supported_protocols and tls_min_version set" do
807
- let(:config) do
808
- super().merge('ssl_supported_protocols' => ['TLSv1.2'], 'tls_min_version' => 1.0)
809
- end
810
-
811
- it "should raise a configuration error" do
812
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_supported_protocols.?/i
813
- end
814
- end
815
-
816
- context "with ssl_supported_protocols and tls_max_version set" do
817
- let(:config) do
818
- super().merge('ssl_supported_protocols' => ['TLSv1.2'], 'tls_max_version' => 1.2)
819
- end
820
-
821
- it "should raise a configuration error" do
822
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_supported_protocols.?/i
823
- end
824
- end
825
-
826
- context "with both ssl and ssl_enabled set" do
827
- let(:config) do
828
- super().merge('ssl' => true, 'ssl_enabled' => true )
829
- end
830
-
831
- it "should raise a configuration error" do
832
- expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_enabled.?/i
833
- end
834
- end
835
716
 
836
717
  context "and with :ssl_keystore_path" do
837
718
  let(:config) do
@@ -844,41 +725,6 @@ describe LogStash::Inputs::Http do
844
725
  end
845
726
 
846
727
  context "with ssl_client_authentication" do
847
- context "normalized from ssl_verify_mode 'none'" do
848
- let(:config) { super().merge("ssl_verify_mode" => "none") }
849
-
850
- it "should transform the value to 'none'" do
851
- subject.register
852
- expect(subject.params).to match hash_including("ssl_client_authentication" => "none")
853
- expect(subject.instance_variable_get(:@ssl_client_authentication)).to eql("none")
854
- end
855
-
856
- context "and ssl_certificate_authorities is set" do
857
- let(:config) { super().merge("ssl_certificate_authorities" => [certificate_path( 'root.crt')]) }
858
- it "raise a configuration error" do
859
- expect { subject.register }.to raise_error(LogStash::ConfigurationError, "The configuration of `ssl_certificate_authorities` requires setting `ssl_verify_mode` to `peer` or 'force_peer'")
860
- end
861
- end
862
- end
863
-
864
- [%w[peer optional], %w[force_peer required]].each do |ssl_verify_mode, ssl_client_authentication|
865
- context "normalized from ssl_verify_mode '#{ssl_verify_mode}'" do
866
- let(:config) { super().merge("ssl_verify_mode" => ssl_verify_mode, "ssl_certificate_authorities" => [certificate_path( 'root.crt')]) }
867
-
868
- it "should transform the value to '#{ssl_client_authentication}'" do
869
- subject.register
870
- expect(subject.params).to match hash_including("ssl_client_authentication" => ssl_client_authentication)
871
- expect(subject.instance_variable_get(:@ssl_client_authentication)).to eql(ssl_client_authentication)
872
- end
873
-
874
- context "with no ssl_certificate_authorities set " do
875
- let(:config) { super().reject { |key| "ssl_certificate_authorities".eql?(key) } }
876
- it "raise a configuration error" do
877
- expect {subject.register}.to raise_error(LogStash::ConfigurationError, "Using `ssl_verify_mode` set to `peer` or `force_peer`, requires the configuration of `ssl_certificate_authorities` or `ssl_truststore_path`")
878
- end
879
- end
880
- end
881
- end
882
728
 
883
729
  context "configured to 'none'" do
884
730
  let(:config) { super().merge("ssl_client_authentication" => "none") }
@@ -1015,7 +861,26 @@ describe LogStash::Inputs::Http do
1015
861
  end
1016
862
  end
1017
863
  end
864
+ end
1018
865
 
866
+ describe 'handling obsolete settings' do
867
+ [{:name => 'tls_min_version', :replacement => 'ssl_supported_protocols', :sample_value => 1.3},
868
+ {:name => 'tls_max_version', :replacement => 'ssl_supported_protocols', :sample_value => 1.3},
869
+ {:name => 'cipher_suites', :replacement => 'ssl_cipher_suites', :sample_value => ['TLS_AES_128_GCM_SHA256']},
870
+ {:name => 'ssl', :replacement => 'ssl_enabled', :sample_value => true},
871
+ {:name => 'keystore', :replacement => 'ssl_keystore_path', :sample_value => certificate_path( 'server_from_root.p12')},
872
+ {:name => 'keystore_password', :replacement => 'ssl_keystore_password', :sample_value => 'none'},
873
+ {:name => 'ssl_verify_mode', :replacement => 'ssl_client_authentication', :sample_value => 'peer'},
874
+ {:name => 'verify_mode', :replacement => 'ssl_client_authentication', :sample_value => 'peer'}].each do | obsolete_setting|
875
+ context "with obsolete #{obsolete_setting[:name]}" do
876
+ let (:deprecated_config) do
877
+ config.merge({obsolete_setting[:name] => obsolete_setting[:sample_value]})
878
+ end
879
+ it "should raise a config error with the appropriate message" do
880
+ expect { LogStash::Inputs::Http.new(deprecated_config).register }.to raise_error LogStash::ConfigurationError, /The setting `#{obsolete_setting[:name]}` in plugin `http` is obsolete and is no longer available. Set '#{obsolete_setting[:replacement]}' instead/i
881
+ end
882
+ end
883
+ end
1019
884
  end
1020
885
  end
1021
886
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.10.0
4
+ version: 4.1.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
@@ -176,7 +176,7 @@ files:
176
176
  - vendor/jar-dependencies/io/netty/netty-handler/4.1.115.Final/netty-handler-4.1.115.Final.jar
177
177
  - vendor/jar-dependencies/io/netty/netty-transport-native-unix-common/4.1.115.Final/netty-transport-native-unix-common-4.1.115.Final.jar
178
178
  - vendor/jar-dependencies/io/netty/netty-transport/4.1.115.Final/netty-transport-4.1.115.Final.jar
179
- - vendor/jar-dependencies/org/logstash/plugins/input/http/logstash-input-http/3.10.0/logstash-input-http-3.10.0.jar
179
+ - vendor/jar-dependencies/org/logstash/plugins/input/http/logstash-input-http/4.1.0/logstash-input-http-4.1.0.jar
180
180
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
181
181
  licenses:
182
182
  - Apache License (2.0)