logstash-input-tcp 6.4.4-java → 7.0.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: 90b8855ae3bcc6aea919af0a8c2ac8d3fd85c3a523d51b67693d0b60dd5a6688
4
- data.tar.gz: 68aca7dc0516584b95d45159102a1d5e314659dd02dfd2b9d4962f24617027ec
3
+ metadata.gz: c8bc68458ba90d33f5f007625f68bbe9a1807a18c2c7d197aa75ed5092e1cc55
4
+ data.tar.gz: 0aa68f080ab88ad648bd9a19455bc495cdcbb1dbcab3b34e27d14e496ec5b3f9
5
5
  SHA512:
6
- metadata.gz: 9daaf0ea4912079e2399795312c6176f2ebbe738fb7d6685f35b799ff65595a50c08912ebf8a366b82999eca5b4f3e77e999420a74f8418e03b367fb7aeeec9b
7
- data.tar.gz: ed2a952062aa12ff2de9d733ddbf6eb03b7801fa4f5d47011b24820c9b7adf0e6a524883c8a6ff18fdcfc358f77e031e985da2ea516f89c0c37c6cd31e1e65a0
6
+ metadata.gz: 0ab15b83290d8dd586523d0a83a5a49741f2f9050851e8f86d04a2441ecf1b767467fecbd8372e8d7a67454b3f6cbcbcd2890790ba875914790d10e00bea5f92
7
+ data.tar.gz: e87be82c1979de3b29a4ad66d7c022a6cad29327d6ec660b835908d69d7abf5284af027a7194d2103e3c180d836f9f9039cc9b17f3e96046101012dac2a5a86a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 7.0.0
2
+ - SSL settings that were marked deprecated in version `6.4.0` are now marked obsolete, and will prevent the plugin from starting.
3
+ - These settings are:
4
+ - `ssl_cert`, which should be replaced by `ssl_certificate`
5
+ - `ssl_enable`, which should be replaced by `ssl_enabled`
6
+ - `ssl_verify`, which should be replaced by `ssl_client_authentication` when `mode` is `server` or `ssl_verification_mode`when mode is `client`
7
+ - [228](https://github.com/logstash-plugins/logstash-input-tcp/pull/228)
8
+
1
9
  ## 6.4.4
2
10
  - update netty to 4.1.115 [#227](https://github.com/logstash-plugins/logstash-input-tcp/pull/227)
3
11
 
data/docs/index.asciidoc CHANGED
@@ -121,6 +121,10 @@ filter {
121
121
 
122
122
  This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
123
123
 
124
+ NOTE: As of version `7.0.0` of this plugin, a number of previously deprecated settings related to SSL have been removed. Please see the
125
+ <<plugins-{type}s-{plugin}-obsolete-options>> for more details.
126
+
127
+
124
128
  [cols="<,<,<",options="header",]
125
129
  |=======================================================================
126
130
  |Setting |Input type|Required
@@ -130,19 +134,16 @@ This plugin supports the following configuration options plus the <<plugins-{typ
130
134
  | <<plugins-{type}s-{plugin}-mode>> |<<string,string>>, one of `["server", "client"]`|No
131
135
  | <<plugins-{type}s-{plugin}-port>> |<<number,number>>|Yes
132
136
  | <<plugins-{type}s-{plugin}-proxy_protocol>> |<<boolean,boolean>>|No
133
- | <<plugins-{type}s-{plugin}-ssl_cert>> |a valid filesystem path|__Deprecated__
134
137
  | <<plugins-{type}s-{plugin}-ssl_certificate>> |a valid filesystem path|No
135
138
  | <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> |<<array,array>>|No
136
139
  | <<plugins-{type}s-{plugin}-ssl_cipher_suites>> |<<string,string>>|No
137
140
  | <<plugins-{type}s-{plugin}-ssl_client_authentication>> |<<string,string>>, one of `["none", "optional", "required"]`|No
138
- | <<plugins-{type}s-{plugin}-ssl_enable>> |<<boolean,boolean>>|__Deprecated__
139
141
  | <<plugins-{type}s-{plugin}-ssl_enabled>> |<<boolean,boolean>>|No
140
142
  | <<plugins-{type}s-{plugin}-ssl_extra_chain_certs>> |<<array,array>>|No
141
143
  | <<plugins-{type}s-{plugin}-ssl_key>> |a valid filesystem path|No
142
144
  | <<plugins-{type}s-{plugin}-ssl_key_passphrase>> |<<password,password>>|No
143
145
  | <<plugins-{type}s-{plugin}-ssl_supported_protocols>> |<<string,string>>|No
144
146
  | <<plugins-{type}s-{plugin}-ssl_verification_mode>> |<<string,string>>, one of `["full", "none"]`|No
145
- | <<plugins-{type}s-{plugin}-ssl_verify>> |<<boolean,boolean>>|__Deprecated__
146
147
  | <<plugins-{type}s-{plugin}-tcp_keep_alive>> |<<boolean,boolean>>|No
147
148
  |=======================================================================
148
149
 
@@ -212,16 +213,6 @@ When mode is `client`, the port to connect to.
212
213
  Proxy protocol support, only v1 is supported at this time
213
214
  http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
214
215
 
215
- [id="plugins-{type}s-{plugin}-ssl_cert"]
216
- ===== `ssl_cert`
217
- deprecated[6.4.0, Replaced by <<plugins-{type}s-{plugin}-ssl_certificate>>]
218
-
219
- * Value type is <<path,path>>
220
- * There is no default value for this setting.
221
-
222
- Path to certificate in PEM format. This certificate will be presented
223
- to the connecting clients.
224
-
225
216
  [id="plugins-{type}s-{plugin}-ssl_certificate"]
226
217
  ===== `ssl_certificate`
227
218
 
@@ -268,14 +259,6 @@ Please note that the server does not validate the client certificate CN (Common
268
259
 
269
260
  NOTE: This setting can be used only if <<plugins-{type}s-{plugin}-mode>> is `server` and <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> is set.
270
261
 
271
- [id="plugins-{type}s-{plugin}-ssl_enable"]
272
- ===== `ssl_enable`
273
- deprecated[6.4.0, Replaced by <<plugins-{type}s-{plugin}-ssl_enabled>>]
274
-
275
- * Value type is <<boolean,boolean>>
276
- * Default value is `false`
277
-
278
- Enable SSL (must be set for other `ssl_` options to take effect).
279
262
 
280
263
  [id="plugins-{type}s-{plugin}-ssl_enabled"]
281
264
  ===== `ssl_enabled`
@@ -343,16 +326,6 @@ This setting can be used only if <<plugins-{type}s-{plugin}-mode>> is `client`.
343
326
 
344
327
  WARNING: Setting certificate verification to `none` disables many security benefits of SSL/TLS, which is very dangerous. For more information on disabling certificate verification please read https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf
345
328
 
346
- [id="plugins-{type}s-{plugin}-ssl_verify"]
347
- ===== `ssl_verify`
348
- deprecated[6.4.0, Replaced by <<plugins-{type}s-{plugin}-ssl_client_authentication>> and <<plugins-{type}s-{plugin}-ssl_verification_mode>>]
349
-
350
- * Value type is <<boolean,boolean>>
351
- * Default value is `true`
352
-
353
- Verify the identity of the other end of the SSL connection against the CA.
354
- For input, sets the field `sslsubject` to that of the client certificate.
355
-
356
329
  [id="plugins-{type}s-{plugin}-tcp_keep_alive"]
357
330
  ===== `tcp_keep_alive`
358
331
 
@@ -363,6 +336,21 @@ Instruct the socket to use TCP keep alive. If it's `true` then the underlying so
363
336
  will use the OS defaults settings for keep alive. If it's `false` it doesn't configure any
364
337
  keep alive setting for the underlying socket.
365
338
 
339
+ [id="plugins-{type}s-{plugin}-obsolete-options"]
340
+ ==== TCP Input Obsolete Configuration Options
341
+
342
+ WARNING: As of version `7.0.0` of this plugin, some configuration options have been replaced.
343
+ The plugin will fail to start if it contains any of these obsolete options.
344
+
345
+
346
+ [cols="<,<",options="header",]
347
+ |=======================================================================
348
+ |Setting|Replaced by
349
+ | ssl_cert |<<plugins-{type}s-{plugin}-ssl_certificate>>
350
+ | ssl_enable |<<plugins-{type}s-{plugin}-ssl_enabled>>
351
+ | ssl_verify |<<plugins-{type}s-{plugin}-ssl_client_authentication>> in `server` mode and <<plugins-{type}s-{plugin}-ssl_verification_mode>> in `client` mode
352
+ |=======================================================================
353
+
366
354
 
367
355
  [id="plugins-{type}s-{plugin}-common-options"]
368
356
  include::{include_path}/{type}.asciidoc[]
@@ -6,7 +6,6 @@ require "logstash/inputs/base"
6
6
  require "logstash/util/socket_peer"
7
7
  require "logstash-input-tcp_jars"
8
8
  require 'logstash/plugin_mixins/ecs_compatibility_support'
9
- require "logstash/plugin_mixins/normalize_config_support"
10
9
 
11
10
  require "socket"
12
11
  require "openssl"
@@ -69,8 +68,6 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
69
68
  # ecs_compatibility option, provided by Logstash core or the support adapter.
70
69
  include LogStash::PluginMixins::ECSCompatibilitySupport(:disabled, :v1, :v8 => :v1)
71
70
 
72
- include LogStash::PluginMixins::NormalizeConfigSupport
73
-
74
71
  config_name "tcp"
75
72
 
76
73
  default :codec, "line"
@@ -91,8 +88,6 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
91
88
  # http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
92
89
  config :proxy_protocol, :validate => :boolean, :default => false
93
90
 
94
- # Enable SSL (must be set for other `ssl_` options to take effect).
95
- config :ssl_enable, :validate => :boolean, :default => false, :deprecated => "Use 'ssl_enabled' instead."
96
91
 
97
92
  # Enable SSL (must be set for other `ssl_` options to take effect).
98
93
  config :ssl_enabled, :validate => :boolean, :default => false
@@ -104,9 +99,6 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
104
99
  # This option needs to be used with `ssl_certificate_authorities` and a defined list of CAs.
105
100
  config :ssl_client_authentication, :validate => %w[none optional required], :default => 'required'
106
101
 
107
- # Verify the identity of the other end of the SSL connection against the CA.
108
- # For input, sets the field `sslsubject` to that of the client certificate.
109
- config :ssl_verify, :validate => :boolean, :default => true, :deprecated => "Use 'ssl_client_authentication' when mode is 'server' or 'ssl_verification_mode' when mode is 'client'"
110
102
 
111
103
  # Options to verify the server's certificate.
112
104
  # "full": validates that the provided certificate has an issue date that’s within the not_before and not_after dates;
@@ -116,8 +108,6 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
116
108
  config :ssl_verification_mode, :validate => %w[full none], :default => 'full'
117
109
 
118
110
  # SSL certificate path
119
- config :ssl_cert, :validate => :path, :deprecated => "Use 'ssl_certificate' instead."
120
-
121
111
  # SSL certificate path
122
112
  config :ssl_certificate, :validate => :path
123
113
 
@@ -148,6 +138,13 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
148
138
  # Option to allow users to avoid DNS Reverse Lookup.
149
139
  config :dns_reverse_lookup_enabled, :validate => :boolean, :default => true
150
140
 
141
+ # Obsolete SSL Settings
142
+ config :ssl_enable, :obsolete => "Use 'ssl_enabled' instead."
143
+ config :ssl_verify, :obsolete => "Use 'ssl_client_authentication' when mode is 'server' or 'ssl_verification_mode' when mode is 'client'"
144
+ config :ssl_cert, :obsolete => "Use 'ssl_certificate' instead."
145
+
146
+
147
+
151
148
  # Monkey patch TCPSocket and SSLSocket to include socket peer
152
149
  # @private
153
150
  def self.patch_socket_peer!
@@ -163,7 +160,6 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
163
160
  super(*args)
164
161
 
165
162
  setup_fields!
166
- setup_ssl_params!
167
163
 
168
164
  self.class.patch_socket_peer!
169
165
 
@@ -368,35 +364,6 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
368
364
  original_params.include?('ssl_enable') ? 'ssl_enable' : 'ssl_enabled'
369
365
  end
370
366
 
371
- def setup_ssl_params!
372
- @ssl_enabled = normalize_config(:ssl_enabled) do |normalizer|
373
- normalizer.with_deprecated_alias(:ssl_enable)
374
- end
375
-
376
- @ssl_certificate = normalize_config(:ssl_certificate) do |normalizer|
377
- normalizer.with_deprecated_alias(:ssl_cert)
378
- end
379
-
380
- if server?
381
- @ssl_client_authentication = normalize_config(:ssl_client_authentication) do |normalizer|
382
- normalizer.with_deprecated_mapping(:ssl_verify) do |ssl_verify|
383
- ssl_verify == true ? "required" : "none"
384
- end
385
- end
386
- else
387
- @ssl_verification_mode = normalize_config(:ssl_verification_mode) do |normalize|
388
- normalize.with_deprecated_mapping(:ssl_verify) do |ssl_verify|
389
- ssl_verify == true ? "full" : "none"
390
- end
391
- end
392
- end
393
-
394
- params['ssl_enabled'] = @ssl_enabled unless @ssl_enabled.nil?
395
- params['ssl_certificate'] = @ssl_certificate unless @ssl_certificate.nil?
396
- params['ssl_verification_mode'] = @ssl_verification_mode unless @ssl_verification_mode.nil?
397
- params['ssl_client_authentication'] = @ssl_client_authentication unless @ssl_client_authentication.nil?
398
- end
399
-
400
367
  def server?
401
368
  @mode == "server"
402
369
  end
@@ -9,4 +9,4 @@ require_jar('io.netty', 'netty-handler', '4.1.115.Final')
9
9
  require_jar('io.netty', 'netty-transport-native-unix-common', '4.1.115.Final')
10
10
  require_jar('commons-io', 'commons-io', '2.17.0')
11
11
 
12
- require_jar('org.logstash.inputs', 'logstash-input-tcp', '6.4.4')
12
+ require_jar('org.logstash.inputs', 'logstash-input-tcp', '7.0.0')
@@ -22,7 +22,6 @@ Gem::Specification.new do |s|
22
22
  # Gem dependencies
23
23
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
24
24
  s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.2'
25
- s.add_runtime_dependency 'logstash-mixin-normalize_config_support', '~>1.0'
26
25
 
27
26
  s.add_runtime_dependency 'logstash-core', '>= 8.1.0'
28
27
 
@@ -54,6 +54,25 @@ describe LogStash::Inputs::Tcp, :ecs_compatibility_support do
54
54
  end
55
55
  end
56
56
 
57
+ ['client', 'server'].each do | mode|
58
+ describe "handling obsolete settings for #{mode} mode" do
59
+ [{:name => 'ssl_cert', :replacement => 'ssl_certificate', :sample_value => "certificate_path"},
60
+ {:name => 'ssl_enable', :replacement => 'ssl_enabled', :sample_value => true},
61
+ {:name => 'ssl_verify', :replacement => 'ssl_client_authentication', :sample_value => 'peer'}].each do | obsolete_setting |
62
+ context "with obsolete #{obsolete_setting[:name]}" do
63
+ let(:config) { { "mode" => mode, "port" => port } }
64
+ let (:deprecated_config) do
65
+ config.merge({obsolete_setting[:name] => obsolete_setting[:sample_value]})
66
+ end
67
+
68
+ it "should raise a config error with the appropriate message" do
69
+ expect { LogStash::Inputs::Tcp.new(deprecated_config).register }.to raise_error LogStash::ConfigurationError, /The setting `#{obsolete_setting[:name]}` in plugin `tcp` is obsolete and is no longer available. Use '#{obsolete_setting[:replacement]}'/i
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+
57
76
  ecs_compatibility_matrix(:disabled,:v1, :v8 => :v1) do |ecs_select|
58
77
  before(:each) do
59
78
  allow_any_instance_of(described_class).to receive(:ecs_compatibility).and_return(ecs_compatibility)
@@ -90,7 +109,9 @@ describe LogStash::Inputs::Tcp, :ecs_compatibility_support do
90
109
  aggregate_failures("event #{i}") do
91
110
  expect(event.get("message")).to eq("#{i} ☹")
92
111
  expect(event.get(ecs_select[disabled: "host", v1: "[@metadata][input][tcp][source][name]"])).to eq("localhost").or eq("ip6-localhost")
93
- expect(event.get(ecs_select[disabled: "[@metadata][ip_address]", v1: "[@metadata][input][tcp][source][ip]"])).to eq('127.0.0.1')
112
+ ip_address = event.get(ecs_select[disabled: "[@metadata][ip_address]", v1: "[@metadata][input][tcp][source][ip]"])
113
+ # Account for both ipv4 or ipv6 localhost
114
+ expect(["127.0.0.1", "::1", "0:0:0:0:0:0:0:1"]).to include(ip_address)
94
115
  end
95
116
  end
96
117
  end
@@ -600,17 +621,6 @@ describe LogStash::Inputs::Tcp, :ecs_compatibility_support do
600
621
  end
601
622
  end
602
623
 
603
- context "with deprecated ssl_verify = true and no ssl_certificate_authorities" do
604
- let(:config) { super().merge(
605
- 'ssl_verify' => true,
606
- 'ssl_certificate_authorities' => []
607
- ) }
608
-
609
- it "should register without errors" do
610
- expect { subject.register }.to_not raise_error
611
- end
612
- end
613
-
614
624
  %w[required optional].each do |ssl_client_authentication|
615
625
  context "with ssl_client_authentication = `#{ssl_client_authentication}` and no ssl_certificate_authorities" do
616
626
  let(:config) { super().merge(
@@ -634,70 +644,6 @@ describe LogStash::Inputs::Tcp, :ecs_compatibility_support do
634
644
  end
635
645
  end
636
646
  end
637
-
638
- context "with deprecated settings" do
639
- let(:ssl_verify) { true }
640
- let(:certificate_path) { File.expand_path('../fixtures/small.crt', File.dirname(__FILE__)) }
641
- let(:config) do
642
- {
643
- "host" => "127.0.0.1",
644
- "port" => port,
645
- "ssl_enable" => true,
646
- "ssl_cert" => certificate_path,
647
- "ssl_key" => File.expand_path('../fixtures/small.key', File.dirname(__FILE__)),
648
- "ssl_verify" => ssl_verify
649
- }
650
- end
651
-
652
- context "and mode is server" do
653
- let(:config) { super().merge("mode" => 'server') }
654
- [true, false].each do |verify|
655
- context "and ssl_verify is #{verify}" do
656
- let(:ssl_verify) { verify }
657
-
658
- it "should set new configs params" do
659
- subject.register
660
- expect(subject.params).to match hash_including(
661
- "ssl_enabled" => true,
662
- "ssl_certificate" => certificate_path,
663
- "ssl_client_authentication" => verify ? 'required' : 'none')
664
- end
665
-
666
- it "should set new configs variables" do
667
- subject.register
668
- expect(subject.instance_variable_get(:@ssl_enabled)).to eql(true)
669
- expect(subject.instance_variable_get(:@ssl_client_authentication)).to eql(verify ? 'required' : 'none')
670
- expect(subject.instance_variable_get(:@ssl_certificate)).to eql(certificate_path)
671
- end
672
- end
673
- end
674
- end
675
-
676
- context "and mode is client" do
677
- let(:config) { super().merge("mode" => 'client') }
678
- [true, false].each do |verify|
679
- context "and ssl_verify is #{verify}" do
680
- let(:ssl_verify) { verify }
681
-
682
- it "should set new configs params" do
683
- subject.register
684
- expect(subject.params).to match hash_including(
685
- "ssl_enabled" => true,
686
- "ssl_certificate" => certificate_path,
687
- "ssl_verification_mode" => verify ? 'full' : 'none'
688
- )
689
- end
690
-
691
- it "should set new configs variables" do
692
- subject.register
693
- expect(subject.instance_variable_get(:@ssl_enabled)).to eql(true)
694
- expect(subject.instance_variable_get(:@ssl_verification_mode)).to eql(verify ? 'full' : 'none')
695
- expect(subject.instance_variable_get(:@ssl_certificate)).to eql(certificate_path)
696
- end
697
- end
698
- end
699
- end
700
- end
701
647
  end
702
648
  end
703
649
 
@@ -745,7 +691,7 @@ describe LogStash::Inputs::Tcp, :ecs_compatibility_support do
745
691
 
746
692
  context "with a non encrypted private key" do
747
693
  let(:config) do
748
- base_config.merge "ssl_verify" => true
694
+ base_config.merge "ssl_client_authentication" => "required"
749
695
  end
750
696
  it "should be able to connect and write data" do
751
697
  result = TcpHelpers.pipelineless_input(subject, 1) do
data/version CHANGED
@@ -1 +1 @@
1
- 6.4.4
1
+ 7.0.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-tcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.4
4
+ version: 7.0.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-18 00:00:00.000000000 Z
11
+ date: 2025-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -44,20 +44,6 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.2'
47
- - !ruby/object:Gem::Dependency
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '1.0'
53
- name: logstash-mixin-normalize_config_support
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '1.0'
61
47
  - !ruby/object:Gem::Dependency
62
48
  requirement: !ruby/object:Gem::Requirement
63
49
  requirements:
@@ -252,7 +238,7 @@ files:
252
238
  - vendor/jar-dependencies/io/netty/netty-handler/4.1.115.Final/netty-handler-4.1.115.Final.jar
253
239
  - vendor/jar-dependencies/io/netty/netty-transport-native-unix-common/4.1.115.Final/netty-transport-native-unix-common-4.1.115.Final.jar
254
240
  - vendor/jar-dependencies/io/netty/netty-transport/4.1.115.Final/netty-transport-4.1.115.Final.jar
255
- - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/6.4.4/logstash-input-tcp-6.4.4.jar
241
+ - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/7.0.0/logstash-input-tcp-7.0.0.jar
256
242
  - version
257
243
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
258
244
  licenses: