diff options
author | Emile Joubert <emile@rabbitmq.com> | 2012-09-18 10:24:59 +0100 |
---|---|---|
committer | Emile Joubert <emile@rabbitmq.com> | 2012-09-18 10:24:59 +0100 |
commit | b55cd7f597ad377e61d78002fab73c3f575ed9ce (patch) | |
tree | e939e2c971676e84f2bb1c63d345ca7b38d5b947 | |
parent | 703c27d907d40012bdb19c6f17588df0e156429f (diff) | |
download | rabbitmq-server-bug25089.tar.gz |
Allow direct connections to supply a passwordbug25089
-rw-r--r-- | src/rabbit_direct.erl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/rabbit_direct.erl b/src/rabbit_direct.erl index a669a2b3..a3431321 100644 --- a/src/rabbit_direct.erl +++ b/src/rabbit_direct.erl @@ -31,7 +31,8 @@ -spec(force_event_refresh/0 :: () -> 'ok'). -spec(list/0 :: () -> [pid()]). -spec(list_local/0 :: () -> [pid()]). --spec(connect/5 :: ((rabbit_types:username() | rabbit_types:user()), +-spec(connect/5 :: ((rabbit_types:username() | rabbit_types:user() | + {rabbit_types:username(), rabbit_types:password()}), rabbit_types:vhost(), rabbit_types:protocol(), pid(), rabbit_event:event_props()) -> {'ok', {rabbit_types:user(), @@ -74,10 +75,17 @@ connect(User = #user{}, VHost, Protocol, Pid, Infos) -> {error, access_refused} end; +connect({Username, Password}, VHost, Protocol, Pid, Infos) -> + connect0(check_user_pass_login, Username, Password, VHost, Protocol, Pid, + Infos); + connect(Username, VHost, Protocol, Pid, Infos) -> + connect0(check_user_login, Username, [], VHost, Protocol, Pid, Infos). + +connect0(FunctionName, U, P, VHost, Protocol, Pid, Infos) -> case rabbit:is_running() of true -> - case rabbit_access_control:check_user_login(Username, []) of + case rabbit_access_control:FunctionName(U, P) of {ok, User} -> connect(User, VHost, Protocol, Pid, Infos); {refused, _M, _A} -> {error, auth_failure} end; @@ -85,6 +93,7 @@ connect(Username, VHost, Protocol, Pid, Infos) -> {error, broker_not_found_on_node} end. + start_channel(Number, ClientChannelPid, ConnPid, ConnName, Protocol, User, VHost, Capabilities, Collector) -> {ok, _, {ChannelPid, _}} = |