summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2010-11-10 17:21:44 +0000
committerSimon MacMullen <simon@rabbitmq.com>2010-11-10 17:21:44 +0000
commita752dcc6f0486d0ad7275ce54c6150864c0c42b9 (patch)
treea928075d151b6100da60627ddf931681ab7eaa28 /src
parent7f814a1a1133fa67f2c88fb6b85693c34f998218 (diff)
downloadrabbitmq-server-git-a752dcc6f0486d0ad7275ce54c6150864c0c42b9.tar.gz
Beginning of a config mechanism.
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,