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

Merge pull request #12923 from zhongwencool/authn-mnesia

chore: provided more specific error for wrong import method
zhongwencool 1 год назад
Родитель
Сommit
2cbf4dc789

+ 1 - 1
apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src

@@ -1,7 +1,7 @@
 %% -*- mode: erlang -*-
 {application, emqx_auth_mnesia, [
     {description, "EMQX Buitl-in Database Authentication and Authorization"},
-    {vsn, "0.1.4"},
+    {vsn, "0.1.5"},
     {registered, []},
     {mod, {emqx_auth_mnesia_app, []}},
     {applications, [

+ 4 - 0
apps/emqx_auth_mnesia/src/emqx_authn_mnesia.erl

@@ -527,6 +527,10 @@ find_password_hash(hash, User = #{<<"password_hash">> := PasswordHash}, _) ->
     {PasswordHash, maps:get(<<"salt">>, User, <<>>)};
 find_password_hash(plain, #{<<"password">> := Password}, Algorithm) ->
     emqx_authn_password_hashing:hash(Algorithm, Password);
+find_password_hash(hash, _User, _) ->
+    error("hash_import_requires_password_hash_field");
+find_password_hash(plain, _User, _Algorithm) ->
+    error("plain_import_requires_password_field");
 find_password_hash(_, _, _) ->
     error(bad_format).
 

+ 16 - 0
apps/emqx_auth_mnesia/test/emqx_authn_mnesia_SUITE.erl

@@ -228,6 +228,14 @@ t_import_users(_) ->
             State
         )
     ),
+    %% import plain.json with hash method
+    ?assertEqual(
+        {error, "hash_import_requires_password_hash_field"},
+        emqx_authn_mnesia:import_users(
+            sample_filename_and_data(hash, <<"user-credentials-plain.json">>),
+            State
+        )
+    ),
 
     ?assertEqual(
         {error, bad_format},
@@ -289,6 +297,14 @@ t_import_users_plain(_) ->
             State
         )
     ),
+    %% import hash.json with plain method
+    ?assertEqual(
+        {error, "plain_import_requires_password_field"},
+        emqx_authn_mnesia:import_users(
+            sample_filename_and_data(plain, <<"user-credentials.json">>),
+            State
+        )
+    ),
 
     ?assertEqual(
         ok,

+ 1 - 0
changes/ce/feat-12923.en.md

@@ -0,0 +1 @@
+Provided more specific error when importing wrong format into builtin authenticate database.