logstash-output-http 5.7.1 → 6.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ee250c7e18f8f86d45a9976fdad992c6b329d862c153c1ee786032bb1fca022
4
- data.tar.gz: 346c7c1027d694bb03288a271a72bdde0f8f1d37a162dd2b2f6b6e8073e45f37
3
+ metadata.gz: f887c063c426371dcac24fc81fc2256820f80b0b6ae339c7f32419f475600cea
4
+ data.tar.gz: 15974dc3489ea6abbfcf71240566434e5c662691f025b3e59f1c1600f84f7fbd
5
5
  SHA512:
6
- metadata.gz: 889fc141a67c6eddc1dc35f87da3fde5fcc56c5f294662a370bcc401a8a7848937ad5e1c912d1234ae68f1de3779bab2648e8588249c6f3e6ef6087dbf5c0a34
7
- data.tar.gz: d6ef06b950a4763025625ca3dc9e8c09bd086f50a42d0bce35f0de64ab445cac4a3e54980343374a69ab615fdc1940a7df4b57e9077c3ddcc956213e11476bdb
6
+ metadata.gz: 5f7f6500e1bb070365cc699f79a4838dc6d83e8657ed5ca98f91bca5a0a1fd08301be2cc13cf86e2662f618472a046cdb0509ff9a8f2bd902151ae80b12534cb
7
+ data.tar.gz: 1204984aa97a5c97e7a665e9649b77a7be5ef463dcfdf1611b9c27adfce1c74583a93773261d2d0a821f6ef1e48856b8fc2b681a71dfc748fe1707b02eb34199
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## 6.0.1
2
+ - [DOC] Clarify that `ssl_certificate_authorities` takes at-most-one value [#150](https://github.com/logstash-plugins/logstash-output-http/pull/150)
3
+
4
+ ## 6.0.0
5
+ - SSL settings that were marked deprecated in version `5.6.0` are now marked obsolete, and will prevent the plugin from starting.
6
+ - These settings are:
7
+ - `cacert`, which should be replaced by `ssl_certificate_authorities`
8
+ - `client_cert`, which should be replaced by `ssl_certificate`
9
+ - `client_key`, which should be replaced by `ssl_key`
10
+ - `keystore`, which should be replaced by `ssl_keystore_path`
11
+ - `keystore_password`, which should be replaced by `ssl_keystore_password`
12
+ - `keystore_type`, which should be replaced by `ssl_keystore_password`
13
+ - `truststore`, which should be replaced by `ssl_truststore_path>`
14
+ - `truststore_password`, which should be replaced by `ssl_truststore_password`
15
+ - `truststore_type`, which should be replaced by `ssl_truststore_type`
16
+ - [#147](https://github.com/logstash-plugins/logstash-output-http/pull/147)
17
+
1
18
  ## 5.7.1
2
19
  - Added new development `rackup` dependency to fix tests
3
20
 
data/docs/index.asciidoc CHANGED
@@ -70,13 +70,13 @@ NOTE: The `retry_failed` option does not control the library level retry.
70
70
 
71
71
  This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
72
72
 
73
+ NOTE: As of version `6.0.0` of this plugin, a number of previously deprecated settings related to SSL have been removed.
74
+ Please check out <<plugins-{type}s-{plugin}-obsolete-options>> for details.
75
+
73
76
  [cols="<,<,<",options="header",]
74
77
  |=======================================================================
75
78
  |Setting |Input type|Required
76
79
  | <<plugins-{type}s-{plugin}-automatic_retries>> |<<number,number>>|No
77
- | <<plugins-{type}s-{plugin}-cacert>> |a valid filesystem path|__Deprecated__
78
- | <<plugins-{type}s-{plugin}-client_cert>> |a valid filesystem path|__Deprecated__
79
- | <<plugins-{type}s-{plugin}-client_key>> |a valid filesystem path|__Deprecated__
80
80
  | <<plugins-{type}s-{plugin}-connect_timeout>> |<<number,number>>|No
81
81
  | <<plugins-{type}s-{plugin}-content_type>> |<<string,string>>|No
82
82
  | <<plugins-{type}s-{plugin}-cookies>> |<<boolean,boolean>>|No
@@ -87,9 +87,6 @@ This plugin supports the following configuration options plus the <<plugins-{typ
87
87
  | <<plugins-{type}s-{plugin}-http_method>> |<<string,string>>, one of `["put", "post", "patch", "delete", "get", "head"]`|Yes
88
88
  | <<plugins-{type}s-{plugin}-ignorable_codes>> |<<number,number>>|No
89
89
  | <<plugins-{type}s-{plugin}-keepalive>> |<<boolean,boolean>>|No
90
- | <<plugins-{type}s-{plugin}-keystore>> |a valid filesystem path|__Deprecated__
91
- | <<plugins-{type}s-{plugin}-keystore_password>> |<<password,password>>|__Deprecated__
92
- | <<plugins-{type}s-{plugin}-keystore_type>> |<<string,string>>|__Deprecated__
93
90
  | <<plugins-{type}s-{plugin}-mapping>> |<<hash,hash>>|No
94
91
  | <<plugins-{type}s-{plugin}-message>> |<<string,string>>|No
95
92
  | <<plugins-{type}s-{plugin}-pool_max>> |<<number,number>>|No
@@ -112,9 +109,6 @@ This plugin supports the following configuration options plus the <<plugins-{typ
112
109
  | <<plugins-{type}s-{plugin}-ssl_truststore_path>> |<<path,path>>|No
113
110
  | <<plugins-{type}s-{plugin}-ssl_truststore_type>> |<<string,string>>|No
114
111
  | <<plugins-{type}s-{plugin}-ssl_verification_mode>> |<<string,string>>, one of `["full", "none"]`|No
115
- | <<plugins-{type}s-{plugin}-truststore>> |a valid filesystem path|__Deprecated__
116
- | <<plugins-{type}s-{plugin}-truststore_password>> |<<password,password>>|__Deprecated__
117
- | <<plugins-{type}s-{plugin}-truststore_type>> |<<string,string>>|__Deprecated__
118
112
  | <<plugins-{type}s-{plugin}-url>> |<<string,string>>|Yes
119
113
  | <<plugins-{type}s-{plugin}-validate_after_inactivity>> |<<number,number>>|No
120
114
  |=======================================================================
@@ -135,32 +129,6 @@ to a value other than zero if the <<plugins-{type}s-{plugin}-keepalive,`keepaliv
135
129
  Some servers incorrectly end keepalives early, requiring a retry.
136
130
  See <<plugins-{type}s-{plugin}-retry_policy,Retry Policy>> for more information.
137
131
 
138
- [id="plugins-{type}s-{plugin}-cacert"]
139
- ===== `cacert`
140
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_certificate_authorities>>]
141
-
142
- * Value type is <<path,path>>
143
- * There is no default value for this setting.
144
-
145
- If you need to use a custom X.509 CA (.pem certs) specify the path to that here
146
-
147
- [id="plugins-{type}s-{plugin}-client_cert"]
148
- ===== `client_cert`
149
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_certificate>>]
150
-
151
- * Value type is <<path,path>>
152
- * There is no default value for this setting.
153
-
154
- If you'd like to use a client certificate (note, most people don't want this) set the path to the x509 cert here
155
-
156
- [id="plugins-{type}s-{plugin}-client_key"]
157
- ===== `client_key`
158
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_key>>]
159
-
160
- * Value type is <<path,path>>
161
- * There is no default value for this setting.
162
-
163
- If you're using a client certificate specify the path to the encryption key here
164
132
 
165
133
  [id="plugins-{type}s-{plugin}-connect_timeout"]
166
134
  ===== `connect_timeout`
@@ -265,34 +233,6 @@ enumerate them here. Responses returning these codes will be considered successe
265
233
  Turn this on to enable HTTP keepalive support. We highly recommend setting `automatic_retries` to at least
266
234
  one with this to fix interactions with broken keepalive implementations.
267
235
 
268
- [id="plugins-{type}s-{plugin}-keystore"]
269
- ===== `keystore`
270
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_keystore_path>>]
271
-
272
- * Value type is <<path,path>>
273
- * There is no default value for this setting.
274
-
275
- If you need to use a custom keystore (`.jks`) specify that here. This does not work with .pem keys!
276
-
277
- [id="plugins-{type}s-{plugin}-keystore_password"]
278
- ===== `keystore_password`
279
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_keystore_password>>]
280
-
281
- * Value type is <<password,password>>
282
- * There is no default value for this setting.
283
-
284
- Specify the keystore password here.
285
- Note, most .jks files created with keytool require a password!
286
-
287
- [id="plugins-{type}s-{plugin}-keystore_type"]
288
- ===== `keystore_type`
289
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_keystore_type>>]
290
-
291
- * Value type is <<string,string>>
292
- * Default value is `"JKS"`
293
-
294
- Specify the keystore type here. One of `JKS` or `PKCS12`. Default is `JKS`
295
-
296
236
  [id="plugins-{type}s-{plugin}-mapping"]
297
237
  ===== `mapping`
298
238
 
@@ -408,10 +348,13 @@ NOTE: This setting can be used only if <<plugins-{type}s-{plugin}-ssl_key>> is s
408
348
  ===== `ssl_certificate_authorities`
409
349
 
410
350
  * Value type is a list of <<path,path>>
351
+ * This plugin does not support multiple entries
411
352
  * There is no default value for this setting
412
353
 
413
354
  The .cer or .pem CA files to validate the server's certificate.
414
355
 
356
+ NOTE: When provided with a single PEM file that contains multiple certificates, all enclosed certificates will be trusted.
357
+
415
358
  [id="plugins-{type}s-{plugin}-ssl_cipher_suites"]
416
359
  ===== `ssl_cipher_suites`
417
360
 
@@ -523,34 +466,6 @@ This mode disables many of the security benefits of SSL/TLS and should only be u
523
466
  It is primarily intended as a temporary diagnostic mechanism when attempting to resolve TLS errors.
524
467
  Using `none` in production environments is strongly discouraged.
525
468
 
526
- [id="plugins-{type}s-{plugin}-truststore"]
527
- ===== `truststore`
528
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_truststore_path>>]
529
-
530
- * Value type is <<path,path>>
531
- * There is no default value for this setting.
532
-
533
- If you need to use a custom truststore (`.jks`) specify that here. This does not work with .pem certs!
534
-
535
- [id="plugins-{type}s-{plugin}-truststore_password"]
536
- ===== `truststore_password`
537
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_truststore_password>>]
538
-
539
- * Value type is <<password,password>>
540
- * There is no default value for this setting.
541
-
542
- Specify the truststore password here.
543
- Note, most .jks files created with keytool require a password!
544
-
545
- [id="plugins-{type}s-{plugin}-truststore_type"]
546
- ===== `truststore_type`
547
- deprecated[5.6.0, Replaced by <<plugins-{type}s-{plugin}-ssl_truststore_type>>]
548
-
549
- * Value type is <<string,string>>
550
- * Default value is `"JKS"`
551
-
552
- Specify the truststore type here. One of `JKS` or `PKCS12`. Default is `JKS`
553
-
554
469
  [id="plugins-{type}s-{plugin}-url"]
555
470
  ===== `url`
556
471
 
@@ -573,8 +488,29 @@ Quoting the Apache commons docs (this client is based Apache Commmons):
573
488
  See https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/conn/PoolingHttpClientConnectionManager.html#setValidateAfterInactivity(int)[these docs for more info]
574
489
 
575
490
 
491
+ [id="plugins-{type}s-{plugin}-obsolete-options"]
492
+ ==== HTTP Output Obsolete Configuration Options
493
+
494
+ WARNING: As of version `6.0.0` of this plugin, some configuration options have been replaced.
495
+ The plugin will fail to start if it contains any of these obsolete options.
496
+
497
+
498
+ [cols="<,<",options="header",]
499
+ |=======================================================================
500
+ |Setting|Replaced by
501
+ | cacert |<<plugins-{type}s-{plugin}-ssl_certificate_authorities>>
502
+ | client_cert |<<plugins-{type}s-{plugin}-ssl_certificate>>
503
+ | client_key |<<plugins-{type}s-{plugin}-ssl_key>>
504
+ | keystore |<<plugins-{type}s-{plugin}-ssl_keystore_path>>
505
+ | keystore_password |<<plugins-{type}s-{plugin}-ssl_keystore_password>>
506
+ | keystore_type |<<plugins-{type}s-{plugin}-ssl_keystore_password>>
507
+ | truststore |<<plugins-{type}s-{plugin}-ssl_truststore_path>>
508
+ | truststore_password |<<plugins-{type}s-{plugin}-ssl_truststore_password>>
509
+ | truststore_type |<<plugins-{type}s-{plugin}-ssl_truststore_type>>
510
+ |=======================================================================
511
+
576
512
 
577
513
  [id="plugins-{type}s-{plugin}-common-options"]
578
514
  include::{include_path}/{type}.asciidoc[]
579
515
 
580
- :default_codec!:
516
+ :default_codec!:
@@ -7,7 +7,7 @@ require "logstash/plugin_mixins/http_client"
7
7
  require "zlib"
8
8
 
9
9
  class LogStash::Outputs::Http < LogStash::Outputs::Base
10
- include LogStash::PluginMixins::HttpClient[:with_deprecated => true]
10
+ include LogStash::PluginMixins::HttpClient[:with_obsolete => true]
11
11
 
12
12
  concurrency :shared
13
13
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-http'
3
- s.version = '5.7.1'
3
+ s.version = '6.0.1'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "Sends events to a generic HTTP or HTTPS endpoint"
6
6
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # Gem dependencies
22
22
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
23
- s.add_runtime_dependency "logstash-mixin-http_client", ">= 7.4.0", "< 8.0.0"
23
+ s.add_runtime_dependency "logstash-mixin-http_client", ">= 7.5.0", "< 8.0.0"
24
24
 
25
25
  s.add_development_dependency 'logstash-devutils'
26
26
  s.add_development_dependency 'sinatra'
@@ -20,6 +20,32 @@ describe LogStash::Outputs::Http do
20
20
  let(:url) { "http://localhost:#{port}/good" }
21
21
  let(:method) { "post" }
22
22
 
23
+ describe "obsolete settings" do
24
+ let(:config) { {"url" => url, "http_method" => "post"} }
25
+
26
+ [{:name => 'cacert', :canonical_name => 'ssl_certificate_authorities'},
27
+ {:name => 'client_cert', :canonical_name => 'ssl_certificate'},
28
+ {:name => 'client_key', :canonical_name => 'ssl_key'},
29
+ {:name => "keystore", :canonical_name => 'ssl_keystore_path'},
30
+ {:name => 'truststore', :canonical_name => 'ssl_truststore_path'},
31
+ {:name => "keystore_password", :canonical_name => "ssl_keystore_password"},
32
+ {:name => 'truststore_password', :canonical_name => "ssl_truststore_password"},
33
+ {:name => "keystore_type", :canonical_name => "ssl_keystore_type"},
34
+ {:name => 'truststore_type', :canonical_name => 'ssl_truststore_type'}
35
+ ].each do |settings|
36
+ context "with option #{settings[:name]}" do
37
+ let(:obsolete_config) { config.merge(settings[:name] => 'test_value') }
38
+
39
+ it "emits an error about the setting `#{settings[:name]}` now being obsolete and provides guidance to use `#{settings[:canonical_name]}`" do
40
+ error_text = /The setting `#{settings[:name]}` in plugin `http` is obsolete and is no longer available. Use `#{settings[:canonical_name]}` instead/i
41
+ expect { LogStash::Outputs::Http.new(obsolete_config) }.to raise_error LogStash::ConfigurationError, error_text
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+
48
+
23
49
  shared_examples("verb behavior") do |method|
24
50
 
25
51
  shared_examples("failure log behaviour") do
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.7.1
4
+ version: 6.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-11-18 00:00:00.000000000 Z
10
+ date: 2026-03-12 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
13
+ name: logstash-core-plugin-api
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
@@ -19,7 +19,6 @@ dependencies:
19
19
  - - "<="
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.99'
22
- name: logstash-core-plugin-api
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,32 +30,32 @@ dependencies:
31
30
  - !ruby/object:Gem::Version
32
31
  version: '2.99'
33
32
  - !ruby/object:Gem::Dependency
33
+ name: logstash-mixin-http_client
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
- version: 7.4.0
38
+ version: 7.5.0
39
39
  - - "<"
40
40
  - !ruby/object:Gem::Version
41
41
  version: 8.0.0
42
- name: logstash-mixin-http_client
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
46
45
  requirements:
47
46
  - - ">="
48
47
  - !ruby/object:Gem::Version
49
- version: 7.4.0
48
+ version: 7.5.0
50
49
  - - "<"
51
50
  - !ruby/object:Gem::Version
52
51
  version: 8.0.0
53
52
  - !ruby/object:Gem::Dependency
53
+ name: logstash-devutils
54
54
  requirement: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
58
  version: '0'
59
- name: logstash-devutils
60
59
  type: :development
61
60
  prerelease: false
62
61
  version_requirements: !ruby/object:Gem::Requirement
@@ -65,12 +64,12 @@ dependencies:
65
64
  - !ruby/object:Gem::Version
66
65
  version: '0'
67
66
  - !ruby/object:Gem::Dependency
67
+ name: sinatra
68
68
  requirement: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: '0'
73
- name: sinatra
74
73
  type: :development
75
74
  prerelease: false
76
75
  version_requirements: !ruby/object:Gem::Requirement
@@ -79,12 +78,12 @@ dependencies:
79
78
  - !ruby/object:Gem::Version
80
79
  version: '0'
81
80
  - !ruby/object:Gem::Dependency
81
+ name: webrick
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - ">="
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
- name: webrick
88
87
  type: :development
89
88
  prerelease: false
90
89
  version_requirements: !ruby/object:Gem::Requirement
@@ -93,12 +92,12 @@ dependencies:
93
92
  - !ruby/object:Gem::Version
94
93
  version: '0'
95
94
  - !ruby/object:Gem::Dependency
95
+ name: rackup
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "<"
99
99
  - !ruby/object:Gem::Version
100
100
  version: 2.1.0
101
- name: rackup
102
101
  type: :development
103
102
  prerelease: false
104
103
  version_requirements: !ruby/object:Gem::Requirement
@@ -132,7 +131,6 @@ licenses:
132
131
  metadata:
133
132
  logstash_plugin: 'true'
134
133
  logstash_group: output
135
- post_install_message:
136
134
  rdoc_options: []
137
135
  require_paths:
138
136
  - lib
@@ -147,8 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
145
  - !ruby/object:Gem::Version
148
146
  version: '0'
149
147
  requirements: []
150
- rubygems_version: 3.3.26
151
- signing_key:
148
+ rubygems_version: 3.6.3
152
149
  specification_version: 4
153
150
  summary: Sends events to a generic HTTP or HTTPS endpoint
154
151
  test_files: