summaryrefslogtreecommitdiff
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
commit62aa0bc41c4c91a020cfbd2d89ddd46587e1b3ef (patch)
treea928075d151b6100da60627ddf931681ab7eaa28
parent715982ddb26e8f6ac53ade8499826a3e1bf9d79d (diff)
downloadrabbitmq-server-62aa0bc41c4c91a020cfbd2d89ddd46587e1b3ef.tar.gz
Beginning of a config mechanism.
-rw-r--r--ebin/rabbit_app.in4
-rw-r--r--src/rabbit_reader.erl13
2 files changed, 14 insertions, 3 deletions
diff --git a/ebin/rabbit_app.in b/ebin/rabbit_app.in
index 17d05a99..7d969574 100644
--- a/ebin/rabbit_app.in
+++ b/ebin/rabbit_app.in
@@ -31,4 +31,6 @@
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
{cluster_nodes, []},
{server_properties, []},
- {collect_statistics, none}]}]}.
+ {collect_statistics, none},
+ {auth_mechanisms, [{'PLAIN', []},
+ {'AMQPLAIN', []}]} ]} ]}.
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index dd5bd61d..cc00aed0 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,