summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2010-12-06 14:59:55 +0000
committerSimon MacMullen <simon@rabbitmq.com>2010-12-06 14:59:55 +0000
commit8611a967a211bb396279fe70325d3ee33db298cd (patch)
tree2592ae939a3cf4fb257d0530fea87495c18b31a0
parenteb5ffe643bc6c0e3201340849bdce84bff9f7ca3 (diff)
downloadrabbitmq-server-8611a967a211bb396279fe70325d3ee33db298cd.tar.gz
Demonstrate protocol_error.
-rw-r--r--src/rabbit_auth_mechanism_cr_demo.erl9
-rw-r--r--src/rabbit_reader.erl2
2 files changed, 8 insertions, 3 deletions
diff --git a/src/rabbit_auth_mechanism_cr_demo.erl b/src/rabbit_auth_mechanism_cr_demo.erl
index 0e4b7a85..67665928 100644
--- a/src/rabbit_auth_mechanism_cr_demo.erl
+++ b/src/rabbit_auth_mechanism_cr_demo.erl
@@ -51,7 +51,7 @@
%% Provides equivalent security to PLAIN but demos use of Connection.Secure(Ok)
%% START-OK: Username
%% SECURE: "Please tell me your password"
-%% SECURE-OK: Password
+%% SECURE-OK: "My password is ~s", [Password]
description() ->
[{name, <<"RABBIT-CR-DEMO">>},
@@ -66,4 +66,9 @@ handle_response(Response, State = #state{username = undefined}) ->
State#state{username = Response}};
handle_response(Response, #state{username = Username}) ->
- rabbit_access_control:check_user_pass_login(Username, Response).
+ case Response of
+ <<"My password is ", Password/binary>> ->
+ rabbit_access_control:check_user_pass_login(Username, Password);
+ _ ->
+ {protocol_error, "Invalid response '~s'", [Response]}
+ end.
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index bbecdbaa..6b3276be 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -873,7 +873,7 @@ auth_phase(Response,
access_refused, "~s login refused: ~s",
[proplists:get_value(name, AuthMechanism:description()), Reason]);
{protocol_error, Msg, Args} ->
- rabbit_misc:protocol_error(access_refused, Msg, Args);
+ rabbit_misc:protocol_error(syntax_error, Msg, Args);
{challenge, Challenge, AuthState1} ->
Secure = #'connection.secure'{challenge = Challenge},
ok = send_on_channel0(Sock, Secure, Protocol),