logstash-input-tcp 4.2.2-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.
@@ -0,0 +1,91 @@
1
+ # encoding: utf-8
2
+ require "logstash/devutils/rspec/spec_helper"
3
+ require "tempfile"
4
+ require "stud/temporary"
5
+
6
+ # this has been taken from the udp input, it should be DRYed
7
+
8
+ class TcpHelpers
9
+
10
+ def pipelineless_input(plugin, size, &block)
11
+ queue = Queue.new
12
+ input_thread = Thread.new do
13
+ plugin.run(queue)
14
+ end
15
+ block.call
16
+ sleep 0.1 while queue.size != size
17
+ result = size.times.inject([]) do |acc|
18
+ acc << queue.pop
19
+ end
20
+ plugin.do_stop
21
+ input_thread.join
22
+ result
23
+ end
24
+
25
+ def certificate
26
+ certificate, key = Flores::PKI.generate("CN=localhost", { :key_size => 2048 })
27
+ [new_temp_file('cert', certificate), new_temp_file('key', key)]
28
+ end
29
+
30
+ def chain_of_certificates
31
+ root_ca, root_key = build_root_ca
32
+ a_cert, a_key = build_certificate(root_ca, root_key, "A_Cert")
33
+ aa_cert, aa_key = build_certificate(root_ca, root_key, "AA_Cert")
34
+ b_cert, b_key = build_certificate(a_cert, a_key, "B_Cert")
35
+ c_cert, c_key = build_certificate(b_cert, b_key, "C_Cert")
36
+ { :root_ca => new_temp_file('', root_ca), :root_key => new_temp_file('', root_key),
37
+ :a_cert => new_temp_file('', a_cert), :a_key => new_temp_file('', a_key),
38
+ :aa_cert => new_temp_file('', aa_cert), :aa_key => new_temp_file('', aa_key),
39
+ :b_cert => new_temp_file('', b_cert), :b_key => new_temp_file('', b_key),
40
+ :c_cert => new_temp_file('', c_cert), :c_key => new_temp_file('', c_key)}
41
+ end
42
+
43
+ private
44
+
45
+ def new_temp_file(name, data)
46
+ file = Stud::Temporary.file
47
+ file.write(data)
48
+ file.rewind
49
+ file
50
+ end
51
+
52
+ def build_certificate(root_ca, root_key=nil, name="")
53
+ key = ( root_key.nil? ? OpenSSL::PKey::RSA.new(2048) : root_key )
54
+ options = { :serial => 2, :subject => "/DC=org/DC=ruby-lang/CN=Ruby#{name}", :key => key, :issuer => root_ca.subject}
55
+ cert = new_certificate(options)
56
+ add_ca_extensions(cert, nil, root_ca)
57
+ [ cert.sign(key, OpenSSL::Digest::SHA256.new), key ]
58
+ end
59
+
60
+ def build_root_ca
61
+ key = OpenSSL::PKey::RSA.new(2048)
62
+ options = { :serial => 1, :subject => "/DC=org/DC=ruby-lang/CN=Ruby CA", :key => key}
63
+ ca = new_certificate(options)
64
+ add_ca_extensions(ca)
65
+ [ ca.sign(key, OpenSSL::Digest::SHA256.new), key ]
66
+ end
67
+
68
+ def new_certificate(options)
69
+ cert = OpenSSL::X509::Certificate.new
70
+ cert.version = 2
71
+ cert.serial = options.fetch(:serial, 1)
72
+ cert.subject = OpenSSL::X509::Name.parse(options.fetch(:subject, "/DC=org/DC=ruby-lang/CN=Ruby CA"))
73
+ cert.issuer = options.fetch(:issuer, cert.subject)
74
+ cert.public_key = options[:key].public_key
75
+ cert.not_before = Time.now
76
+ cert.not_after = cert.not_before + 2 * 365 * 86400
77
+ cert
78
+ end
79
+
80
+ def add_ca_extensions(certificate, subject=nil, issuer=nil)
81
+ factory = OpenSSL::X509::ExtensionFactory.new
82
+ factory.subject_certificate = (subject.nil? ? certificate : subject)
83
+ factory.issuer_certificate = (issuer.nil? ? certificate : issuer)
84
+
85
+ certificate.add_extension(factory.create_extension("basicConstraints","CA:TRUE",true))
86
+ certificate.add_extension(factory.create_extension("keyUsage","keyCertSign, cRLSign, digitalSignature", true))
87
+ certificate.add_extension(factory.create_extension("subjectKeyIdentifier","hash",false))
88
+ certificate.add_extension(factory.create_extension("authorityKeyIdentifier","keyid:always",false))
89
+ end
90
+
91
+ end
data/version ADDED
@@ -0,0 +1 @@
1
+ 4.2.2
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logstash-input-tcp
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.2.2
5
+ platform: java
6
+ authors:
7
+ - Elastic
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.60'
19
+ - - "<="
20
+ - !ruby/object:Gem::Version
21
+ version: '2.99'
22
+ name: logstash-core-plugin-api
23
+ prerelease: false
24
+ type: :runtime
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.60'
30
+ - - "<="
31
+ - !ruby/object:Gem::Version
32
+ version: '2.99'
33
+ - !ruby/object:Gem::Dependency
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ name: logstash-codec-plain
40
+ prerelease: false
41
+ type: :runtime
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ name: logstash-codec-line
54
+ prerelease: false
55
+ type: :runtime
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ name: logstash-codec-json
68
+ prerelease: false
69
+ type: :runtime
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ name: logstash-codec-json_lines
82
+ prerelease: false
83
+ type: :runtime
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ name: logstash-devutils
96
+ prerelease: false
97
+ type: :development
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.0.6
109
+ name: flores
110
+ prerelease: false
111
+ type: :development
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 0.0.6
117
+ - !ruby/object:Gem::Dependency
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: 0.0.22
123
+ name: stud
124
+ prerelease: false
125
+ type: :development
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 0.0.22
131
+ 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
132
+ email: info@elastic.co
133
+ executables: []
134
+ extensions: []
135
+ extra_rdoc_files: []
136
+ files:
137
+ - CHANGELOG.md
138
+ - CONTRIBUTORS
139
+ - Gemfile
140
+ - LICENSE
141
+ - NOTICE.TXT
142
+ - README.md
143
+ - docs/index.asciidoc
144
+ - lib/logstash-input-tcp_jars.rb
145
+ - lib/logstash/inputs/tcp.rb
146
+ - lib/logstash/inputs/tcp/decoder_impl.rb
147
+ - logstash-input-tcp.gemspec
148
+ - spec/inputs/tcp_spec.rb
149
+ - spec/spec_helper.rb
150
+ - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/4.2.2/logstash-input-tcp-4.2.2.jar
151
+ - version
152
+ homepage: http://www.elastic.co/guide/en/logstash/current/index.html
153
+ licenses:
154
+ - Apache License (2.0)
155
+ metadata:
156
+ logstash_plugin: 'true'
157
+ logstash_group: input
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ - vendor/jar-dependencies
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 2.4.8
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: Read events over a TCP socket.
179
+ test_files:
180
+ - spec/inputs/tcp_spec.rb
181
+ - spec/spec_helper.rb