logstash-input-tcp 4.2.2-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -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