@@ -22,9 +22,25 @@ func OpenTopic(logger log.Logger, cfg *service.KafkaConfig) (*pubsub.Topic, erro
22
22
23
23
config .Net .SASL .Enable = cfg .Key != ""
24
24
config .Net .SASL .Mechanism = sarama .SASLMechanism (cfg .SASLMechanism )
25
- if config .Net .SASL .Mechanism == "" {
25
+
26
+ // Default to PLAIN if no SASL mechanism is specified
27
+ switch cfg .SASLMechanism {
28
+ case "SCRAM-SHA-512" :
29
+ config .Net .SASL .SCRAMClientGeneratorFunc = func () sarama.SCRAMClient {
30
+ return & XDGSCRAMClient {HashGeneratorFcn : SHA512 }
31
+ }
32
+ config .Net .SASL .Mechanism = sarama .SASLMechanism (cfg .SASLMechanism )
33
+
34
+ case "SCRAM-SHA-256" :
35
+ config .Net .SASL .SCRAMClientGeneratorFunc = func () sarama.SCRAMClient {
36
+ return & XDGSCRAMClient {HashGeneratorFcn : SHA256 }
37
+ }
38
+ config .Net .SASL .Mechanism = sarama .SASLMechanism (cfg .SASLMechanism )
39
+
40
+ default :
26
41
config .Net .SASL .Mechanism = sarama .SASLMechanism ("PLAIN" )
27
42
}
43
+
28
44
config .Net .SASL .User = cfg .Key
29
45
config .Net .SASL .Password = cfg .Secret
30
46
@@ -49,10 +65,24 @@ func OpenSubscription(logger log.Logger, cfg *service.KafkaConfig) (*pubsub.Subs
49
65
config .Net .TLS .Enable = cfg .TLS
50
66
51
67
config .Net .SASL .Enable = cfg .Key != ""
52
- config .Net .SASL .Mechanism = sarama .SASLMechanism (cfg .SASLMechanism )
53
- if config .Net .SASL .Mechanism == "" {
68
+ // Default to PLAIN if no SASL mechanism is specified
69
+ switch cfg .SASLMechanism {
70
+ case "SCRAM-SHA-512" :
71
+ config .Net .SASL .SCRAMClientGeneratorFunc = func () sarama.SCRAMClient {
72
+ return & XDGSCRAMClient {HashGeneratorFcn : SHA512 }
73
+ }
74
+ config .Net .SASL .Mechanism = sarama .SASLMechanism (cfg .SASLMechanism )
75
+
76
+ case "SCRAM-SHA-256" :
77
+ config .Net .SASL .SCRAMClientGeneratorFunc = func () sarama.SCRAMClient {
78
+ return & XDGSCRAMClient {HashGeneratorFcn : SHA256 }
79
+ }
80
+ config .Net .SASL .Mechanism = sarama .SASLMechanism (cfg .SASLMechanism )
81
+
82
+ default :
54
83
config .Net .SASL .Mechanism = sarama .SASLMechanism ("PLAIN" )
55
84
}
85
+
56
86
config .Net .SASL .User = cfg .Key
57
87
config .Net .SASL .Password = cfg .Secret
58
88
0 commit comments