logstash-input-elasticsearch 4.10.0 → 4.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/logstash/inputs/elasticsearch/patches/_elasticsearch_transport_http_manticore.rb +11 -1
- data/lib/logstash/inputs/elasticsearch.rb +13 -0
- data/logstash-input-elasticsearch.gemspec +3 -1
- data/spec/inputs/elasticsearch_spec.rb +153 -0
- metadata +43 -19
- data/spec/fixtures/test_certs/client/ls.crt +0 -20
- data/spec/fixtures/test_certs/client/ls.key +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e0b94cdf348e1d25d3007f0d98637e11fea82606ac8116962f999d8743cd0f3
|
4
|
+
data.tar.gz: 82f489d3d852073644e488e0ced799d676f33e2c496d2353cbad911e87311b21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9be021ff84622606a6e3959055e4180cad9976dece9a690d732c289186243de051c5493d2c513e665c4dbdc5cdfbd68a42dcea80b4bb2f182d44b9b807fd5a7d
|
7
|
+
data.tar.gz: 5344d73f5b88542f03d045f45a630eb36d031f09fa2a79cfd50db4b2703350f91191c500e4c86adc26cb04d5c4ec4594c13eb2e7581edbe41d8e94866e077026
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 4.11.0
|
2
|
+
- Feat: add user-agent header passed to the Elasticsearch HTTP connection [#158](https://github.com/logstash-plugins/logstash-input-elasticsearch/pull/158)
|
3
|
+
|
1
4
|
## 4.10.0
|
2
5
|
- Feat: added ecs_compatibility + event_factory support [#149](https://github.com/logstash-plugins/logstash-input-elasticsearch/pull/149)
|
3
6
|
|
@@ -20,7 +20,17 @@ if es_client_version >= Gem::Version.new('7.2') && es_client_version < Gem::Vers
|
|
20
20
|
def apply_headers(request_options, options)
|
21
21
|
headers = (options && options[:headers]) || {}
|
22
22
|
headers[CONTENT_TYPE_STR] = find_value(headers, CONTENT_TYPE_REGEX) || DEFAULT_CONTENT_TYPE
|
23
|
-
|
23
|
+
|
24
|
+
# this code is necessary to grab the correct user-agent header
|
25
|
+
# when this method is invoked with apply_headers(@request_options, options)
|
26
|
+
# from https://github.com/elastic/elasticsearch-ruby/blob/v7.14.0/elasticsearch-transport/lib/elasticsearch/transport/transport/http/manticore.rb#L113-L114
|
27
|
+
transport_user_agent = nil
|
28
|
+
if (options && options[:transport_options] && options[:transport_options][:headers])
|
29
|
+
transport_headers = options[:transport_options][:headers]
|
30
|
+
transport_user_agent = find_value(transport_headers, USER_AGENT_REGEX)
|
31
|
+
end
|
32
|
+
|
33
|
+
headers[USER_AGENT_STR] = transport_user_agent || find_value(headers, USER_AGENT_REGEX) || user_agent_header
|
24
34
|
headers[ACCEPT_ENCODING] = GZIP if use_compression?
|
25
35
|
(request_options[:headers] ||= {}).merge!(headers) # this line was changed
|
26
36
|
end
|
@@ -222,6 +222,7 @@ class LogStash::Inputs::Elasticsearch < LogStash::Inputs::Base
|
|
222
222
|
transport_options = {:headers => {}}
|
223
223
|
transport_options[:headers].merge!(setup_basic_auth(user, password))
|
224
224
|
transport_options[:headers].merge!(setup_api_key(api_key))
|
225
|
+
transport_options[:headers].merge!({'user-agent' => prepare_user_agent()})
|
225
226
|
transport_options[:request_timeout] = @request_timeout_seconds unless @request_timeout_seconds.nil?
|
226
227
|
transport_options[:connect_timeout] = @connect_timeout_seconds unless @connect_timeout_seconds.nil?
|
227
228
|
transport_options[:socket_timeout] = @socket_timeout_seconds unless @socket_timeout_seconds.nil?
|
@@ -407,6 +408,18 @@ class LogStash::Inputs::Elasticsearch < LogStash::Inputs::Base
|
|
407
408
|
{ 'Authorization' => "ApiKey #{token}" }
|
408
409
|
end
|
409
410
|
|
411
|
+
def prepare_user_agent
|
412
|
+
os_name = java.lang.System.getProperty('os.name')
|
413
|
+
os_version = java.lang.System.getProperty('os.version')
|
414
|
+
os_arch = java.lang.System.getProperty('os.arch')
|
415
|
+
jvm_vendor = java.lang.System.getProperty('java.vendor')
|
416
|
+
jvm_version = java.lang.System.getProperty('java.version')
|
417
|
+
|
418
|
+
plugin_version = Gem.loaded_specs["logstash-input-elasticsearch"].version
|
419
|
+
# example: logstash/7.14.1 (OS=Linux-5.4.0-84-generic-amd64; JVM=AdoptOpenJDK-11.0.11) logstash-input-elasticsearch/4.10.0
|
420
|
+
"logstash/#{LOGSTASH_VERSION} (OS=#{os_name}-#{os_version}-#{os_arch}; JVM=#{jvm_vendor}-#{jvm_version}) logstash-#{@plugin_type}-#{config_name}/#{plugin_version}"
|
421
|
+
end
|
422
|
+
|
410
423
|
def fill_user_password_from_cloud_auth
|
411
424
|
return unless @cloud_auth
|
412
425
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-input-elasticsearch'
|
4
|
-
s.version = '4.
|
4
|
+
s.version = '4.11.0'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Reads query results from an Elasticsearch cluster"
|
7
7
|
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"
|
@@ -36,4 +36,6 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_development_dependency 'faraday', "~> 0.15.4"
|
37
37
|
s.add_development_dependency 'logstash-devutils'
|
38
38
|
s.add_development_dependency 'timecop'
|
39
|
+
s.add_development_dependency 'cabin', ['~> 0.6']
|
40
|
+
s.add_development_dependency 'webrick'
|
39
41
|
end
|
@@ -7,6 +7,9 @@ require "timecop"
|
|
7
7
|
require "stud/temporary"
|
8
8
|
require "time"
|
9
9
|
require "date"
|
10
|
+
require "cabin"
|
11
|
+
require "webrick"
|
12
|
+
require "uri"
|
10
13
|
|
11
14
|
require 'logstash/plugin_mixins/ecs_compatibility_support/spec_helper'
|
12
15
|
|
@@ -690,6 +693,156 @@ describe LogStash::Inputs::Elasticsearch, :ecs_compatibility_support do
|
|
690
693
|
end
|
691
694
|
end
|
692
695
|
|
696
|
+
class StoppableServer
|
697
|
+
|
698
|
+
attr_reader :port
|
699
|
+
|
700
|
+
def initialize()
|
701
|
+
queue = Queue.new
|
702
|
+
@first_req_waiter = java.util.concurrent.CountDownLatch.new(1)
|
703
|
+
@first_request = nil
|
704
|
+
|
705
|
+
@t = java.lang.Thread.new(
|
706
|
+
proc do
|
707
|
+
begin
|
708
|
+
@server = WEBrick::HTTPServer.new :Port => 0, :DocumentRoot => ".",
|
709
|
+
:Logger => Cabin::Channel.get, # silence WEBrick logging
|
710
|
+
:StartCallback => Proc.new {
|
711
|
+
queue.push("started")
|
712
|
+
}
|
713
|
+
@port = @server.config[:Port]
|
714
|
+
@server.mount_proc '/' do |req, res|
|
715
|
+
res.body = '''
|
716
|
+
{
|
717
|
+
"name": "ce7ccfb438e8",
|
718
|
+
"cluster_name": "docker-cluster",
|
719
|
+
"cluster_uuid": "DyR1hN03QvuCWXRy3jtb0g",
|
720
|
+
"version": {
|
721
|
+
"number": "7.13.1",
|
722
|
+
"build_flavor": "default",
|
723
|
+
"build_type": "docker",
|
724
|
+
"build_hash": "9a7758028e4ea59bcab41c12004603c5a7dd84a9",
|
725
|
+
"build_date": "2021-05-28T17:40:59.346932922Z",
|
726
|
+
"build_snapshot": false,
|
727
|
+
"lucene_version": "8.8.2",
|
728
|
+
"minimum_wire_compatibility_version": "6.8.0",
|
729
|
+
"minimum_index_compatibility_version": "6.0.0-beta1"
|
730
|
+
},
|
731
|
+
"tagline": "You Know, for Search"
|
732
|
+
}
|
733
|
+
'''
|
734
|
+
res.status = 200
|
735
|
+
res['Content-Type'] = 'application/json'
|
736
|
+
@first_request = req
|
737
|
+
@first_req_waiter.countDown()
|
738
|
+
end
|
739
|
+
|
740
|
+
@server.mount_proc '/logstash_unit_test/_search' do |req, res|
|
741
|
+
res.body = '''
|
742
|
+
{
|
743
|
+
"took" : 1,
|
744
|
+
"timed_out" : false,
|
745
|
+
"_shards" : {
|
746
|
+
"total" : 1,
|
747
|
+
"successful" : 1,
|
748
|
+
"skipped" : 0,
|
749
|
+
"failed" : 0
|
750
|
+
},
|
751
|
+
"hits" : {
|
752
|
+
"total" : {
|
753
|
+
"value" : 10000,
|
754
|
+
"relation" : "gte"
|
755
|
+
},
|
756
|
+
"max_score" : 1.0,
|
757
|
+
"hits" : [
|
758
|
+
{
|
759
|
+
"_index" : "test_bulk_index_2",
|
760
|
+
"_type" : "_doc",
|
761
|
+
"_id" : "sHe6A3wBesqF7ydicQvG",
|
762
|
+
"_score" : 1.0,
|
763
|
+
"_source" : {
|
764
|
+
"@timestamp" : "2021-09-20T15:02:02.557Z",
|
765
|
+
"message" : "{\"name\": \"Andrea\"}",
|
766
|
+
"@version" : "1",
|
767
|
+
"host" : "kalispera",
|
768
|
+
"sequence" : 5
|
769
|
+
}
|
770
|
+
}
|
771
|
+
]
|
772
|
+
}
|
773
|
+
}
|
774
|
+
'''
|
775
|
+
res.status = 200
|
776
|
+
res['Content-Type'] = 'application/json'
|
777
|
+
@first_request = req
|
778
|
+
@first_req_waiter.countDown()
|
779
|
+
end
|
780
|
+
|
781
|
+
|
782
|
+
|
783
|
+
@server.start
|
784
|
+
rescue => e
|
785
|
+
puts "Error in webserver thread #{e}"
|
786
|
+
# ignore
|
787
|
+
end
|
788
|
+
end
|
789
|
+
)
|
790
|
+
@t.daemon = true
|
791
|
+
@t.start
|
792
|
+
queue.pop # blocks until the server is up
|
793
|
+
end
|
794
|
+
|
795
|
+
def stop
|
796
|
+
@server.shutdown
|
797
|
+
end
|
798
|
+
|
799
|
+
def wait_receive_request
|
800
|
+
@first_req_waiter.await(2, java.util.concurrent.TimeUnit::SECONDS)
|
801
|
+
@first_request
|
802
|
+
end
|
803
|
+
end
|
804
|
+
|
805
|
+
describe "'user-agent' header" do
|
806
|
+
let!(:webserver) { StoppableServer.new } # webserver must be started before the call, so no lazy "let"
|
807
|
+
|
808
|
+
after :each do
|
809
|
+
webserver.stop
|
810
|
+
end
|
811
|
+
|
812
|
+
it "server should be started" do
|
813
|
+
require 'net/http'
|
814
|
+
response = nil
|
815
|
+
Net::HTTP.start('localhost', webserver.port) {|http|
|
816
|
+
response = http.request_get('/')
|
817
|
+
}
|
818
|
+
expect(response.code.to_i).to eq(200)
|
819
|
+
end
|
820
|
+
|
821
|
+
context "used by plugin" do
|
822
|
+
let(:config) do
|
823
|
+
{
|
824
|
+
"hosts" => ["localhost:#{webserver.port}"],
|
825
|
+
"query" => '{ "query": { "match": { "statuscode": 200 } }, "sort": [ "_doc" ] }',
|
826
|
+
"index" => "logstash_unit_test"
|
827
|
+
}
|
828
|
+
end
|
829
|
+
let(:plugin) { described_class.new(config) }
|
830
|
+
let(:event) { LogStash::Event.new({}) }
|
831
|
+
|
832
|
+
it "client should sent the expect user-agent" do
|
833
|
+
plugin.register
|
834
|
+
|
835
|
+
queue = []
|
836
|
+
plugin.run(queue)
|
837
|
+
|
838
|
+
request = webserver.wait_receive_request
|
839
|
+
|
840
|
+
expect(request.header['user-agent'].size).to eq(1)
|
841
|
+
expect(request.header['user-agent'][0]).to match(/logstash\/\d*\.\d*\.\d* \(OS=.*; JVM=.*\) logstash-input-elasticsearch\/\d*\.\d*\.\d*/)
|
842
|
+
end
|
843
|
+
end
|
844
|
+
end
|
845
|
+
|
693
846
|
shared_examples'configurable timeout' do |config_name, manticore_transport_option|
|
694
847
|
let(:config_value) { fail NotImplementedError }
|
695
848
|
let(:config) { super().merge(config_name => config_value) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -20,8 +20,8 @@ dependencies:
|
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '2.99'
|
22
22
|
name: logstash-core-plugin-api
|
23
|
-
type: :runtime
|
24
23
|
prerelease: false
|
24
|
+
type: :runtime
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
@@ -37,8 +37,8 @@ dependencies:
|
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: '1.3'
|
39
39
|
name: logstash-mixin-ecs_compatibility_support
|
40
|
-
type: :runtime
|
41
40
|
prerelease: false
|
41
|
+
type: :runtime
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
@@ -51,8 +51,8 @@ dependencies:
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '1.0'
|
53
53
|
name: logstash-mixin-event_support
|
54
|
-
type: :runtime
|
55
54
|
prerelease: false
|
55
|
+
type: :runtime
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
@@ -65,8 +65,8 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '1.0'
|
67
67
|
name: logstash-mixin-validator_support
|
68
|
-
type: :runtime
|
69
68
|
prerelease: false
|
69
|
+
type: :runtime
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
@@ -79,8 +79,8 @@ dependencies:
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: 5.0.5
|
81
81
|
name: elasticsearch
|
82
|
-
type: :runtime
|
83
82
|
prerelease: false
|
83
|
+
type: :runtime
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
@@ -93,8 +93,8 @@ dependencies:
|
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '0'
|
95
95
|
name: tzinfo
|
96
|
-
type: :runtime
|
97
96
|
prerelease: false
|
97
|
+
type: :runtime
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - ">="
|
@@ -107,8 +107,8 @@ dependencies:
|
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
name: tzinfo-data
|
110
|
-
type: :runtime
|
111
110
|
prerelease: false
|
111
|
+
type: :runtime
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - ">="
|
@@ -121,8 +121,8 @@ dependencies:
|
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
name: rufus-scheduler
|
124
|
-
type: :runtime
|
125
124
|
prerelease: false
|
125
|
+
type: :runtime
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - ">="
|
@@ -135,8 +135,8 @@ dependencies:
|
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: 0.7.1
|
137
137
|
name: manticore
|
138
|
-
type: :runtime
|
139
138
|
prerelease: false
|
139
|
+
type: :runtime
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - ">="
|
@@ -149,8 +149,8 @@ dependencies:
|
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
name: logstash-codec-plain
|
152
|
-
type: :development
|
153
152
|
prerelease: false
|
153
|
+
type: :development
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - ">="
|
@@ -163,8 +163,8 @@ dependencies:
|
|
163
163
|
- !ruby/object:Gem::Version
|
164
164
|
version: 0.15.4
|
165
165
|
name: faraday
|
166
|
-
type: :development
|
167
166
|
prerelease: false
|
167
|
+
type: :development
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
170
|
- - "~>"
|
@@ -177,8 +177,8 @@ dependencies:
|
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '0'
|
179
179
|
name: logstash-devutils
|
180
|
-
type: :development
|
181
180
|
prerelease: false
|
181
|
+
type: :development
|
182
182
|
version_requirements: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
184
|
- - ">="
|
@@ -191,8 +191,36 @@ dependencies:
|
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: '0'
|
193
193
|
name: timecop
|
194
|
+
prerelease: false
|
195
|
+
type: :development
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0.6'
|
207
|
+
name: cabin
|
208
|
+
prerelease: false
|
194
209
|
type: :development
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - "~>"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '0.6'
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
requirement: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - ">="
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '0'
|
221
|
+
name: webrick
|
195
222
|
prerelease: false
|
223
|
+
type: :development
|
196
224
|
version_requirements: !ruby/object:Gem::Requirement
|
197
225
|
requirements:
|
198
226
|
- - ">="
|
@@ -220,8 +248,6 @@ files:
|
|
220
248
|
- spec/es_helper.rb
|
221
249
|
- spec/fixtures/test_certs/ca.crt
|
222
250
|
- spec/fixtures/test_certs/ca.key
|
223
|
-
- spec/fixtures/test_certs/client/ls.crt
|
224
|
-
- spec/fixtures/test_certs/client/ls.key
|
225
251
|
- spec/fixtures/test_certs/es.crt
|
226
252
|
- spec/fixtures/test_certs/es.key
|
227
253
|
- spec/inputs/elasticsearch_spec.rb
|
@@ -247,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
273
|
- !ruby/object:Gem::Version
|
248
274
|
version: '0'
|
249
275
|
requirements: []
|
250
|
-
rubygems_version: 3.
|
276
|
+
rubygems_version: 3.1.6
|
251
277
|
signing_key:
|
252
278
|
specification_version: 4
|
253
279
|
summary: Reads query results from an Elasticsearch cluster
|
@@ -255,8 +281,6 @@ test_files:
|
|
255
281
|
- spec/es_helper.rb
|
256
282
|
- spec/fixtures/test_certs/ca.crt
|
257
283
|
- spec/fixtures/test_certs/ca.key
|
258
|
-
- spec/fixtures/test_certs/client/ls.crt
|
259
|
-
- spec/fixtures/test_certs/client/ls.key
|
260
284
|
- spec/fixtures/test_certs/es.crt
|
261
285
|
- spec/fixtures/test_certs/es.key
|
262
286
|
- spec/inputs/elasticsearch_spec.rb
|
@@ -1,20 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDMTCCAhmgAwIBAgIUCJ5+zdYJIlL04EOwC0tqVbZYKQUwDQYJKoZIhvcNAQEL
|
3
|
-
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
|
4
|
-
cmF0ZWQgQ0EwHhcNMjEwODEyMDUxNTI3WhcNMjQwODExMDUxNTI3WjANMQswCQYD
|
5
|
-
VQQDEwJsczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFY71j9Proa
|
6
|
-
x95bWoBQOcc0ncqVvQO+Tk/Do4ynoe64pOJEf3txh1viHbnzFUGf+NF5WW6trlZ2
|
7
|
-
ErP81vy7Ds5J5ngXjjdzOOGsTs9+l7KkqPfUwXqGoldWFtr//9mkLvWpd8uPvVtO
|
8
|
-
dRnpcjQSlHHEB/HaqxkyBAvHLv1Fi1jTgIgn32NEM2mlCJ3M8OVfO9pqlO/6gjjs
|
9
|
-
Miow8zZqtczeuv0JPu7V5xPDrcX0xh0kZdpH4gSh9r314TwZXFCofNUbkZrPV+Q9
|
10
|
-
XJs64NlBjJZkd5qwKeXujZRV4eVvAOTlp+4Nh4eDqXE323s5yiPuov0StvNrbh3d
|
11
|
-
rcg+IM+RTdMCAwEAAaNiMGAwHQYDVR0OBBYEFGnXHJEJ+LGmQTqDNr50C8FE8pcF
|
12
|
-
MB8GA1UdIwQYMBaAFMgkye5+2l+TE0I6RsXRHjGBwpBGMBMGA1UdEQQMMAqCCGxv
|
13
|
-
Z3N0YXNoMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAI08C6IeweN3LrEq
|
14
|
-
ZauDVoiE2IdA1/nN3sxl+wL2xfauv1nctxej9TYR3mNoWiacgbbfJkPMCSIYk2Vc
|
15
|
-
G396yLiGC1V96FfonnKfr3tKd0BiijTu3u5pOTgNNf5n4TZaTHTYmuKPtWoXyuLR
|
16
|
-
QbH3jdgq9aq/9bwK0E5FOmuv6LGatnKzLf56aHjzerSZCnRw7V/1J/Yj3cy6TB1l
|
17
|
-
9Lc7IAk4dGyrgwfKCuZOSzAtCWpOA/FfqCqMSuW6lrZ1zAXnk6VI3RkmBCuLE6kj
|
18
|
-
aAjwORJHyiwBsMQbaYcQaXXjhguS+iHrnWdR0DFs9gHJSTuf6EoOeygdtMDutb2O
|
19
|
-
4xfHWG8=
|
20
|
-
-----END CERTIFICATE-----
|
@@ -1,27 +0,0 @@
|
|
1
|
-
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
MIIEpAIBAAKCAQEAwVjvWP0+uhrH3ltagFA5xzSdypW9A75OT8OjjKeh7rik4kR/
|
3
|
-
e3GHW+IdufMVQZ/40XlZbq2uVnYSs/zW/LsOzknmeBeON3M44axOz36XsqSo99TB
|
4
|
-
eoaiV1YW2v//2aQu9al3y4+9W051GelyNBKUccQH8dqrGTIEC8cu/UWLWNOAiCff
|
5
|
-
Y0QzaaUInczw5V872mqU7/qCOOwyKjDzNmq1zN66/Qk+7tXnE8OtxfTGHSRl2kfi
|
6
|
-
BKH2vfXhPBlcUKh81RuRms9X5D1cmzrg2UGMlmR3mrAp5e6NlFXh5W8A5OWn7g2H
|
7
|
-
h4OpcTfbeznKI+6i/RK282tuHd2tyD4gz5FN0wIDAQABAoIBAGLHVvC14PgfeoEl
|
8
|
-
VuU7F2moffzj5z8kWMnzf3j6o4ZcmxBmQmMEq0zMBrfbcr6mRe5u+rvKy8isZf3C
|
9
|
-
bOuNfZDyvGYaUrQNj7/r0g+78zB3Y0PKVFaOth28g8y7ATFl6f/j5qn+85TUTotA
|
10
|
-
cvIbk+9TYWO0fblPjjWeO2l1wC1ObV0pFrXVzthFTQk0oxl3Gyq54P5rPp7QPOdM
|
11
|
-
jB0lSAhvkEEA7nIZ0dF1zm3RuByahSQC45kYEp5TCC8SDwO3WCJ32Q/dhPw0y9Go
|
12
|
-
gbIEY9QBFc8Rn3HDYGTSRPVVDM3HctDqzCihWOgFQlv718yCAZYq43fdOcy+6BY/
|
13
|
-
UT3xRhECgYEA5wWcYD8bY5x0fk2ubxKJTE4Fm2HvUrexvLX00yF3sX9XqrsiBBC4
|
14
|
-
14mB2yFEKQL+M/ZqLNV9IfJhfRmBffoRvf9lAuHhUrw4wGijERoO9xkmS3lGvzw+
|
15
|
-
hqLIMnd986wyWC8FdU+dStDg8PC97xK4bg0tKYo9jmKf3kb0Ov2UWQ0CgYEA1kCK
|
16
|
-
w30P3ZgYakXUjbwv3KoRXIVm6cIqgvm8iPh7B0GeTUCIgGBSNzJ8LVts/m6V7xtU
|
17
|
-
RJ8RKw2gqqUTiFqrRKefr0APFv0YeVgZ7zK2EGLrL2rFWNZZQqA97Mh/5CwFh+zs
|
18
|
-
1/IYuqRUVDaLq0sAPcZA5KEoO91eChBVK/RAyl8CgYAqgVPGOZY2e6DLZEuF0ClG
|
19
|
-
yswpTJmV5IplKC1Fc1DsbXuZxBh8Gv+HWJt1z+cUjKJsuRfL6/O7/TaGp9y1av88
|
20
|
-
r/LL1vd4G31tmVL3YI4EVLJBDK1Bnjn615RyBJ496R7SLsSYUu+jxk68xe6MQCuC
|
21
|
-
xBXdILw2qFq1sORavjE/OQKBgQCJlwNGDX9t2Cn9vYCF0Q+Pjyv9FbKEdevlFsor
|
22
|
-
0B76BvrJM6M1hiXmSqaSXj89mfjxh8RzGQ/mbSb7z20eyNNqEJes7N+D7N+Vta1Z
|
23
|
-
/mALX+sXFWNM7MJ/1fZOpGf1OQwIQW/MMi4NVlDNkAXb6BtskG/GI3R6FWw53ElG
|
24
|
-
I+Kj0wKBgQDUCfiYYSA9wYug53uvE0LirZwMQjWTbqxMO/S3H0Be8rf+BLo+YY5X
|
25
|
-
fF6L/NaKxNZzs2Uu6+xYLXhSMimiv8412t7qnjK5DLwTZfnj7EuNxd44cZ4cXDPx
|
26
|
-
JtD9GgPJ5V3js1gA2usPnKLYPw5Pp3ayZn1q4Tg9A5cextKnyOV/Fg==
|
27
|
-
-----END RSA PRIVATE KEY-----
|