diff options
| author | Michael Klishin <michael@novemberain.com> | 2015-11-09 16:57:16 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@novemberain.com> | 2015-11-09 16:57:16 +0300 |
| commit | 0f892337184752e779935eb5716d657d2ed7def6 (patch) | |
| tree | cb4384c0c2d9cdaa989de260e6de976cd675af98 | |
| parent | a0e04b76737b350633196e2a3841afb0e84aa118 (diff) | |
| parent | 168524364c4449a7f4ee5e86488faff9c72dd548 (diff) | |
| download | rabbitmq-server-git-0f892337184752e779935eb5716d657d2ed7def6.tar.gz | |
Merge pull request #407 from rabbitmq/rabbitmq-server-237
Changes error code when connecting to a non-existent or forbidden vhost
| -rw-r--r-- | src/rabbit_access_control.erl | 8 | ||||
| -rw-r--r-- | src/rabbit_direct.erl | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl index 3fe7212276..f649e4b274 100644 --- a/src/rabbit_access_control.erl +++ b/src/rabbit_access_control.erl @@ -142,7 +142,7 @@ check_vhost_access(User = #user{username = Username, auth_user(User, Impl), VHostPath, Sock) end, Mod, "access to vhost '~s' refused for user '~s'", - [VHostPath, Username]); + [VHostPath, Username], not_allowed); (_, Else) -> Else end, ok, Modules). @@ -164,7 +164,11 @@ check_resource_access(User = #user{username = Username, (_, Else) -> Else end, ok, Modules). + check_access(Fun, Module, ErrStr, ErrArgs) -> + check_access(Fun, Module, ErrStr, ErrArgs, access_refused). + +check_access(Fun, Module, ErrStr, ErrArgs, ErrName) -> Allow = case Fun() of {error, E} -> rabbit_log:error(ErrStr ++ " by ~s: ~p~n", @@ -177,5 +181,5 @@ check_access(Fun, Module, ErrStr, ErrArgs) -> true -> ok; false -> - rabbit_misc:protocol_error(access_refused, ErrStr, ErrArgs) + rabbit_misc:protocol_error(ErrName, ErrStr, ErrArgs) end. diff --git a/src/rabbit_direct.erl b/src/rabbit_direct.erl index 4940ab2b53..623d16215b 100644 --- a/src/rabbit_direct.erl +++ b/src/rabbit_direct.erl @@ -114,8 +114,8 @@ connect1(User, VHost, Protocol, Pid, Infos) -> rabbit_event:notify(connection_created, Infos), {ok, {User, rabbit_reader:server_properties(Protocol)}} catch - exit:#amqp_error{name = access_refused} -> - {error, access_refused} + exit:#amqp_error{name = Reason = not_allowed} -> + {error, Reason} end. start_channel(Number, ClientChannelPid, ConnPid, ConnName, Protocol, User, |
