Skip to content

Commit 63e327f

Browse files
Merge pull request #12758 from rabbitmq/mergify/bp/v4.0.x/pr-12752
By @Hathoute: consider additional_scopes_key when multiple OAuth 2 backends are used (backport #12752)
2 parents 2404d7e + 5ffb395 commit 63e327f

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_schema.erl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@
77

88
-module(rabbit_oauth2_schema).
99

10-
1110
-export([
1211
translate_oauth_providers/1,
1312
translate_resource_servers/1,
1413
translate_signing_keys/1
1514
]).
1615

16+
-define(RESOURCE_SERVERS_SYNONYMS, #{
17+
"additional_scopes_key" => "extra_scopes_source"
18+
}).
19+
20+
resource_servers_key_synonym(Key) -> maps:get(Key, ?RESOURCE_SERVERS_SYNONYMS, Key).
21+
1722
extract_key_as_binary({Name,_}) -> list_to_binary(Name).
1823
extract_value({_Name,V}) -> V.
1924

@@ -99,7 +104,7 @@ extract_resource_server_properties(Settings) ->
99104
KeyFun = fun extract_key_as_binary/1,
100105
ValueFun = fun extract_value/1,
101106

102-
OAuthProviders = [{Name, {list_to_atom(Key), list_to_binary(V)}}
107+
OAuthProviders = [{Name, {list_to_atom(resource_servers_key_synonym(Key)), list_to_binary(V)}}
103108
|| {["auth_oauth2","resource_servers", Name, Key], V} <- Settings ],
104109
maps:groups_from_list(KeyFun, ValueFun, OAuthProviders).
105110

deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE_data/rabbitmq_auth_backend_oauth2.snippets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
{id, <<"rabbitmq-operations">>}
9292
],
9393
<<"rabbitmq-customers">> => [
94-
{additional_scopes_key, <<"roles">>},
94+
{extra_scopes_source, <<"roles">>},
9595
{id, <<"rabbitmq-customers">>}
9696
]
9797
}

deps/rabbitmq_auth_backend_oauth2/test/rabbit_oauth2_schema_SUITE.erl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,11 @@ test_resource_servers_attributes(_) ->
8787
{["auth_oauth2","resource_servers","rabbitmq1","preferred_username_claims","1"],"userid"},
8888
{["auth_oauth2","resource_servers","rabbitmq1","preferred_username_claims","2"],"groupid"}
8989
],
90-
#{<<"rabbitmq1xxx">> := [{additional_scopes_key, <<"roles">>},
91-
{id, <<"rabbitmq1xxx">>},
92-
{preferred_username_claims, [<<"userid">>, <<"groupid">>]},
93-
{scope_prefix, <<"somescope.">>}
94-
]
90+
#{<<"rabbitmq1xxx">> := [{extra_scopes_source, <<"roles">>},
91+
{id, <<"rabbitmq1xxx">>},
92+
{preferred_username_claims, [<<"userid">>, <<"groupid">>]},
93+
{scope_prefix, <<"somescope.">>}
94+
]
9595
} = sort_settings(rabbit_oauth2_schema:translate_resource_servers(Conf)),
9696

9797
Conf2 = [
@@ -100,11 +100,11 @@ test_resource_servers_attributes(_) ->
100100
{["auth_oauth2","resource_servers","rabbitmq1","preferred_username_claims","1"],"userid"},
101101
{["auth_oauth2","resource_servers","rabbitmq1","preferred_username_claims","2"],"groupid"}
102102
],
103-
#{<<"rabbitmq1">> := [{additional_scopes_key, <<"roles">>},
103+
#{<<"rabbitmq1">> := [{extra_scopes_source, <<"roles">>},
104104
{id, <<"rabbitmq1">>},
105105
{preferred_username_claims, [<<"userid">>, <<"groupid">>]},
106106
{scope_prefix, <<"somescope.">>}
107-
]
107+
]
108108
} = sort_settings(rabbit_oauth2_schema:translate_resource_servers(Conf2)).
109109

110110
test_oauth_providers_attributes_with_invalid_uri(_) ->

0 commit comments

Comments
 (0)