Przeglądaj źródła

chore: When matching authz's and/or rules, check the simple ones first to improve efficiency

某文 2 lat temu
rodzic
commit
e9e0ae7f0a

+ 1 - 1
apps/emqx/etc/ssl_dist.conf

@@ -1,4 +1,4 @@
-%% This additional config file is used when the config 'cluster.proto_dis' in emqx.conf is set to 'inet_tls'.
+%% This additional config file is used when the config 'cluster.proto_dist' in emqx.conf is set to 'inet_tls'.
 %% Which means the EMQX nodes will connect to each other over TLS.
 %% For more information about inter-broker security, see: https://docs.emqx.com/en/enterprise/v5.0/deploy/cluster/security.html
 

+ 2 - 2
apps/emqx_authz/src/emqx_authz_rule.erl

@@ -185,7 +185,7 @@ match_who(#{peerhost := IpAddress}, {ipaddrs, CIDRs}) ->
 match_who(ClientInfo, {'and', Principals}) when is_list(Principals) ->
     lists:foldl(
         fun(Principal, Permission) ->
-            match_who(ClientInfo, Principal) andalso Permission
+            Permission andalso match_who(ClientInfo, Principal)
         end,
         true,
         Principals
@@ -193,7 +193,7 @@ match_who(ClientInfo, {'and', Principals}) when is_list(Principals) ->
 match_who(ClientInfo, {'or', Principals}) when is_list(Principals) ->
     lists:foldl(
         fun(Principal, Permission) ->
-            match_who(ClientInfo, Principal) orelse Permission
+            Permission orelse match_who(ClientInfo, Principal)
         end,
         false,
         Principals