Merge pull request #10415 from zhongwencool/authz-rule-and-or-improve
chore: short-circuit expressions on authz‘s and/or rules.
This commit is contained in:
commit
35c36e8872
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue