summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2012-09-18 10:24:59 +0100
committerEmile Joubert <emile@rabbitmq.com>2012-09-18 10:24:59 +0100
commitb55cd7f597ad377e61d78002fab73c3f575ed9ce (patch)
treee939e2c971676e84f2bb1c63d345ca7b38d5b947
parent703c27d907d40012bdb19c6f17588df0e156429f (diff)
downloadrabbitmq-server-bug25089.tar.gz
Allow direct connections to supply a passwordbug25089
-rw-r--r--src/rabbit_direct.erl13
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, _}} =