diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-04-08 15:07:43 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-04-08 15:07:43 +0100 |
| commit | 9dd8eb562d1c338dcdcc810aad9e100c4832c830 (patch) | |
| tree | 3da2060eddbfb590015b28fc04a383922206030a | |
| parent | 4b77de97228c275ebd3e7a1a8cd9727e0a5dbd3f (diff) | |
| parent | c9e4bfe348348dd34afb48243c80d04a31781a97 (diff) | |
| download | rabbitmq-server-git-9dd8eb562d1c338dcdcc810aad9e100c4832c830.tar.gz | |
stable to default
| -rw-r--r-- | src/rabbit_channel.erl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index b9b39ac308..74f9cacf76 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -504,10 +504,14 @@ check_user_id_header( #'P_basic'{}, #ch{user = #user{auth_backend = rabbit_auth_backend_dummy}}) -> ok; check_user_id_header(#'P_basic'{user_id = Claimed}, - #ch{user = #user{username = Actual}}) -> - precondition_failed( - "user_id property set to '~s' but authenticated user was '~s'", - [Claimed, Actual]). + #ch{user = #user{username = Actual, + tags = Tags}}) -> + case lists:member(impersonator, Tags) of + true -> ok; + false -> precondition_failed( + "user_id property set to '~s' but authenticated user was " + "'~s'", [Claimed, Actual]) + end. check_expiration_header(Props) -> case rabbit_basic:parse_expiration(Props) of |
