Просмотр исходного кода

fix(authn/kerberos): allow keytab_file missing in create request

zmstone 1 год назад
Родитель
Сommit
4abeec090b

+ 2 - 7
apps/emqx_auth_kerberos/src/emqx_authn_kerberos.erl

@@ -17,13 +17,8 @@
     authenticate/2
 ]).
 
-create(
-    AuthenticatorID,
-    #{
-        principal := Principal,
-        keytab_file := KeyTabFile
-    }
-) ->
+create(AuthenticatorID, #{principal := Principal} = Conf) ->
+    KeyTabFile = maps:get(keytab_file, Conf, <<"">>),
     KeyTabPath = resolve_keytab(KeyTabFile),
     %% kinit is not necessary for server because the keytab file
     %% must be the smae as default keytab

+ 2 - 1
apps/emqx_auth_kerberos/test/emqx_authn_kerberos_SUITE.erl

@@ -70,7 +70,8 @@ t_create(_Config) ->
         emqx_authn_chains:list_authenticators(?GLOBAL).
 
 t_create_invalid(_Config) ->
-    InvalidConfig0 = raw_config(),
+    %% cover the case when keytab_file is not provided
+    InvalidConfig0 = maps:remove(<<"keytab_file">>, raw_config()),
     InvalidConfig = InvalidConfig0#{<<"principal">> := ?INVALID_SVR_PRINCIPAL},
 
     {error, _} = emqx:update_config(