summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Cogoluègnes <acogoluegnes@gmail.com>2018-07-04 11:08:46 +0200
committerGitHub <noreply@github.com>2018-07-04 11:08:46 +0200
commit77fcb2c09fb3142d6c3cc26153f5d4d543da15cd (patch)
treeb10cc32464a4accd13138194d9e40dcdc58a3a84
parent184ff0ca164d5084f94ab0414189de6115bf78eb (diff)
parentddb88163e476c54a4b96ab10b74a470d3ae7e0e7 (diff)
downloadrabbitmq-server-git-77fcb2c09fb3142d6c3cc26153f5d4d543da15cd.tar.gz
Merge pull request #1634 from rabbitmq/rabbitmq-server-1633
Pass authentication context to Mod:user_login_authorization/2
-rw-r--r--src/rabbit_access_control.erl6
-rw-r--r--src/rabbit_auth_backend_internal.erl4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/rabbit_access_control.erl b/src/rabbit_access_control.erl
index e74032eb6d..9bbebfaebf 100644
--- a/src/rabbit_access_control.erl
+++ b/src/rabbit_access_control.erl
@@ -64,7 +64,7 @@ check_user_login(Username, AuthProps) ->
%% passwordless (i.e pre-authenticated) login with authZ.
case try_authenticate(ModN, Username, AuthProps) of
{ok, ModNUser = #auth_user{username = Username2}} ->
- user(ModNUser, try_authorize(ModZs, Username2));
+ user(ModNUser, try_authorize(ModZs, Username2, AuthProps));
Else ->
Else
end;
@@ -93,10 +93,10 @@ try_authenticate(Module, Username, AuthProps) ->
{refused, F, A} -> {refused, Username, F, A}
end.
-try_authorize(Modules, Username) ->
+try_authorize(Modules, Username, AuthProps) ->
lists:foldr(
fun (Module, {ok, ModsImpls, ModsTags}) ->
- case Module:user_login_authorization(Username) of
+ case Module:user_login_authorization(Username, AuthProps) of
{ok, Impl, Tags}-> {ok, [{Module, Impl} | ModsImpls], ModsTags ++ Tags};
{ok, Impl} -> {ok, [{Module, Impl} | ModsImpls], ModsTags};
{error, E} -> {refused, Username,
diff --git a/src/rabbit_auth_backend_internal.erl b/src/rabbit_auth_backend_internal.erl
index 166732e523..af19352c70 100644
--- a/src/rabbit_auth_backend_internal.erl
+++ b/src/rabbit_auth_backend_internal.erl
@@ -20,7 +20,7 @@
-behaviour(rabbit_authn_backend).
-behaviour(rabbit_authz_backend).
--export([user_login_authentication/2, user_login_authorization/1,
+-export([user_login_authentication/2, user_login_authorization/2,
check_vhost_access/3, check_resource_access/3, check_topic_access/4]).
-export([add_user/3, delete_user/2, lookup_user/1,
@@ -133,7 +133,7 @@ user_login_authentication(Username, AuthProps) ->
false -> exit({unknown_auth_props, Username, AuthProps})
end.
-user_login_authorization(Username) ->
+user_login_authorization(Username, _AuthProps) ->
case user_login_authentication(Username, []) of
{ok, #auth_user{impl = Impl, tags = Tags}} -> {ok, Impl, Tags};
Else -> Else