summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_reader.erl13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index dd5bd61d72..cc00aed0fc 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -851,14 +851,23 @@ auth_mechanism_to_module(TypeBin, Sock) ->
end.
auth_mechanisms(Sock) ->
- [Name || {Name, Mechanism} <- rabbit_registry:lookup_all(auth_mechanism),
- Mechanism:should_offer(Sock)].
+ {ok, Configured} = application:get_env(auth_mechanisms),
+ [Name || {Name, Module} <- rabbit_registry:lookup_all(auth_mechanism),
+ Module:should_offer(Sock),
+ auth_mechanism_offer(Name, Configured)].
auth_mechanisms_binary(Sock) ->
list_to_binary(
string:join(
[atom_to_list(A) || A <- auth_mechanisms(Sock)], " ")).
+auth_mechanism_offer(Name, Configured) ->
+ case [Name0 || {Name0, _Opts} <- Configured,
+ Name == Name0] of
+ [] -> false;
+ _ -> true
+ end.
+
auth_phase(Response,
State = #v1{auth_mechanism = AuthMechanism,
auth_state = AuthState,