@@ -117,6 +117,86 @@ func TestNetConfigValidates(t *testing.T) {
117
117
cfg .Net .SASL .Password = "stong_password"
118
118
},
119
119
"A SCRAMClientGeneratorFunc function must be provided to Net.SASL.SCRAMClientGeneratorFunc" },
120
+ {"SASL.Mechanism GSSAPI (Kerberos) - Using User/Password, Missing password field" ,
121
+ func (cfg * Config ) {
122
+ cfg .Net .SASL .Enable = true
123
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
124
+ cfg .Net .SASL .GSSAPI .AuthType = KRB5_USER_AUTH
125
+ cfg .Net .SASL .GSSAPI .Username = "sarama"
126
+ cfg .Net .SASL .GSSAPI .ServiceName = "kafka"
127
+ cfg .Net .SASL .GSSAPI .Realm = "kafka"
128
+ cfg .Net .SASL .GSSAPI .KerberosConfigPath = "/etc/krb5.conf"
129
+ },
130
+ "Net.SASL.GSSAPI.Password must not be empty when GSS-API " +
131
+ "mechanism is used and Net.SASL.GSSAPI.AuthType = KRB5_USER_AUTH" },
132
+ {"SASL.Mechanism GSSAPI (Kerberos) - Using User/Password, Missing KeyTabPath field" ,
133
+ func (cfg * Config ) {
134
+ cfg .Net .SASL .Enable = true
135
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
136
+ cfg .Net .SASL .GSSAPI .AuthType = KRB5_KEYTAB_AUTH
137
+ cfg .Net .SASL .GSSAPI .Username = "sarama"
138
+ cfg .Net .SASL .GSSAPI .ServiceName = "kafka"
139
+ cfg .Net .SASL .GSSAPI .Realm = "kafka"
140
+ cfg .Net .SASL .GSSAPI .KerberosConfigPath = "/etc/krb5.conf"
141
+ },
142
+ "Net.SASL.GSSAPI.KeyTabPath must not be empty when GSS-API mechanism is used" +
143
+ " and Net.SASL.GSSAPI.AuthType = KRB5_KEYTAB_AUTH" },
144
+ {"SASL.Mechanism GSSAPI (Kerberos) - Missing username" ,
145
+ func (cfg * Config ) {
146
+ cfg .Net .SASL .Enable = true
147
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
148
+ cfg .Net .SASL .GSSAPI .AuthType = KRB5_USER_AUTH
149
+ cfg .Net .SASL .GSSAPI .Password = "sarama"
150
+ cfg .Net .SASL .GSSAPI .ServiceName = "kafka"
151
+ cfg .Net .SASL .GSSAPI .Realm = "kafka"
152
+ cfg .Net .SASL .GSSAPI .KerberosConfigPath = "/etc/krb5.conf"
153
+ },
154
+ "Net.SASL.GSSAPI.Username must not be empty when GSS-API mechanism is used" },
155
+ {"SASL.Mechanism GSSAPI (Kerberos) - Missing ServiceName" ,
156
+ func (cfg * Config ) {
157
+ cfg .Net .SASL .Enable = true
158
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
159
+ cfg .Net .SASL .GSSAPI .AuthType = KRB5_USER_AUTH
160
+ cfg .Net .SASL .GSSAPI .Username = "sarama"
161
+ cfg .Net .SASL .GSSAPI .Password = "sarama"
162
+ cfg .Net .SASL .GSSAPI .Realm = "kafka"
163
+ cfg .Net .SASL .GSSAPI .KerberosConfigPath = "/etc/krb5.conf"
164
+ },
165
+ "Net.SASL.GSSAPI.ServiceName must not be empty when GSS-API mechanism is used" },
166
+ {"SASL.Mechanism GSSAPI (Kerberos) - Missing AuthType" ,
167
+ func (cfg * Config ) {
168
+ cfg .Net .SASL .Enable = true
169
+ cfg .Net .SASL .GSSAPI .ServiceName = "kafka"
170
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
171
+ cfg .Net .SASL .GSSAPI .Username = "sarama"
172
+ cfg .Net .SASL .GSSAPI .Password = "sarama"
173
+ cfg .Net .SASL .GSSAPI .Realm = "kafka"
174
+ cfg .Net .SASL .GSSAPI .KerberosConfigPath = "/etc/krb5.conf"
175
+ },
176
+ "Net.SASL.GSSAPI.AuthType is invalid. Possible values are KRB5_USER_AUTH and KRB5_KEYTAB_AUTH" },
177
+ {"SASL.Mechanism GSSAPI (Kerberos) - Missing KerberosConfigPath" ,
178
+ func (cfg * Config ) {
179
+ cfg .Net .SASL .Enable = true
180
+ cfg .Net .SASL .GSSAPI .ServiceName = "kafka"
181
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
182
+ cfg .Net .SASL .GSSAPI .AuthType = KRB5_USER_AUTH
183
+ cfg .Net .SASL .GSSAPI .Username = "sarama"
184
+ cfg .Net .SASL .GSSAPI .Password = "sarama"
185
+ cfg .Net .SASL .GSSAPI .Realm = "kafka"
186
+ },
187
+ "Net.SASL.GSSAPI.KerberosConfigPath must not be empty when GSS-API mechanism is used" },
188
+ {"SASL.Mechanism GSSAPI (Kerberos) - Missing Realm" ,
189
+ func (cfg * Config ) {
190
+ cfg .Net .SASL .Enable = true
191
+ cfg .Net .SASL .GSSAPI .ServiceName = "kafka"
192
+ cfg .Net .SASL .Mechanism = SASLTypeGSSAPI
193
+ cfg .Net .SASL .GSSAPI .AuthType = KRB5_USER_AUTH
194
+ cfg .Net .SASL .GSSAPI .Username = "sarama"
195
+ cfg .Net .SASL .GSSAPI .Password = "sarama"
196
+ cfg .Net .SASL .GSSAPI .KerberosConfigPath = "/etc/krb5.conf"
197
+
198
+ },
199
+ "Net.SASL.GSSAPI.Realm must not be empty when GSS-API mechanism is used" },
120
200
}
121
201
122
202
for i , test := range tests {
0 commit comments