summaryrefslogtreecommitdiff
path: root/deps/amqp_client/src/amqp_auth_mechanisms.erl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/amqp_client/src/amqp_auth_mechanisms.erl')
-rw-r--r--deps/amqp_client/src/amqp_auth_mechanisms.erl44
1 files changed, 44 insertions, 0 deletions
diff --git a/deps/amqp_client/src/amqp_auth_mechanisms.erl b/deps/amqp_client/src/amqp_auth_mechanisms.erl
new file mode 100644
index 0000000000..549cd17376
--- /dev/null
+++ b/deps/amqp_client/src/amqp_auth_mechanisms.erl
@@ -0,0 +1,44 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+%% @private
+-module(amqp_auth_mechanisms).
+
+-include("amqp_client.hrl").
+
+-export([plain/3, amqplain/3, external/3, crdemo/3]).
+
+%%---------------------------------------------------------------------------
+
+plain(none, _, init) ->
+ {<<"PLAIN">>, []};
+plain(none, #amqp_params_network{username = Username,
+ password = Password}, _State) ->
+ DecryptedPassword = credentials_obfuscation:decrypt(Password),
+ {<<0, Username/binary, 0, DecryptedPassword/binary>>, _State}.
+
+amqplain(none, _, init) ->
+ {<<"AMQPLAIN">>, []};
+amqplain(none, #amqp_params_network{username = Username,
+ password = Password}, _State) ->
+ LoginTable = [{<<"LOGIN">>, longstr, Username},
+ {<<"PASSWORD">>, longstr, credentials_obfuscation:decrypt(Password)}],
+ {rabbit_binary_generator:generate_table(LoginTable), _State}.
+
+external(none, _, init) ->
+ {<<"EXTERNAL">>, []};
+external(none, _, _State) ->
+ {<<"">>, _State}.
+
+crdemo(none, _, init) ->
+ {<<"RABBIT-CR-DEMO">>, 0};
+crdemo(none, #amqp_params_network{username = Username}, 0) ->
+ {Username, 1};
+crdemo(<<"Please tell me your password">>,
+ #amqp_params_network{password = Password}, 1) ->
+ DecryptedPassword = credentials_obfuscation:decrypt(Password),
+ {<<"My password is ", DecryptedPassword/binary>>, 2}.