chore: When matching authz's and/or rules, check the simple ones first to improve efficiency
This commit is contained in:
parent
03ea04827d
commit
e9e0ae7f0a
|
@ -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.
|
%% 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
|
%% For more information about inter-broker security, see: https://docs.emqx.com/en/enterprise/v5.0/deploy/cluster/security.html
|
||||||
|
|
||||||
|
|
|
@ -185,7 +185,7 @@ match_who(#{peerhost := IpAddress}, {ipaddrs, CIDRs}) ->
|
||||||
match_who(ClientInfo, {'and', Principals}) when is_list(Principals) ->
|
match_who(ClientInfo, {'and', Principals}) when is_list(Principals) ->
|
||||||
lists:foldl(
|
lists:foldl(
|
||||||
fun(Principal, Permission) ->
|
fun(Principal, Permission) ->
|
||||||
match_who(ClientInfo, Principal) andalso Permission
|
Permission andalso match_who(ClientInfo, Principal)
|
||||||
end,
|
end,
|
||||||
true,
|
true,
|
||||||
Principals
|
Principals
|
||||||
|
@ -193,7 +193,7 @@ match_who(ClientInfo, {'and', Principals}) when is_list(Principals) ->
|
||||||
match_who(ClientInfo, {'or', Principals}) when is_list(Principals) ->
|
match_who(ClientInfo, {'or', Principals}) when is_list(Principals) ->
|
||||||
lists:foldl(
|
lists:foldl(
|
||||||
fun(Principal, Permission) ->
|
fun(Principal, Permission) ->
|
||||||
match_who(ClientInfo, Principal) orelse Permission
|
Permission orelse match_who(ClientInfo, Principal)
|
||||||
end,
|
end,
|
||||||
false,
|
false,
|
||||||
Principals
|
Principals
|
||||||
|
|
Loading…
Reference in New Issue