logstash-integration-kafka 11.5.4-java → 11.6.0-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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/docs/input-kafka.asciidoc +59 -3
- data/docs/output-kafka.asciidoc +59 -3
- data/lib/logstash/inputs/kafka.rb +14 -0
- data/lib/logstash/outputs/kafka.rb +14 -0
- data/lib/logstash/plugin_mixins/kafka/common.rb +7 -0
- data/logstash-integration-kafka.gemspec +1 -1
- data/spec/unit/inputs/kafka_spec.rb +48 -0
- data/spec/unit/outputs/kafka_spec.rb +50 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9d342010bbdc6c64b7380374583eb1d33648c5cd9e8b948e6d40c9c62c120963
|
|
4
|
+
data.tar.gz: 3bcf9b167d4cb7cc6d2857d6f81dce26bf09120fed71a2a75d7a54137f6d4a0a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1d0097a7d05bbc52065e1f32f6fc8f600052f6eeb75a782bfd270763d73df8150fa74fdadb705bc1eb6e448ed725420642cb6aaeb016bfae058718ec3b8fe0ea
|
|
7
|
+
data.tar.gz: 99487e99f6fbfdb52f2b103a2f9fa9504a67253f9591ef3650ccbbcc7eac5cd5ca5170c841e692b17ac9b02d17c356519d6e4a3b7caf3e1a24825e65e3b9aee5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
## 11.6.0
|
|
2
|
+
- Support additional `oauth` and `sasl` configuration options for configuring kafka client [#189](https://github.com/logstash-plugins/logstash-integration-kafka/pull/189)
|
|
3
|
+
|
|
1
4
|
## 11.5.4
|
|
2
5
|
- Update kafka client to 3.8.1 and transitive dependencies [#188](https://github.com/logstash-plugins/logstash-integration-kafka/pull/188)
|
|
3
6
|
- Removed Jar Dependencies dependency [#187](https://github.com/logstash-plugins/logstash-integration-kafka/pull/187)
|
data/docs/input-kafka.asciidoc
CHANGED
|
@@ -131,6 +131,13 @@ See the https://kafka.apache.org/{kafka_client_doc}/documentation for more detai
|
|
|
131
131
|
| <<plugins-{type}s-{plugin}-request_timeout_ms>> |<<number,number>>|No
|
|
132
132
|
| <<plugins-{type}s-{plugin}-retry_backoff_ms>> |<<number,number>>|No
|
|
133
133
|
| <<plugins-{type}s-{plugin}-sasl_client_callback_handler_class>> |<<string,string>>|No
|
|
134
|
+
| <<plugins-{type}s-{plugin}-sasl_oauthbearer_token_endpoint_url>> |<<string,string>>|No
|
|
135
|
+
| <<plugins-{type}s-{plugin}-sasl_oauthbearer_scope_claim_name>> |<<string,string>>|No
|
|
136
|
+
| <<plugins-{type}s-{plugin}-sasl_login_callback_handler_class>> |<<string,string>>|No
|
|
137
|
+
| <<plugins-{type}s-{plugin}-sasl_login_connect_timeout_ms>> |<<number,number>>|No
|
|
138
|
+
| <<plugins-{type}s-{plugin}-sasl_login_read_timeout_ms>> |<<number,number>>|No
|
|
139
|
+
| <<plugins-{type}s-{plugin}-sasl_login_retry_backoff_ms>> |<<number,number>>|No
|
|
140
|
+
| <<plugins-{type}s-{plugin}-sasl_login_retry_backoff_max_ms>> |<<number,number>>|No
|
|
134
141
|
| <<plugins-{type}s-{plugin}-sasl_jaas_config>> |<<string,string>>|No
|
|
135
142
|
| <<plugins-{type}s-{plugin}-sasl_kerberos_service_name>> |<<string,string>>|No
|
|
136
143
|
| <<plugins-{type}s-{plugin}-sasl_mechanism>> |<<string,string>>|No
|
|
@@ -556,13 +563,62 @@ retries are exhausted.
|
|
|
556
563
|
The amount of time to wait before attempting to retry a failed fetch request
|
|
557
564
|
to a given topic partition. This avoids repeated fetching-and-failing in a tight loop.
|
|
558
565
|
|
|
559
|
-
[id="plugins-{type}s-{plugin}-sasl_client_callback_handler_class"
|
|
566
|
+
[id="plugins-{type}s-{plugin}-sasl_client_callback_handler_class"]
|
|
560
567
|
===== `sasl_client_callback_handler_class`
|
|
561
|
-
* Value type is <<string,string>>
|
|
562
|
-
* There is no default value for this setting.
|
|
568
|
+
* Value type is <<string,string>>
|
|
569
|
+
* There is no default value for this setting.
|
|
563
570
|
|
|
564
571
|
The SASL client callback handler class the specified SASL mechanism should use.
|
|
565
572
|
|
|
573
|
+
[id="plugins-{type}s-{plugin}-sasl_oauthbearer_token_endpoint_url"]
|
|
574
|
+
===== `sasl_oauthbearer_token_endpoint_url`
|
|
575
|
+
* Value type is <<string,string>>
|
|
576
|
+
* There is no default value for this setting.
|
|
577
|
+
|
|
578
|
+
The URL for the OAuth 2.0 issuer token endpoint.
|
|
579
|
+
|
|
580
|
+
[id="plugins-{type}s-{plugin}-sasl_oauthbearer_scope_claim_name"]
|
|
581
|
+
===== `sasl_oauthbearer_scope_claim_name`
|
|
582
|
+
* Value type is <<string,string>>
|
|
583
|
+
* Default value is `"scope"`
|
|
584
|
+
|
|
585
|
+
(optional) The override name of the scope claim.
|
|
586
|
+
|
|
587
|
+
[id="plugins-{type}s-{plugin}-sasl_login_callback_handler_class"]
|
|
588
|
+
===== `sasl_login_callback_handler_class`
|
|
589
|
+
* Value type is <<string,string>>
|
|
590
|
+
* There is no default value for this setting.
|
|
591
|
+
|
|
592
|
+
The SASL login callback handler class the specified SASL mechanism should use.
|
|
593
|
+
|
|
594
|
+
[id="plugins-{type}s-{plugin}-sasl_login_connect_timeout_ms"]
|
|
595
|
+
===== `sasl_login_connect_timeout_ms`
|
|
596
|
+
* Value type is <<number,number>>
|
|
597
|
+
* There is no default value for this setting.
|
|
598
|
+
|
|
599
|
+
(optional) The duration, in milliseconds, for HTTPS connect timeout
|
|
600
|
+
|
|
601
|
+
[id="plugins-{type}s-{plugin}-sasl_login_read_timeout_ms"]
|
|
602
|
+
===== `sasl_login_read_timeout_ms`
|
|
603
|
+
* Value type is <<number,number>>
|
|
604
|
+
* There is no default value for this setting.
|
|
605
|
+
|
|
606
|
+
(optional) The duration, in milliseconds, for HTTPS read timeout.
|
|
607
|
+
|
|
608
|
+
[id="plugins-{type}s-{plugin}-sasl_login_retry_backoff_ms"]
|
|
609
|
+
===== `sasl_login_retry_backoff_ms`
|
|
610
|
+
* Value type is <<number,number>>
|
|
611
|
+
* Default value is `100` milliseconds.
|
|
612
|
+
|
|
613
|
+
(optional) The duration, in milliseconds, to wait between HTTPS call attempts.
|
|
614
|
+
|
|
615
|
+
[id="plugins-{type}s-{plugin}-sasl_login_retry_backoff_max_ms"]
|
|
616
|
+
===== `sasl_login_retry_backoff_max_ms`
|
|
617
|
+
* Value type is <<number,number>>
|
|
618
|
+
* Default value is `10000` milliseconds.
|
|
619
|
+
|
|
620
|
+
(optional) The maximum duration, in milliseconds, for HTTPS call attempts.
|
|
621
|
+
|
|
566
622
|
[id="plugins-{type}s-{plugin}-sasl_jaas_config"]
|
|
567
623
|
===== `sasl_jaas_config`
|
|
568
624
|
|
data/docs/output-kafka.asciidoc
CHANGED
|
@@ -102,6 +102,13 @@ See the https://kafka.apache.org/{kafka_client_doc}/documentation for more detai
|
|
|
102
102
|
| <<plugins-{type}s-{plugin}-retries>> |<<number,number>>|No
|
|
103
103
|
| <<plugins-{type}s-{plugin}-retry_backoff_ms>> |<<number,number>>|No
|
|
104
104
|
| <<plugins-{type}s-{plugin}-sasl_client_callback_handler_class>> |<<string,string>>|No
|
|
105
|
+
| <<plugins-{type}s-{plugin}-sasl_oauthbearer_token_endpoint_url>> |<<string,string>>|No
|
|
106
|
+
| <<plugins-{type}s-{plugin}-sasl_oauthbearer_scope_claim_name>> |<<string,string>>|No
|
|
107
|
+
| <<plugins-{type}s-{plugin}-sasl_login_callback_handler_class>> |<<string,string>>|No
|
|
108
|
+
| <<plugins-{type}s-{plugin}-sasl_login_connect_timeout_ms>> |<<number,number>>|No
|
|
109
|
+
| <<plugins-{type}s-{plugin}-sasl_login_read_timeout_ms>> |<<number,number>>|No
|
|
110
|
+
| <<plugins-{type}s-{plugin}-sasl_login_retry_backoff_ms>> |<<number,number>>|No
|
|
111
|
+
| <<plugins-{type}s-{plugin}-sasl_login_retry_backoff_max_ms>> |<<number,number>>|No
|
|
105
112
|
| <<plugins-{type}s-{plugin}-sasl_jaas_config>> |<<string,string>>|No
|
|
106
113
|
| <<plugins-{type}s-{plugin}-sasl_kerberos_service_name>> |<<string,string>>|No
|
|
107
114
|
| <<plugins-{type}s-{plugin}-sasl_mechanism>> |<<string,string>>|No
|
|
@@ -392,13 +399,62 @@ In versions prior to 10.5.0, any exception is retried indefinitely unless the `r
|
|
|
392
399
|
|
|
393
400
|
The amount of time to wait before attempting to retry a failed produce request to a given topic partition.
|
|
394
401
|
|
|
395
|
-
[id="plugins-{type}s-{plugin}-sasl_client_callback_handler_class"
|
|
402
|
+
[id="plugins-{type}s-{plugin}-sasl_client_callback_handler_class"]
|
|
396
403
|
===== `sasl_client_callback_handler_class`
|
|
397
|
-
* Value type is <<string,string>>
|
|
398
|
-
* There is no default value for this setting.
|
|
404
|
+
* Value type is <<string,string>>
|
|
405
|
+
* There is no default value for this setting.
|
|
399
406
|
|
|
400
407
|
The SASL client callback handler class the specified SASL mechanism should use.
|
|
401
408
|
|
|
409
|
+
[id="plugins-{type}s-{plugin}-sasl_oauthbearer_token_endpoint_url"]
|
|
410
|
+
===== `sasl_oauthbearer_token_endpoint_url`
|
|
411
|
+
* Value type is <<string,string>>
|
|
412
|
+
* There is no default value for this setting.
|
|
413
|
+
|
|
414
|
+
The URL for the OAuth 2.0 issuer token endpoint.
|
|
415
|
+
|
|
416
|
+
[id="plugins-{type}s-{plugin}-sasl_oauthbearer_scope_claim_name"]
|
|
417
|
+
===== `sasl_oauthbearer_scope_claim_name`
|
|
418
|
+
* Value type is <<string,string>>
|
|
419
|
+
* Default value is `"scope"`
|
|
420
|
+
|
|
421
|
+
(optional) The override name of the scope claim.
|
|
422
|
+
|
|
423
|
+
[id="plugins-{type}s-{plugin}-sasl_login_callback_handler_class"]
|
|
424
|
+
===== `sasl_login_callback_handler_class`
|
|
425
|
+
* Value type is <<string,string>>
|
|
426
|
+
* There is no default value for this setting.
|
|
427
|
+
|
|
428
|
+
The SASL login callback handler class the specified SASL mechanism should use.
|
|
429
|
+
|
|
430
|
+
[id="plugins-{type}s-{plugin}-sasl_login_connect_timeout_ms"]
|
|
431
|
+
===== `sasl_login_connect_timeout_ms`
|
|
432
|
+
* Value type is <<number,number>>
|
|
433
|
+
* There is no default value for this setting.
|
|
434
|
+
|
|
435
|
+
(optional) The duration, in milliseconds, for HTTPS connect timeout
|
|
436
|
+
|
|
437
|
+
[id="plugins-{type}s-{plugin}-sasl_login_read_timeout_ms"]
|
|
438
|
+
===== `sasl_login_read_timeout_ms`
|
|
439
|
+
* Value type is <<number,number>>
|
|
440
|
+
* There is no default value for this setting.
|
|
441
|
+
|
|
442
|
+
(optional) The duration, in milliseconds, for HTTPS read timeout.
|
|
443
|
+
|
|
444
|
+
[id="plugins-{type}s-{plugin}-sasl_login_retry_backoff_ms"]
|
|
445
|
+
===== `sasl_login_retry_backoff_ms`
|
|
446
|
+
* Value type is <<number,number>>
|
|
447
|
+
* Default value is `100` milliseconds.
|
|
448
|
+
|
|
449
|
+
(optional) The duration, in milliseconds, to wait between HTTPS call attempts.
|
|
450
|
+
|
|
451
|
+
[id="plugins-{type}s-{plugin}-sasl_login_retry_backoff_max_ms"]
|
|
452
|
+
===== `sasl_login_retry_backoff_max_ms`
|
|
453
|
+
* Value type is <<number,number>>
|
|
454
|
+
* Default value is `10000` milliseconds.
|
|
455
|
+
|
|
456
|
+
(optional) The maximum duration, in milliseconds, for HTTPS call attempts.
|
|
457
|
+
|
|
402
458
|
[id="plugins-{type}s-{plugin}-sasl_jaas_config"]
|
|
403
459
|
===== `sasl_jaas_config`
|
|
404
460
|
|
|
@@ -210,6 +210,20 @@ class LogStash::Inputs::Kafka < LogStash::Inputs::Base
|
|
|
210
210
|
config :security_protocol, :validate => ["PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL"], :default => "PLAINTEXT"
|
|
211
211
|
# SASL client callback handler class
|
|
212
212
|
config :sasl_client_callback_handler_class, :validate => :string
|
|
213
|
+
# The URL for the OAuth 2.0 issuer token endpoint.
|
|
214
|
+
config :sasl_oauthbearer_token_endpoint_url, :validate => :string
|
|
215
|
+
# (optional) The override name of the scope claim.
|
|
216
|
+
config :sasl_oauthbearer_scope_claim_name, :validate => :string, :default => 'scope' # Kafka default
|
|
217
|
+
# SASL login callback handler class
|
|
218
|
+
config :sasl_login_callback_handler_class, :validate => :string
|
|
219
|
+
# (optional) The duration, in milliseconds, for HTTPS connect timeout
|
|
220
|
+
config :sasl_login_connect_timeout_ms, :validate => :number
|
|
221
|
+
# (optional) The duration, in milliseconds, for HTTPS read timeout.
|
|
222
|
+
config :sasl_login_read_timeout_ms, :validate => :number
|
|
223
|
+
# (optional) The duration, in milliseconds, to wait between HTTPS call attempts.
|
|
224
|
+
config :sasl_login_retry_backoff_ms, :validate => :number, :default => 100 # Kafka default
|
|
225
|
+
# (optional) The maximum duration, in milliseconds, for HTTPS call attempts.
|
|
226
|
+
config :sasl_login_retry_backoff_max_ms, :validate => :number, :default => 10000 # Kafka default
|
|
213
227
|
# http://kafka.apache.org/documentation.html#security_sasl[SASL mechanism] used for client connections.
|
|
214
228
|
# This may be any mechanism for which a security provider is available.
|
|
215
229
|
# GSSAPI is the default mechanism.
|
|
@@ -149,6 +149,20 @@ class LogStash::Outputs::Kafka < LogStash::Outputs::Base
|
|
|
149
149
|
config :security_protocol, :validate => ["PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL"], :default => "PLAINTEXT"
|
|
150
150
|
# SASL client callback handler class
|
|
151
151
|
config :sasl_client_callback_handler_class, :validate => :string
|
|
152
|
+
# The URL for the OAuth 2.0 issuer token endpoint.
|
|
153
|
+
config :sasl_oauthbearer_token_endpoint_url, :validate => :string
|
|
154
|
+
# (optional) The override name of the scope claim.
|
|
155
|
+
config :sasl_oauthbearer_scope_claim_name, :validate => :string, :default => 'scope' # Kafka default
|
|
156
|
+
# SASL login callback handler class
|
|
157
|
+
config :sasl_login_callback_handler_class, :validate => :string
|
|
158
|
+
# (optional) The duration, in milliseconds, for HTTPS connect timeout
|
|
159
|
+
config :sasl_login_connect_timeout_ms, :validate => :number
|
|
160
|
+
# (optional) The duration, in milliseconds, for HTTPS read timeout.
|
|
161
|
+
config :sasl_login_read_timeout_ms, :validate => :number
|
|
162
|
+
# (optional) The duration, in milliseconds, to wait between HTTPS call attempts.
|
|
163
|
+
config :sasl_login_retry_backoff_ms, :validate => :number, :default => 100 # Kafka default
|
|
164
|
+
# (optional) The maximum duration, in milliseconds, for HTTPS call attempts.
|
|
165
|
+
config :sasl_login_retry_backoff_max_ms, :validate => :number, :default => 10000 # Kafka default
|
|
152
166
|
# http://kafka.apache.org/documentation.html#security_sasl[SASL mechanism] used for client connections.
|
|
153
167
|
# This may be any mechanism for which a security provider is available.
|
|
154
168
|
# GSSAPI is the default mechanism.
|
|
@@ -42,6 +42,13 @@ module LogStash module PluginMixins module Kafka
|
|
|
42
42
|
props.put("sasl.kerberos.service.name", sasl_kerberos_service_name) unless sasl_kerberos_service_name.nil?
|
|
43
43
|
props.put("sasl.jaas.config", sasl_jaas_config) unless sasl_jaas_config.nil?
|
|
44
44
|
props.put("sasl.client.callback.handler.class", sasl_client_callback_handler_class) unless sasl_client_callback_handler_class.nil?
|
|
45
|
+
props.put("sasl.oauthbearer.token.endpoint.url", sasl_oauthbearer_token_endpoint_url) unless sasl_oauthbearer_token_endpoint_url.nil?
|
|
46
|
+
props.put("sasl.oauthbearer.scope.claim.name", sasl_oauthbearer_scope_claim_name) unless sasl_oauthbearer_scope_claim_name.nil?
|
|
47
|
+
props.put("sasl.login.callback.handler.class", sasl_login_callback_handler_class) unless sasl_login_callback_handler_class.nil?
|
|
48
|
+
props.put("sasl.login.connect.timeout.ms", sasl_login_connect_timeout_ms.to_s) unless sasl_login_connect_timeout_ms.nil?
|
|
49
|
+
props.put("sasl.login.read.timeout.ms", sasl_login_read_timeout_ms.to_s) unless sasl_login_read_timeout_ms.nil?
|
|
50
|
+
props.put("sasl.login.retry.backoff.ms", sasl_login_retry_backoff_ms.to_s) unless sasl_login_retry_backoff_ms.nil?
|
|
51
|
+
props.put("sasl.login.retry.backoff.max.ms", sasl_login_retry_backoff_max_ms.to_s) unless sasl_login_retry_backoff_max_ms.nil?
|
|
45
52
|
end
|
|
46
53
|
|
|
47
54
|
def reassign_dns_lookup
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'logstash-integration-kafka'
|
|
3
|
-
s.version = '11.
|
|
3
|
+
s.version = '11.6.0'
|
|
4
4
|
s.licenses = ['Apache-2.0']
|
|
5
5
|
s.summary = "Integration with Kafka - input and output plugins"
|
|
6
6
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline "+
|
|
@@ -218,6 +218,54 @@ describe LogStash::Inputs::Kafka do
|
|
|
218
218
|
|
|
219
219
|
end
|
|
220
220
|
|
|
221
|
+
context 'when oauth is configured' do
|
|
222
|
+
let(:config) { super().merge(
|
|
223
|
+
'security_protocol' => 'SASL_PLAINTEXT',
|
|
224
|
+
'sasl_mechanism' => 'OAUTHBEARER',
|
|
225
|
+
'sasl_oauthbearer_token_endpoint_url' => 'https://auth.example.com/token',
|
|
226
|
+
'sasl_oauthbearer_scope_claim_name' => 'custom_scope'
|
|
227
|
+
)}
|
|
228
|
+
|
|
229
|
+
it "sets oauth properties" do
|
|
230
|
+
expect(org.apache.kafka.clients.consumer.KafkaConsumer).
|
|
231
|
+
to receive(:new).with(hash_including(
|
|
232
|
+
'security.protocol' => 'SASL_PLAINTEXT',
|
|
233
|
+
'sasl.mechanism' => 'OAUTHBEARER',
|
|
234
|
+
'sasl.oauthbearer.token.endpoint.url' => 'https://auth.example.com/token',
|
|
235
|
+
'sasl.oauthbearer.scope.claim.name' => 'custom_scope'
|
|
236
|
+
)).and_return(kafka_client = double('kafka-consumer'))
|
|
237
|
+
|
|
238
|
+
expect(subject.send(:create_consumer, 'test-client-1', 'group_instance_id')).to be kafka_client
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
context 'when sasl is configured' do
|
|
243
|
+
let(:config) { super().merge(
|
|
244
|
+
'security_protocol' => 'SASL_PLAINTEXT',
|
|
245
|
+
'sasl_mechanism' => 'OAUTHBEARER',
|
|
246
|
+
'sasl_login_connect_timeout_ms' => 15000,
|
|
247
|
+
'sasl_login_read_timeout_ms' => 5000,
|
|
248
|
+
'sasl_login_retry_backoff_ms' => 200,
|
|
249
|
+
'sasl_login_retry_backoff_max_ms' => 15000,
|
|
250
|
+
'sasl_login_callback_handler_class' => 'org.example.CustomLoginHandler'
|
|
251
|
+
)}
|
|
252
|
+
|
|
253
|
+
it "sets sasl login properties" do
|
|
254
|
+
expect(org.apache.kafka.clients.consumer.KafkaConsumer).
|
|
255
|
+
to receive(:new).with(hash_including(
|
|
256
|
+
'security.protocol' => 'SASL_PLAINTEXT',
|
|
257
|
+
'sasl.mechanism' => 'OAUTHBEARER',
|
|
258
|
+
'sasl.login.connect.timeout.ms' => '15000',
|
|
259
|
+
'sasl.login.read.timeout.ms' => '5000',
|
|
260
|
+
'sasl.login.retry.backoff.ms' => '200',
|
|
261
|
+
'sasl.login.retry.backoff.max.ms' => '15000',
|
|
262
|
+
'sasl.login.callback.handler.class' => 'org.example.CustomLoginHandler'
|
|
263
|
+
)).and_return(kafka_client = double('kafka-consumer'))
|
|
264
|
+
|
|
265
|
+
expect(subject.send(:create_consumer, 'test-client-2', 'group_instance_id')).to be kafka_client
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
|
|
221
269
|
describe "schema registry" do
|
|
222
270
|
let(:base_config) do {
|
|
223
271
|
'schema_registry_url' => 'http://localhost:8081',
|
|
@@ -9,6 +9,7 @@ describe "outputs/kafka" do
|
|
|
9
9
|
'@timestamp' => LogStash::Timestamp.now}) }
|
|
10
10
|
|
|
11
11
|
let(:future) { double('kafka producer future') }
|
|
12
|
+
subject { LogStash::Outputs::Kafka.new(config) }
|
|
12
13
|
|
|
13
14
|
context 'when initializing' do
|
|
14
15
|
it "should register" do
|
|
@@ -267,8 +268,6 @@ describe "outputs/kafka" do
|
|
|
267
268
|
File.join(File.dirname(__FILE__), '../../fixtures/trust-store_stub.jks')
|
|
268
269
|
end
|
|
269
270
|
|
|
270
|
-
subject { LogStash::Outputs::Kafka.new(config) }
|
|
271
|
-
|
|
272
271
|
it 'sets empty ssl.endpoint.identification.algorithm' do
|
|
273
272
|
expect(org.apache.kafka.clients.producer.KafkaProducer).
|
|
274
273
|
to receive(:new).with(hash_including('ssl.endpoint.identification.algorithm' => ''))
|
|
@@ -283,4 +282,53 @@ describe "outputs/kafka" do
|
|
|
283
282
|
|
|
284
283
|
end
|
|
285
284
|
|
|
285
|
+
context 'when oauth is configured' do
|
|
286
|
+
let(:config) {
|
|
287
|
+
simple_kafka_config.merge(
|
|
288
|
+
'security_protocol' => 'SASL_PLAINTEXT',
|
|
289
|
+
'sasl_mechanism' => 'OAUTHBEARER',
|
|
290
|
+
'sasl_oauthbearer_token_endpoint_url' => 'https://auth.example.com/token',
|
|
291
|
+
'sasl_oauthbearer_scope_claim_name' => 'custom_scope'
|
|
292
|
+
)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
it "sets oauth properties" do
|
|
296
|
+
expect(org.apache.kafka.clients.producer.KafkaProducer).
|
|
297
|
+
to receive(:new).with(hash_including(
|
|
298
|
+
'security.protocol' => 'SASL_PLAINTEXT',
|
|
299
|
+
'sasl.mechanism' => 'OAUTHBEARER',
|
|
300
|
+
'sasl.oauthbearer.token.endpoint.url' => 'https://auth.example.com/token',
|
|
301
|
+
'sasl.oauthbearer.scope.claim.name' => 'custom_scope'
|
|
302
|
+
))
|
|
303
|
+
subject.register
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
context 'when sasl is configured' do
|
|
308
|
+
let(:config) {
|
|
309
|
+
simple_kafka_config.merge(
|
|
310
|
+
'security_protocol' => 'SASL_PLAINTEXT',
|
|
311
|
+
'sasl_mechanism' => 'OAUTHBEARER',
|
|
312
|
+
'sasl_login_connect_timeout_ms' => 15000,
|
|
313
|
+
'sasl_login_read_timeout_ms' => 5000,
|
|
314
|
+
'sasl_login_retry_backoff_ms' => 200,
|
|
315
|
+
'sasl_login_retry_backoff_max_ms' => 15000,
|
|
316
|
+
'sasl_login_callback_handler_class' => 'org.example.CustomLoginHandler'
|
|
317
|
+
)
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
it "sets sasl login properties" do
|
|
321
|
+
expect(org.apache.kafka.clients.producer.KafkaProducer).
|
|
322
|
+
to receive(:new).with(hash_including(
|
|
323
|
+
'security.protocol' => 'SASL_PLAINTEXT',
|
|
324
|
+
'sasl.mechanism' => 'OAUTHBEARER',
|
|
325
|
+
'sasl.login.connect.timeout.ms' => '15000',
|
|
326
|
+
'sasl.login.read.timeout.ms' => '5000',
|
|
327
|
+
'sasl.login.retry.backoff.ms' => '200',
|
|
328
|
+
'sasl.login.retry.backoff.max.ms' => '15000',
|
|
329
|
+
'sasl.login.callback.handler.class' => 'org.example.CustomLoginHandler'
|
|
330
|
+
))
|
|
331
|
+
subject.register
|
|
332
|
+
end
|
|
333
|
+
end
|
|
286
334
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-integration-kafka
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 11.
|
|
4
|
+
version: 11.6.0
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Elastic
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-01-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|