mirror of
https://github.com/minio/minio.git
synced 2025-04-23 03:45:49 -04:00
Kafka (sarama) authentication with user/pass (#6291)
This commit is contained in:
parent
67d8396af4
commit
7cb87f863e
@ -101,7 +101,17 @@ var (
|
|||||||
"1": {
|
"1": {
|
||||||
"enable": false,
|
"enable": false,
|
||||||
"brokers": null,
|
"brokers": null,
|
||||||
"topic": ""
|
"topic": "",
|
||||||
|
"tls" : {
|
||||||
|
"enable" : false,
|
||||||
|
"skipVerify" : false,
|
||||||
|
"clientAuth" : 0
|
||||||
|
},
|
||||||
|
"sasl" : {
|
||||||
|
"enable" : false,
|
||||||
|
"username" : "",
|
||||||
|
"password" : ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mqtt": {
|
"mqtt": {
|
||||||
|
@ -91,7 +91,17 @@
|
|||||||
"1": {
|
"1": {
|
||||||
"enable": true,
|
"enable": true,
|
||||||
"brokers": ["localhost:9092"],
|
"brokers": ["localhost:9092"],
|
||||||
"topic": "bucketevents"
|
"topic": "bucketevents",
|
||||||
|
"tls" : {
|
||||||
|
"enable" : true,
|
||||||
|
"skipVerify" : false,
|
||||||
|
"clientAuth" : 0
|
||||||
|
},
|
||||||
|
"sasl" : {
|
||||||
|
"enable" : true,
|
||||||
|
"username" : "kafka",
|
||||||
|
"password" : "kafkapasswd"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"webhook": {
|
"webhook": {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package target
|
package target
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/tls"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"net/url"
|
"net/url"
|
||||||
@ -32,6 +33,16 @@ type KafkaArgs struct {
|
|||||||
Enable bool `json:"enable"`
|
Enable bool `json:"enable"`
|
||||||
Brokers []xnet.Host `json:"brokers"`
|
Brokers []xnet.Host `json:"brokers"`
|
||||||
Topic string `json:"topic"`
|
Topic string `json:"topic"`
|
||||||
|
TLS struct {
|
||||||
|
Enable bool `json:"enable"`
|
||||||
|
SkipVerify bool `json:"skipVerify"`
|
||||||
|
ClientAuth tls.ClientAuthType `json:"clientAuth"`
|
||||||
|
} `json:"tls"`
|
||||||
|
SASL struct {
|
||||||
|
Enable bool `json:"enable"`
|
||||||
|
User string `json:"username"`
|
||||||
|
Password string `json:"password"`
|
||||||
|
} `json:"sasl"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate KafkaArgs fields
|
// Validate KafkaArgs fields
|
||||||
@ -90,9 +101,20 @@ func (target *KafkaTarget) Close() error {
|
|||||||
return target.producer.Close()
|
return target.producer.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewKafkaTarget - creates new Kafka target.
|
// NewKafkaTarget - creates new Kafka target with auth credentials.
|
||||||
func NewKafkaTarget(id string, args KafkaArgs) (*KafkaTarget, error) {
|
func NewKafkaTarget(id string, args KafkaArgs) (*KafkaTarget, error) {
|
||||||
config := sarama.NewConfig()
|
config := sarama.NewConfig()
|
||||||
|
|
||||||
|
config.Net.SASL.User = args.SASL.User
|
||||||
|
config.Net.SASL.Password = args.SASL.Password
|
||||||
|
config.Net.SASL.Enable = args.SASL.Enable
|
||||||
|
|
||||||
|
config.Net.TLS.Enable = args.TLS.Enable
|
||||||
|
tlsConfig := &tls.Config{
|
||||||
|
ClientAuth: args.TLS.ClientAuth,
|
||||||
|
}
|
||||||
|
config.Net.TLS.Config = tlsConfig
|
||||||
|
|
||||||
config.Producer.RequiredAcks = sarama.WaitForAll
|
config.Producer.RequiredAcks = sarama.WaitForAll
|
||||||
config.Producer.Retry.Max = 10
|
config.Producer.Retry.Max = 10
|
||||||
config.Producer.Return.Successes = true
|
config.Producer.Return.Successes = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user