diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2015-01-09 17:49:05 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2015-01-09 17:49:05 +0000 |
commit | d8c664480f50ee184d6dc60903377f51ef8e644c (patch) | |
tree | 2ec8a0c9a237929e4578806b402e1456e977b293 /src/rabbit_direct.erl | |
parent | 687c9fec8c94d5d5565a1b08605d483449271eb0 (diff) | |
parent | cd4c9e37d9b30bf2ed6a8b877d86cdc3d9f29a0e (diff) | |
download | rabbitmq-server-master.tar.gz |
Diffstat (limited to 'src/rabbit_direct.erl')
-rw-r--r-- | src/rabbit_direct.erl | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/rabbit_direct.erl b/src/rabbit_direct.erl index 749a67b1..11233e7e 100644 --- a/src/rabbit_direct.erl +++ b/src/rabbit_direct.erl @@ -83,16 +83,27 @@ connect({Username, Password}, VHost, Protocol, Pid, Infos) -> connect0(AuthFun, VHost, Protocol, Pid, Infos) -> case rabbit:is_running() of true -> case AuthFun() of - {ok, User} -> + {ok, User = #user{username = Username}} -> + notify_auth_result(Username, + user_authentication_success, []), connect1(User, VHost, Protocol, Pid, Infos); - {refused, _M, _A} -> + {refused, Username, Msg, Args} -> + notify_auth_result(Username, + user_authentication_failure, + [{error, rabbit_misc:format(Msg, Args)}]), {error, {auth_failure, "Refused"}} end; false -> {error, broker_not_found_on_node} end. +notify_auth_result(Username, AuthResult, ExtraProps) -> + EventProps = [{connection_type, direct}, + {name, case Username of none -> ''; _ -> Username end}] ++ + ExtraProps, + rabbit_event:notify(AuthResult, [P || {_, V} = P <- EventProps, V =/= '']). + connect1(User, VHost, Protocol, Pid, Infos) -> - try rabbit_access_control:check_vhost_access(User, VHost) of + try rabbit_access_control:check_vhost_access(User, VHost, undefined) of ok -> ok = pg_local:join(rabbit_direct, Pid), rabbit_event:notify(connection_created, Infos), {ok, {User, rabbit_reader:server_properties(Protocol)}} |