logstash-input-http 3.10.11-java → 4.0.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -35
- data/README.md +1 -1
- data/VERSION +1 -1
- data/docs/index.asciidoc +20 -90
- data/lib/logstash/inputs/http.rb +10 -84
- data/lib/logstash-input-http_jars.rb +8 -9
- data/spec/inputs/helpers.rb +1 -5
- data/spec/inputs/http_spec.rb +25 -243
- data/vendor/jar-dependencies/io/netty/netty-buffer/{4.1.136.Final/netty-buffer-4.1.136.Final.jar → 4.1.115.Final/netty-buffer-4.1.115.Final.jar} +0 -0
- data/vendor/jar-dependencies/io/netty/netty-codec/{4.1.136.Final/netty-codec-4.1.136.Final.jar → 4.1.115.Final/netty-codec-4.1.115.Final.jar} +0 -0
- data/vendor/jar-dependencies/io/netty/netty-codec-http/{4.1.136.Final/netty-codec-http-4.1.136.Final.jar → 4.1.115.Final/netty-codec-http-4.1.115.Final.jar} +0 -0
- data/vendor/jar-dependencies/io/netty/netty-common/{4.1.136.Final/netty-common-4.1.136.Final.jar → 4.1.115.Final/netty-common-4.1.115.Final.jar} +0 -0
- data/vendor/jar-dependencies/io/netty/netty-handler/4.1.115.Final/netty-handler-4.1.115.Final.jar +0 -0
- data/vendor/jar-dependencies/io/netty/netty-transport/{4.1.136.Final/netty-transport-4.1.136.Final.jar → 4.1.115.Final/netty-transport-4.1.115.Final.jar} +0 -0
- data/vendor/jar-dependencies/io/netty/netty-transport-native-unix-common/{4.1.136.Final/netty-transport-native-unix-common-4.1.136.Final.jar → 4.1.115.Final/netty-transport-native-unix-common-4.1.115.Final.jar} +0 -0
- data/vendor/jar-dependencies/org/logstash/plugins/input/http/logstash-input-http/4.0.0/logstash-input-http-4.0.0.jar +0 -0
- metadata +22 -20
- data/vendor/jar-dependencies/io/netty/netty-handler/4.1.136.Final/netty-handler-4.1.136.Final.jar +0 -0
- data/vendor/jar-dependencies/io/netty/netty-resolver/4.1.136.Final/netty-resolver-4.1.136.Final.jar +0 -0
- data/vendor/jar-dependencies/org/logstash/plugins/input/http/logstash-input-http/3.10.11/logstash-input-http-3.10.11.jar +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c406f5e0d989c833db3c35529b4012053539955f830fde6ca9e44235f4a39d3b
|
|
4
|
+
data.tar.gz: 22916a6402a2c55edfbee1bf3af0a578b630d2fd756356733bfc0c7de3359fdf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2c2616bcde330f2d0a2d0f4273f45e7bd2ad7e09e3a1322d0c759c146c38e13c92f202b45c4a1df6a19b0b9e1ae46eaaa0e3ec1fc81f5e8421a591479122ab3e
|
|
7
|
+
data.tar.gz: 1b4d208dc8e180ee5818270f1ceb36625870d4429b9570102f69beb96c253bc5a64fc3837c90d8960b2bca1391b9b93bff76fd648d67ed27cb8b9b366b238ca2
|
data/CHANGELOG.md
CHANGED
|
@@ -1,38 +1,15 @@
|
|
|
1
|
-
##
|
|
2
|
-
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## 3.10.7
|
|
14
|
-
- Update Netty dependency to 4.1.132.Final [#213](https://github.com/logstash-plugins/logstash-input-http/pull/213)
|
|
15
|
-
|
|
16
|
-
## 3.10.6
|
|
17
|
-
- Upgrade netty to 4.1.131 [#211](https://github.com/logstash-plugins/logstash-input-http/pull/211)
|
|
18
|
-
|
|
19
|
-
## 3.10.5
|
|
20
|
-
- Re-packaging the plugin [#209](https://github.com/logstash-plugins/logstash-input-http/pull/209)
|
|
21
|
-
|
|
22
|
-
## 3.10.4
|
|
23
|
-
- Upgrade netty to 4.1.129 [#204](https://github.com/logstash-plugins/logstash-input-http/pull/204)
|
|
24
|
-
|
|
25
|
-
## 3.10.3
|
|
26
|
-
- Upgrade netty to 4.1.126 [#199](https://github.com/logstash-plugins/logstash-input-http/pull/199)
|
|
27
|
-
|
|
28
|
-
## 3.10.2
|
|
29
|
-
- Upgrade netty to 4.1.118 [#194](https://github.com/logstash-plugins/logstash-input-http/pull/194)
|
|
30
|
-
|
|
31
|
-
## 3.10.1
|
|
32
|
-
- Properly naming netty threads [#191](https://github.com/logstash-plugins/logstash-input-http/pull/191)
|
|
33
|
-
|
|
34
|
-
## 3.10.0
|
|
35
|
-
- 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)
|
|
1
|
+
## 4.0.0
|
|
2
|
+
- SSL settings that were marked deprecated in version `3.7.0` are now marked obsolete, and will prevent the plugin from starting.
|
|
3
|
+
- These settings are:
|
|
4
|
+
- `tls_min_version`, which should be replaced by `ssl_supported_protocols`
|
|
5
|
+
- `tls_max_version`, which should be replaced by `ssl_supported_protocols`
|
|
6
|
+
- `cipher_suites`, which should bre replaced by `ssl_cipher_suites`
|
|
7
|
+
- `ssl`, which should bre replaced by `ssl_enabled`
|
|
8
|
+
- `keystore`, which should bre replaced by `ssl_keystore_path`
|
|
9
|
+
- `keystore_password`, which should bre replaced by `ssl_keystore_password`
|
|
10
|
+
- `ssl_verify_mode`, which should bre replaced by `ssl_client_authentication`
|
|
11
|
+
- `verify_mode`, which should bre replaced by `ssl_client_authentication`
|
|
12
|
+
- [#182](https://github.com/logstash-plugins/logstash-input-http/pull/182)
|
|
36
13
|
|
|
37
14
|
## 3.9.2
|
|
38
15
|
- Upgrade netty to 4.1.115 [#183](https://github.com/logstash-plugins/logstash-input-http/pull/183)
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Logstash Plugin
|
|
2
2
|
|
|
3
|
-
[](https://travis-ci.com/logstash-plugins/logstash-input-http)
|
|
4
4
|
|
|
5
5
|
This is a plugin for [Logstash](https://github.com/elastic/logstash).
|
|
6
6
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.0
|
data/docs/index.asciidoc
CHANGED
|
@@ -27,14 +27,6 @@ Logstash will convert it into an event for subsequent processing. Users
|
|
|
27
27
|
can pass plain text, JSON, or any formatted data and use a corresponding codec with this
|
|
28
28
|
input. For Content-Type `application/json` the `json` codec is used, but for all other
|
|
29
29
|
data formats, `plain` codec is used.
|
|
30
|
-
If the `Content-type` header also defines a charset like in:
|
|
31
|
-
|
|
32
|
-
[source,text]
|
|
33
|
-
-----
|
|
34
|
-
curl -X POST -H 'Content-Type: application/json; charset=ISO-8859-1'
|
|
35
|
-
-----
|
|
36
|
-
|
|
37
|
-
then that charset is used to decode the request body. Else UTF-8 is applied.
|
|
38
30
|
|
|
39
31
|
This input can also be used to receive webhook requests to integrate with other services
|
|
40
32
|
and applications. By taking advantage of the vast plugin ecosystem available in Logstash
|
|
@@ -95,21 +87,21 @@ for the request's content-type is found in the `additional_codecs` setting.
|
|
|
95
87
|
|
|
96
88
|
This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
|
|
97
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
|
+
|
|
98
94
|
[cols="<,<,<",options="header",]
|
|
99
95
|
|=======================================================================
|
|
100
96
|
|Setting |Input type|Required
|
|
101
97
|
| <<plugins-{type}s-{plugin}-additional_codecs>> |<<hash,hash>>|No
|
|
102
|
-
| <<plugins-{type}s-{plugin}-cipher_suites>> |<<array,array>>|__Deprecated__
|
|
103
98
|
| <<plugins-{type}s-{plugin}-ecs_compatibility>> | <<string,string>>|No
|
|
104
99
|
| <<plugins-{type}s-{plugin}-host>> |<<string,string>>|No
|
|
105
|
-
| <<plugins-{type}s-{plugin}-keystore>> |<<path,path>>|__Deprecated__
|
|
106
|
-
| <<plugins-{type}s-{plugin}-keystore_password>> |<<password,password>>|__Deprecated__
|
|
107
100
|
| <<plugins-{type}s-{plugin}-password>> |<<password,password>>|No
|
|
108
101
|
| <<plugins-{type}s-{plugin}-port>> |<<number,number>>|No
|
|
109
102
|
| <<plugins-{type}s-{plugin}-max_pending_requests>> |<<number,number>>|No
|
|
110
103
|
| <<plugins-{type}s-{plugin}-response_headers>> |<<hash,hash>>|No
|
|
111
104
|
| <<plugins-{type}s-{plugin}-response_code>> |<<number,number>>, one of `[200, 201, 202, 204]`|No
|
|
112
|
-
| <<plugins-{type}s-{plugin}-ssl>> |<<boolean,boolean>>|__Deprecated__
|
|
113
105
|
| <<plugins-{type}s-{plugin}-ssl_certificate>> |a valid filesystem path|No
|
|
114
106
|
| <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> |<<array,array>>|No
|
|
115
107
|
| <<plugins-{type}s-{plugin}-ssl_cipher_suites>> |<<array,array>>|No
|
|
@@ -125,12 +117,8 @@ This plugin supports the following configuration options plus the <<plugins-{typ
|
|
|
125
117
|
| <<plugins-{type}s-{plugin}-ssl_truststore_password>> |<<password,password>>|No
|
|
126
118
|
| <<plugins-{type}s-{plugin}-ssl_truststore_path>> |<<path,path>>|No
|
|
127
119
|
| <<plugins-{type}s-{plugin}-ssl_truststore_type>> |<<string,string>>|No
|
|
128
|
-
| <<plugins-{type}s-{plugin}-ssl_verify_mode>> |<<string,string>>, one of `["none", "peer", "force_peer"]`|__Deprecated__
|
|
129
120
|
| <<plugins-{type}s-{plugin}-threads>> |<<number,number>>|No
|
|
130
|
-
| <<plugins-{type}s-{plugin}-tls_max_version>> |<<number,number>>|__Deprecated__
|
|
131
|
-
| <<plugins-{type}s-{plugin}-tls_min_version>> |<<number,number>>|__Deprecated__
|
|
132
121
|
| <<plugins-{type}s-{plugin}-user>> |<<string,string>>|No
|
|
133
|
-
| <<plugins-{type}s-{plugin}-verify_mode>> |<<string,string>>, one of `["none", "peer", "force_peer"]`|__Deprecated__
|
|
134
122
|
|=======================================================================
|
|
135
123
|
|
|
136
124
|
Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
|
|
@@ -148,13 +136,6 @@ Apply specific codecs for specific content types.
|
|
|
148
136
|
The default codec will be applied only after this list is checked
|
|
149
137
|
and no codec for the request's content-type is found
|
|
150
138
|
|
|
151
|
-
[id="plugins-{type}s-{plugin}-cipher_suites"]
|
|
152
|
-
===== `cipher_suites`
|
|
153
|
-
deprecated[3.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_cipher_suites>>]
|
|
154
|
-
|
|
155
|
-
* Value type is <<array,array>>
|
|
156
|
-
|
|
157
|
-
The list of cipher suites to use, listed by priorities.
|
|
158
139
|
|
|
159
140
|
[id="plugins-{type}s-{plugin}-ecs_compatibility"]
|
|
160
141
|
===== `ecs_compatibility`
|
|
@@ -228,23 +209,6 @@ See <<plugins-{type}s-{plugin}-ecs_metadata>> for detailed information.
|
|
|
228
209
|
|
|
229
210
|
The host or ip to bind
|
|
230
211
|
|
|
231
|
-
[id="plugins-{type}s-{plugin}-keystore"]
|
|
232
|
-
===== `keystore`
|
|
233
|
-
deprecated[3.7.0, Use <<plugins-{type}s-{plugin}-ssl_keystore_path>> instead]
|
|
234
|
-
|
|
235
|
-
* Value type is <<path,path>>
|
|
236
|
-
* There is no default value for this setting.
|
|
237
|
-
|
|
238
|
-
The JKS keystore to validate the client's certificates
|
|
239
|
-
|
|
240
|
-
[id="plugins-{type}s-{plugin}-keystore_password"]
|
|
241
|
-
===== `keystore_password`
|
|
242
|
-
deprecated[3.7.0, Use <<plugins-{type}s-{plugin}-ssl_keystore_password>> instead]
|
|
243
|
-
|
|
244
|
-
* Value type is <<password,password>>
|
|
245
|
-
* There is no default value for this setting.
|
|
246
|
-
|
|
247
|
-
Set the keystore password
|
|
248
212
|
|
|
249
213
|
[id="plugins-{type}s-{plugin}-password"]
|
|
250
214
|
===== `password`
|
|
@@ -322,16 +286,6 @@ specify a target field for the client host of the http request
|
|
|
322
286
|
|
|
323
287
|
specify target field for the client host of the http request
|
|
324
288
|
|
|
325
|
-
[id="plugins-{type}s-{plugin}-ssl"]
|
|
326
|
-
===== `ssl`
|
|
327
|
-
deprecated[3.7.0, Replaced by <<plugins-{type}s-{plugin}-ssl_enabled>>]
|
|
328
|
-
|
|
329
|
-
* Value type is <<boolean,boolean>>
|
|
330
|
-
* Default value is `false`
|
|
331
|
-
|
|
332
|
-
Events are, by default, sent in plain text. You can
|
|
333
|
-
enable encryption by setting `ssl` to true and configuring
|
|
334
|
-
the `ssl_certificate` and `ssl_key` options.
|
|
335
289
|
|
|
336
290
|
[id="plugins-{type}s-{plugin}-ssl_certificate"]
|
|
337
291
|
===== `ssl_certificate`
|
|
@@ -481,22 +435,6 @@ NOTE: You cannot use this setting and <<plugins-{type}s-{plugin}-ssl_certificate
|
|
|
481
435
|
|
|
482
436
|
The format of the truststore file. It must be either `jks` or `pkcs12`.
|
|
483
437
|
|
|
484
|
-
[id="plugins-{type}s-{plugin}-ssl_verify_mode"]
|
|
485
|
-
===== `ssl_verify_mode`
|
|
486
|
-
deprecated[3.7.0, Replaced by <<plugins-{type}s-{plugin}-ssl_client_authentication>>]
|
|
487
|
-
|
|
488
|
-
* Value can be any of: `none`, `peer`, `force_peer`
|
|
489
|
-
* Default value is `"none"`
|
|
490
|
-
|
|
491
|
-
By default the server doesn't do any client verification.
|
|
492
|
-
|
|
493
|
-
`peer` will make the server ask the client to provide a certificate.
|
|
494
|
-
If the client provides a certificate, it will be validated.
|
|
495
|
-
|
|
496
|
-
`force_peer` will make the server ask the client to provide a certificate.
|
|
497
|
-
If the client doesn't provide a certificate, the connection will be closed.
|
|
498
|
-
|
|
499
|
-
This option needs to be used with <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> and a defined list of CAs.
|
|
500
438
|
|
|
501
439
|
[id="plugins-{type}s-{plugin}-threads"]
|
|
502
440
|
===== `threads`
|
|
@@ -506,23 +444,6 @@ This option needs to be used with <<plugins-{type}s-{plugin}-ssl_certificate_aut
|
|
|
506
444
|
|
|
507
445
|
Number of threads to use for both accepting connections and handling requests
|
|
508
446
|
|
|
509
|
-
[id="plugins-{type}s-{plugin}-tls_max_version"]
|
|
510
|
-
===== `tls_max_version`
|
|
511
|
-
deprecated[3.6.0]
|
|
512
|
-
|
|
513
|
-
* Value type is <<number,number>>
|
|
514
|
-
|
|
515
|
-
The maximum TLS version allowed for the encrypted connections.
|
|
516
|
-
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
|
|
517
|
-
|
|
518
|
-
[id="plugins-{type}s-{plugin}-tls_min_version"]
|
|
519
|
-
===== `tls_min_version`
|
|
520
|
-
deprecated[3.6.0]
|
|
521
|
-
|
|
522
|
-
* Value type is <<number,number>>
|
|
523
|
-
|
|
524
|
-
The minimum TLS version allowed for the encrypted connections.
|
|
525
|
-
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
|
|
526
447
|
|
|
527
448
|
[id="plugins-{type}s-{plugin}-user"]
|
|
528
449
|
===== `user`
|
|
@@ -532,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
|
|
|
532
453
|
|
|
533
454
|
Username for basic authorization
|
|
534
455
|
|
|
535
|
-
[id="plugins-{type}s-{plugin}-
|
|
536
|
-
|
|
537
|
-
deprecated[3.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_verify_mode>>]
|
|
538
|
-
|
|
539
|
-
* Value can be any of: `none`, `peer`, `force_peer`
|
|
540
|
-
* Default value is `"none"`
|
|
456
|
+
[id="plugins-{type}s-{plugin}-obsolete-options"]
|
|
457
|
+
==== HTTP Input Obsolete Configuration Options
|
|
541
458
|
|
|
542
|
-
|
|
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.
|
|
543
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
|
+
|=======================================================================
|
|
544
474
|
|
|
545
475
|
[id="plugins-{type}s-{plugin}-common-options"]
|
|
546
476
|
include::{include_path}/{type}.asciidoc[]
|
data/lib/logstash/inputs/http.rb
CHANGED
|
@@ -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
|
-
#
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
config :
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
config :
|
|
160
|
-
|
|
161
|
-
config :
|
|
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,21 +322,9 @@ 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
|
-
@
|
|
395
|
-
@max_pending_requests, @max_content_length, @response_code)
|
|
327
|
+
@host, @port, message_handler, build_ssl_params, @threads, @max_pending_requests, @max_content_length, @response_code)
|
|
396
328
|
end
|
|
397
329
|
|
|
398
330
|
def build_ssl_params
|
|
@@ -468,13 +400,7 @@ class LogStash::Inputs::Http < LogStash::Inputs::Base
|
|
|
468
400
|
end
|
|
469
401
|
|
|
470
402
|
def provided_ssl_client_authentication_config(values = [@ssl_client_authentication])
|
|
471
|
-
if original_params.include?('ssl_verify_mode')
|
|
472
|
-
['ssl_verify_mode', *values.map { |v| SSL_VERIFY_MODE_TO_CLIENT_AUTHENTICATION_MAP.key(v) }]
|
|
473
|
-
elsif original_params.include?('verify_mode')
|
|
474
|
-
['verify_mode', *values.map { |v| SSL_VERIFY_MODE_TO_CLIENT_AUTHENTICATION_MAP.key(v) }]
|
|
475
|
-
else
|
|
476
403
|
['ssl_client_authentication', *values]
|
|
477
|
-
end
|
|
478
404
|
end
|
|
479
405
|
|
|
480
406
|
private
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# AUTOGENERATED BY THE GRADLE SCRIPT. DO NOT EDIT.
|
|
2
2
|
|
|
3
3
|
require 'jar_dependencies'
|
|
4
|
-
require_jar('io.netty', 'netty-
|
|
5
|
-
require_jar('io.netty', 'netty-
|
|
6
|
-
require_jar('io.netty', 'netty-codec', '4.1.
|
|
7
|
-
require_jar('io.netty', 'netty-
|
|
8
|
-
require_jar('io.netty', 'netty-transport', '4.1.
|
|
9
|
-
require_jar('io.netty', 'netty-
|
|
10
|
-
require_jar('io.netty', 'netty-
|
|
11
|
-
require_jar('
|
|
12
|
-
require_jar('org.logstash.plugins.input.http', 'logstash-input-http', '3.10.11')
|
|
4
|
+
require_jar('io.netty', 'netty-buffer', '4.1.115.Final')
|
|
5
|
+
require_jar('io.netty', 'netty-codec', '4.1.115.Final')
|
|
6
|
+
require_jar('io.netty', 'netty-codec-http', '4.1.115.Final')
|
|
7
|
+
require_jar('io.netty', 'netty-common', '4.1.115.Final')
|
|
8
|
+
require_jar('io.netty', 'netty-transport', '4.1.115.Final')
|
|
9
|
+
require_jar('io.netty', 'netty-handler', '4.1.115.Final')
|
|
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', '4.0.0')
|
data/spec/inputs/helpers.rb
CHANGED
data/spec/inputs/http_spec.rb
CHANGED
|
@@ -11,17 +11,6 @@ require 'inputs/helpers'
|
|
|
11
11
|
|
|
12
12
|
java_import "io.netty.handler.ssl.util.SelfSignedCertificate"
|
|
13
13
|
|
|
14
|
-
shared_examples "decodes message with charset" do |charset|
|
|
15
|
-
let(:headers) { { "content-type" => "application/json; charset=#{charset}" } }
|
|
16
|
-
let(:body) { '{"msg":"A Coruña"}'.encode(charset) }
|
|
17
|
-
|
|
18
|
-
it "should decode the message accordingly" do
|
|
19
|
-
client.post("http://127.0.0.1:#{port}/meh.json", :headers => headers, :body => body).call
|
|
20
|
-
event = logstash_queue.pop
|
|
21
|
-
expect(event.get("msg")).to eq("A Coruña")
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
14
|
describe LogStash::Inputs::Http do
|
|
26
15
|
|
|
27
16
|
before do
|
|
@@ -68,7 +57,7 @@ describe LogStash::Inputs::Http do
|
|
|
68
57
|
let(:config) { { "port" => port, "threads" => threads, "max_pending_requests" => max_pending_requests } }
|
|
69
58
|
|
|
70
59
|
context "when sending more requests than queue slots" do
|
|
71
|
-
it "
|
|
60
|
+
it "should block when the queue is full" do
|
|
72
61
|
# these will queue and return 200
|
|
73
62
|
logstash_queue_size.times.each do |i|
|
|
74
63
|
response = client.post("http://127.0.0.1:#{port}", :body => '{}').call
|
|
@@ -76,77 +65,15 @@ describe LogStash::Inputs::Http do
|
|
|
76
65
|
end
|
|
77
66
|
|
|
78
67
|
# these will block
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
rescue Manticore::SocketException, Manticore::SocketTimeout => e
|
|
84
|
-
{:exception => e}
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
sleep 1 # let those requests go, but not so long that our block-detector starts emitting 429's
|
|
90
|
-
|
|
91
|
-
# by now we should be rejecting with 429 since the backlog is full
|
|
92
|
-
response = client.post("http://127.0.0.1:#{port}", :body => '{}').call
|
|
93
|
-
expect(response.code).to eq(429)
|
|
94
|
-
|
|
95
|
-
# ensure that our blocked connections did block
|
|
96
|
-
aggregate_failures do
|
|
97
|
-
blocked_calls.map(&:value).each do |blocked|
|
|
98
|
-
expect(blocked[:result]).to be_nil
|
|
99
|
-
expect(blocked[:exception]).to be_a_kind_of Manticore::SocketTimeout
|
|
100
|
-
end
|
|
68
|
+
(threads + max_pending_requests).times.each do |i|
|
|
69
|
+
expect {
|
|
70
|
+
client.post("http://127.0.0.1:#{port}", :body => '{}').call
|
|
71
|
+
}.to raise_error(Manticore::SocketTimeout)
|
|
101
72
|
end
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
describe "observing queue back-pressure" do
|
|
107
|
-
let(:logstash_queue_size) { rand(10) + 1 }
|
|
108
|
-
let(:max_pending_requests) { rand(5) + 1 }
|
|
109
|
-
let(:threads) { rand(4) + 1 }
|
|
110
|
-
let(:logstash_queue) { SizedQueue.new(logstash_queue_size) }
|
|
111
|
-
let(:client_options) { {
|
|
112
|
-
"request_timeout" => 0.1,
|
|
113
|
-
"connect_timeout" => 3,
|
|
114
|
-
"socket_timeout" => 0.1
|
|
115
|
-
} }
|
|
116
|
-
|
|
117
|
-
let(:config) { { "port" => port, "threads" => threads, "max_pending_requests" => max_pending_requests } }
|
|
118
|
-
|
|
119
|
-
context "when sending request to an input that has blocked connections" do
|
|
120
|
-
it "rejects incoming requests with HTTP 429" do
|
|
121
|
-
# these will queue and return 200
|
|
122
|
-
logstash_queue_size.times.each do |i|
|
|
123
|
-
response = client.post("http://127.0.0.1:#{port}", :body => '{}').call
|
|
124
|
-
expect(response.code).to eq(200)
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
# these will block
|
|
128
|
-
blocked_call = Thread.new do
|
|
129
|
-
begin
|
|
130
|
-
{:result => client.post("http://127.0.0.1:#{port}", :body => '{}').call}
|
|
131
|
-
rescue Manticore::SocketException, Manticore::SocketTimeout => e
|
|
132
|
-
{:exception => e}
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
sleep 12 # let that requests go, and ensure it is blocking long enough to be problematic
|
|
137
73
|
|
|
138
|
-
# by now we should be rejecting with 429
|
|
139
|
-
# for more than 10s.
|
|
74
|
+
# by now we should be rejecting with 429
|
|
140
75
|
response = client.post("http://127.0.0.1:#{port}", :body => '{}').call
|
|
141
76
|
expect(response.code).to eq(429)
|
|
142
|
-
|
|
143
|
-
# ensure that our blocked connections did block
|
|
144
|
-
aggregate_failures do
|
|
145
|
-
blocked_call.value.tap do |blocked|
|
|
146
|
-
expect(blocked[:result]).to be_nil
|
|
147
|
-
expect(blocked[:exception]).to be_a_kind_of Manticore::SocketTimeout
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
77
|
end
|
|
151
78
|
end
|
|
152
79
|
end
|
|
@@ -220,16 +147,6 @@ describe LogStash::Inputs::Http do
|
|
|
220
147
|
expect(event.get("message_body")).to eq("Hello")
|
|
221
148
|
end
|
|
222
149
|
end
|
|
223
|
-
|
|
224
|
-
context "when receiving a request with content-type specifying charset" do
|
|
225
|
-
context "ISO-8859-1" do
|
|
226
|
-
it_behaves_like "decodes message with charset", "ISO-8859-1"
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
context "UTF-8" do
|
|
230
|
-
it_behaves_like "decodes message with charset", "utf-8"
|
|
231
|
-
end
|
|
232
|
-
end
|
|
233
150
|
end
|
|
234
151
|
|
|
235
152
|
context "with json codec" do
|
|
@@ -309,22 +226,7 @@ describe LogStash::Inputs::Http do
|
|
|
309
226
|
event = logstash_queue.pop
|
|
310
227
|
expect(event.get("message")).to eq("Hello")
|
|
311
228
|
end
|
|
312
|
-
|
|
313
229
|
end
|
|
314
|
-
|
|
315
|
-
context 'enforced TLSv1.3 (deprecated options)' do
|
|
316
|
-
|
|
317
|
-
let(:config) { super().merge 'tls_min_version' => 1.3,
|
|
318
|
-
'cipher_suites' => [ 'TLS_AES_128_GCM_SHA256' ] }
|
|
319
|
-
|
|
320
|
-
it "should parse the json body" do
|
|
321
|
-
expect(response.code).to eq(200)
|
|
322
|
-
event = logstash_queue.pop
|
|
323
|
-
expect(event.get("message")).to eq("Hello")
|
|
324
|
-
end
|
|
325
|
-
|
|
326
|
-
end
|
|
327
|
-
|
|
328
230
|
end if TLS13_ENABLED_BY_DEFAULT
|
|
329
231
|
|
|
330
232
|
end
|
|
@@ -644,16 +546,6 @@ describe LogStash::Inputs::Http do
|
|
|
644
546
|
subject.run(nil)
|
|
645
547
|
end
|
|
646
548
|
end
|
|
647
|
-
|
|
648
|
-
context "and `ssl_` settings provided" do
|
|
649
|
-
let(:ssc) { SelfSignedCertificate.new }
|
|
650
|
-
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"] } }
|
|
651
|
-
|
|
652
|
-
it "should warn about not using the configs" do
|
|
653
|
-
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)?)*\]$/)
|
|
654
|
-
subject.register
|
|
655
|
-
end
|
|
656
|
-
end
|
|
657
549
|
end
|
|
658
550
|
|
|
659
551
|
context "with :ssl_enabled => true" do
|
|
@@ -711,31 +603,7 @@ describe LogStash::Inputs::Http do
|
|
|
711
603
|
expect { subject.register }.to_not raise_exception
|
|
712
604
|
end
|
|
713
605
|
end
|
|
714
|
-
["ssl_verify_mode", "verify_mode"].each do |config_name|
|
|
715
|
-
["peer", "force_peer"].each do |verify_mode|
|
|
716
|
-
context "with deprecated #{config_name} = #{verify_mode}" do
|
|
717
|
-
subject { LogStash::Inputs::Http.new("port" => port,
|
|
718
|
-
"ssl_enabled" => true,
|
|
719
|
-
"ssl_certificate" => ssl_certificate.path,
|
|
720
|
-
"ssl_certificate_authorities" => ssl_certificate.path,
|
|
721
|
-
"ssl_key" => ssl_key.path,
|
|
722
|
-
config_name => verify_mode
|
|
723
|
-
) }
|
|
724
|
-
it "should not raise exception" do
|
|
725
|
-
expect { subject.register }.to_not raise_exception
|
|
726
|
-
end
|
|
727
|
-
end
|
|
728
|
-
end
|
|
729
|
-
end
|
|
730
|
-
["ssl_verify_mode", "verify_mode"].each do |config_name|
|
|
731
|
-
context "with deprecated #{config_name} = none" do
|
|
732
|
-
subject { LogStash::Inputs::Http.new(config.merge(config_name => "none")) }
|
|
733
606
|
|
|
734
|
-
it "should not raise exception" do
|
|
735
|
-
expect { subject.register }.to_not raise_exception
|
|
736
|
-
end
|
|
737
|
-
end
|
|
738
|
-
end
|
|
739
607
|
context "with invalid ssl certificate" do
|
|
740
608
|
before do
|
|
741
609
|
cert = File.readlines path = config["ssl_certificate"]
|
|
@@ -783,76 +651,6 @@ describe LogStash::Inputs::Http do
|
|
|
783
651
|
end
|
|
784
652
|
end
|
|
785
653
|
|
|
786
|
-
context "with both verify_mode and ssl_verify_mode options set" do
|
|
787
|
-
let(:config) do
|
|
788
|
-
super().merge('verify_mode' => 'none', 'ssl_verify_mode' => 'none')
|
|
789
|
-
end
|
|
790
|
-
|
|
791
|
-
it "should raise a configuration error" do
|
|
792
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_verify_mode`.?/i
|
|
793
|
-
end
|
|
794
|
-
end
|
|
795
|
-
|
|
796
|
-
context "with both ssl_client_authentication and ssl_verify_mode options set" do
|
|
797
|
-
let(:config) do
|
|
798
|
-
super().merge('ssl_client_authentication' => 'optional', 'ssl_verify_mode' => 'none')
|
|
799
|
-
end
|
|
800
|
-
|
|
801
|
-
it "should raise a configuration error" do
|
|
802
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_client_authentication.?/i
|
|
803
|
-
end
|
|
804
|
-
end
|
|
805
|
-
|
|
806
|
-
context "with both ssl_client_authentication and verify_mode options set" do
|
|
807
|
-
let(:config) do
|
|
808
|
-
super().merge('ssl_client_authentication' => 'optional', 'verify_mode' => 'none')
|
|
809
|
-
end
|
|
810
|
-
|
|
811
|
-
it "should raise a configuration error" do
|
|
812
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_client_authentication.?/i
|
|
813
|
-
end
|
|
814
|
-
end
|
|
815
|
-
|
|
816
|
-
context "with ssl_cipher_suites and cipher_suites set" do
|
|
817
|
-
let(:config) do
|
|
818
|
-
super().merge('ssl_cipher_suites' => ['TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'],
|
|
819
|
-
'cipher_suites' => ['TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'])
|
|
820
|
-
end
|
|
821
|
-
|
|
822
|
-
it "should raise a configuration error" do
|
|
823
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_cipher_suites.?/i
|
|
824
|
-
end
|
|
825
|
-
end
|
|
826
|
-
|
|
827
|
-
context "with ssl_supported_protocols and tls_min_version set" do
|
|
828
|
-
let(:config) do
|
|
829
|
-
super().merge('ssl_supported_protocols' => ['TLSv1.2'], 'tls_min_version' => 1.0)
|
|
830
|
-
end
|
|
831
|
-
|
|
832
|
-
it "should raise a configuration error" do
|
|
833
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_supported_protocols.?/i
|
|
834
|
-
end
|
|
835
|
-
end
|
|
836
|
-
|
|
837
|
-
context "with ssl_supported_protocols and tls_max_version set" do
|
|
838
|
-
let(:config) do
|
|
839
|
-
super().merge('ssl_supported_protocols' => ['TLSv1.2'], 'tls_max_version' => 1.2)
|
|
840
|
-
end
|
|
841
|
-
|
|
842
|
-
it "should raise a configuration error" do
|
|
843
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_supported_protocols.?/i
|
|
844
|
-
end
|
|
845
|
-
end
|
|
846
|
-
|
|
847
|
-
context "with both ssl and ssl_enabled set" do
|
|
848
|
-
let(:config) do
|
|
849
|
-
super().merge('ssl' => true, 'ssl_enabled' => true )
|
|
850
|
-
end
|
|
851
|
-
|
|
852
|
-
it "should raise a configuration error" do
|
|
853
|
-
expect { subject.register }.to raise_error LogStash::ConfigurationError, /Use only .?ssl_enabled.?/i
|
|
854
|
-
end
|
|
855
|
-
end
|
|
856
654
|
|
|
857
655
|
context "and with :ssl_keystore_path" do
|
|
858
656
|
let(:config) do
|
|
@@ -865,41 +663,6 @@ describe LogStash::Inputs::Http do
|
|
|
865
663
|
end
|
|
866
664
|
|
|
867
665
|
context "with ssl_client_authentication" do
|
|
868
|
-
context "normalized from ssl_verify_mode 'none'" do
|
|
869
|
-
let(:config) { super().merge("ssl_verify_mode" => "none") }
|
|
870
|
-
|
|
871
|
-
it "should transform the value to 'none'" do
|
|
872
|
-
subject.register
|
|
873
|
-
expect(subject.params).to match hash_including("ssl_client_authentication" => "none")
|
|
874
|
-
expect(subject.instance_variable_get(:@ssl_client_authentication)).to eql("none")
|
|
875
|
-
end
|
|
876
|
-
|
|
877
|
-
context "and ssl_certificate_authorities is set" do
|
|
878
|
-
let(:config) { super().merge("ssl_certificate_authorities" => [certificate_path( 'root.crt')]) }
|
|
879
|
-
it "raise a configuration error" do
|
|
880
|
-
expect { subject.register }.to raise_error(LogStash::ConfigurationError, "The configuration of `ssl_certificate_authorities` requires setting `ssl_verify_mode` to `peer` or 'force_peer'")
|
|
881
|
-
end
|
|
882
|
-
end
|
|
883
|
-
end
|
|
884
|
-
|
|
885
|
-
[%w[peer optional], %w[force_peer required]].each do |ssl_verify_mode, ssl_client_authentication|
|
|
886
|
-
context "normalized from ssl_verify_mode '#{ssl_verify_mode}'" do
|
|
887
|
-
let(:config) { super().merge("ssl_verify_mode" => ssl_verify_mode, "ssl_certificate_authorities" => [certificate_path( 'root.crt')]) }
|
|
888
|
-
|
|
889
|
-
it "should transform the value to '#{ssl_client_authentication}'" do
|
|
890
|
-
subject.register
|
|
891
|
-
expect(subject.params).to match hash_including("ssl_client_authentication" => ssl_client_authentication)
|
|
892
|
-
expect(subject.instance_variable_get(:@ssl_client_authentication)).to eql(ssl_client_authentication)
|
|
893
|
-
end
|
|
894
|
-
|
|
895
|
-
context "with no ssl_certificate_authorities set " do
|
|
896
|
-
let(:config) { super().reject { |key| "ssl_certificate_authorities".eql?(key) } }
|
|
897
|
-
it "raise a configuration error" do
|
|
898
|
-
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`")
|
|
899
|
-
end
|
|
900
|
-
end
|
|
901
|
-
end
|
|
902
|
-
end
|
|
903
666
|
|
|
904
667
|
context "configured to 'none'" do
|
|
905
668
|
let(:config) { super().merge("ssl_client_authentication" => "none") }
|
|
@@ -1036,7 +799,26 @@ describe LogStash::Inputs::Http do
|
|
|
1036
799
|
end
|
|
1037
800
|
end
|
|
1038
801
|
end
|
|
802
|
+
end
|
|
1039
803
|
|
|
804
|
+
describe 'handling obsolete settings' do
|
|
805
|
+
[{:name => 'tls_min_version', :replacement => 'ssl_supported_protocols', :sample_value => 1.3},
|
|
806
|
+
{:name => 'tls_max_version', :replacement => 'ssl_supported_protocols', :sample_value => 1.3},
|
|
807
|
+
{:name => 'cipher_suites', :replacement => 'ssl_cipher_suites', :sample_value => ['TLS_AES_128_GCM_SHA256']},
|
|
808
|
+
{:name => 'ssl', :replacement => 'ssl_enabled', :sample_value => true},
|
|
809
|
+
{:name => 'keystore', :replacement => 'ssl_keystore_path', :sample_value => certificate_path( 'server_from_root.p12')},
|
|
810
|
+
{:name => 'keystore_password', :replacement => 'ssl_keystore_password', :sample_value => 'none'},
|
|
811
|
+
{:name => 'ssl_verify_mode', :replacement => 'ssl_client_authentication', :sample_value => 'peer'},
|
|
812
|
+
{:name => 'verify_mode', :replacement => 'ssl_client_authentication', :sample_value => 'peer'}].each do | obsolete_setting|
|
|
813
|
+
context "with obsolete #{obsolete_setting[:name]}" do
|
|
814
|
+
let (:deprecated_config) do
|
|
815
|
+
config.merge({obsolete_setting[:name] => obsolete_setting[:sample_value]})
|
|
816
|
+
end
|
|
817
|
+
it "should raise a config error with the appropriate message" do
|
|
818
|
+
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
|
|
819
|
+
end
|
|
820
|
+
end
|
|
821
|
+
end
|
|
1040
822
|
end
|
|
1041
823
|
end
|
|
1042
824
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/vendor/jar-dependencies/io/netty/netty-handler/4.1.115.Final/netty-handler-4.1.115.Final.jar
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-input-http
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Elastic
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2024-12-18 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
|
-
name: logstash-core-plugin-api
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
@@ -19,6 +19,7 @@ dependencies:
|
|
|
19
19
|
- - "<="
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
21
|
version: '2.99'
|
|
22
|
+
name: logstash-core-plugin-api
|
|
22
23
|
type: :runtime
|
|
23
24
|
prerelease: false
|
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -30,12 +31,12 @@ dependencies:
|
|
|
30
31
|
- !ruby/object:Gem::Version
|
|
31
32
|
version: '2.99'
|
|
32
33
|
- !ruby/object:Gem::Dependency
|
|
33
|
-
name: logstash-codec-plain
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
35
35
|
requirements:
|
|
36
36
|
- - ">="
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
38
|
version: '0'
|
|
39
|
+
name: logstash-codec-plain
|
|
39
40
|
type: :runtime
|
|
40
41
|
prerelease: false
|
|
41
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -44,12 +45,12 @@ dependencies:
|
|
|
44
45
|
- !ruby/object:Gem::Version
|
|
45
46
|
version: '0'
|
|
46
47
|
- !ruby/object:Gem::Dependency
|
|
47
|
-
name: logstash-mixin-ecs_compatibility_support
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
50
|
- - "~>"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
52
|
version: '1.2'
|
|
53
|
+
name: logstash-mixin-ecs_compatibility_support
|
|
53
54
|
type: :runtime
|
|
54
55
|
prerelease: false
|
|
55
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -58,12 +59,12 @@ dependencies:
|
|
|
58
59
|
- !ruby/object:Gem::Version
|
|
59
60
|
version: '1.2'
|
|
60
61
|
- !ruby/object:Gem::Dependency
|
|
61
|
-
name: logstash-mixin-normalize_config_support
|
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
|
63
63
|
requirements:
|
|
64
64
|
- - "~>"
|
|
65
65
|
- !ruby/object:Gem::Version
|
|
66
66
|
version: '1.0'
|
|
67
|
+
name: logstash-mixin-normalize_config_support
|
|
67
68
|
type: :runtime
|
|
68
69
|
prerelease: false
|
|
69
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -72,12 +73,12 @@ dependencies:
|
|
|
72
73
|
- !ruby/object:Gem::Version
|
|
73
74
|
version: '1.0'
|
|
74
75
|
- !ruby/object:Gem::Dependency
|
|
75
|
-
name: logstash-devutils
|
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
|
77
77
|
requirements:
|
|
78
78
|
- - ">="
|
|
79
79
|
- !ruby/object:Gem::Version
|
|
80
80
|
version: '0'
|
|
81
|
+
name: logstash-devutils
|
|
81
82
|
type: :development
|
|
82
83
|
prerelease: false
|
|
83
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -86,12 +87,12 @@ dependencies:
|
|
|
86
87
|
- !ruby/object:Gem::Version
|
|
87
88
|
version: '0'
|
|
88
89
|
- !ruby/object:Gem::Dependency
|
|
89
|
-
name: logstash-codec-json
|
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
|
91
91
|
requirements:
|
|
92
92
|
- - ">="
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
94
|
version: '0'
|
|
95
|
+
name: logstash-codec-json
|
|
95
96
|
type: :development
|
|
96
97
|
prerelease: false
|
|
97
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -100,12 +101,12 @@ dependencies:
|
|
|
100
101
|
- !ruby/object:Gem::Version
|
|
101
102
|
version: '0'
|
|
102
103
|
- !ruby/object:Gem::Dependency
|
|
103
|
-
name: logstash-codec-json_lines
|
|
104
104
|
requirement: !ruby/object:Gem::Requirement
|
|
105
105
|
requirements:
|
|
106
106
|
- - ">="
|
|
107
107
|
- !ruby/object:Gem::Version
|
|
108
108
|
version: '0'
|
|
109
|
+
name: logstash-codec-json_lines
|
|
109
110
|
type: :development
|
|
110
111
|
prerelease: false
|
|
111
112
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -114,12 +115,12 @@ dependencies:
|
|
|
114
115
|
- !ruby/object:Gem::Version
|
|
115
116
|
version: '0'
|
|
116
117
|
- !ruby/object:Gem::Dependency
|
|
117
|
-
name: manticore
|
|
118
118
|
requirement: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - ">="
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
122
|
version: '0'
|
|
123
|
+
name: manticore
|
|
123
124
|
type: :development
|
|
124
125
|
prerelease: false
|
|
125
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -168,21 +169,21 @@ files:
|
|
|
168
169
|
- spec/fixtures/certs/openssl.cnf
|
|
169
170
|
- spec/inputs/helpers.rb
|
|
170
171
|
- spec/inputs/http_spec.rb
|
|
171
|
-
- vendor/jar-dependencies/io/netty/netty-buffer/4.1.
|
|
172
|
-
- vendor/jar-dependencies/io/netty/netty-codec-http/4.1.
|
|
173
|
-
- vendor/jar-dependencies/io/netty/netty-codec/4.1.
|
|
174
|
-
- vendor/jar-dependencies/io/netty/netty-common/4.1.
|
|
175
|
-
- vendor/jar-dependencies/io/netty/netty-handler/4.1.
|
|
176
|
-
- vendor/jar-dependencies/io/netty/netty-
|
|
177
|
-
- vendor/jar-dependencies/io/netty/netty-transport
|
|
178
|
-
- vendor/jar-dependencies/
|
|
179
|
-
- vendor/jar-dependencies/org/logstash/plugins/input/http/logstash-input-http/3.10.11/logstash-input-http-3.10.11.jar
|
|
172
|
+
- vendor/jar-dependencies/io/netty/netty-buffer/4.1.115.Final/netty-buffer-4.1.115.Final.jar
|
|
173
|
+
- vendor/jar-dependencies/io/netty/netty-codec-http/4.1.115.Final/netty-codec-http-4.1.115.Final.jar
|
|
174
|
+
- vendor/jar-dependencies/io/netty/netty-codec/4.1.115.Final/netty-codec-4.1.115.Final.jar
|
|
175
|
+
- vendor/jar-dependencies/io/netty/netty-common/4.1.115.Final/netty-common-4.1.115.Final.jar
|
|
176
|
+
- vendor/jar-dependencies/io/netty/netty-handler/4.1.115.Final/netty-handler-4.1.115.Final.jar
|
|
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
|
+
- 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/4.0.0/logstash-input-http-4.0.0.jar
|
|
180
180
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
|
181
181
|
licenses:
|
|
182
182
|
- Apache License (2.0)
|
|
183
183
|
metadata:
|
|
184
184
|
logstash_plugin: 'true'
|
|
185
185
|
logstash_group: input
|
|
186
|
+
post_install_message:
|
|
186
187
|
rdoc_options: []
|
|
187
188
|
require_paths:
|
|
188
189
|
- lib
|
|
@@ -198,7 +199,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
198
199
|
- !ruby/object:Gem::Version
|
|
199
200
|
version: '0'
|
|
200
201
|
requirements: []
|
|
201
|
-
rubygems_version: 3.
|
|
202
|
+
rubygems_version: 3.3.26
|
|
203
|
+
signing_key:
|
|
202
204
|
specification_version: 4
|
|
203
205
|
summary: Receives events over HTTP or HTTPS
|
|
204
206
|
test_files:
|
data/vendor/jar-dependencies/io/netty/netty-handler/4.1.136.Final/netty-handler-4.1.136.Final.jar
DELETED
|
Binary file
|