diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2010-11-10 17:21:44 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2010-11-10 17:21:44 +0000 |
commit | 62aa0bc41c4c91a020cfbd2d89ddd46587e1b3ef (patch) | |
tree | a928075d151b6100da60627ddf931681ab7eaa28 | |
parent | 715982ddb26e8f6ac53ade8499826a3e1bf9d79d (diff) | |
download | rabbitmq-server-62aa0bc41c4c91a020cfbd2d89ddd46587e1b3ef.tar.gz |
Beginning of a config mechanism.
-rw-r--r-- | ebin/rabbit_app.in | 4 | ||||
-rw-r--r-- | src/rabbit_reader.erl | 13 |
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, |