Skip to content

Commit fc7ef52

Browse files
Update test
1 parent dc446cc commit fc7ef52

File tree

4 files changed

+45
-15
lines changed

4 files changed

+45
-15
lines changed

deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,13 @@ check_resource_access(#auth_user{impl = DecodedTokenFun},
104104
end).
105105

106106
check_topic_access(#auth_user{impl = DecodedTokenFun},
107-
Resource, Permission, Context) ->
107+
Resource, Permission, Context) ->
108108
with_decoded_token(DecodedTokenFun(),
109109
fun(Token) ->
110-
Scopes = get_expanded_scopes(Token, Resource),
110+
Scopes = get_expanded_scopes(Token, Resource),
111+
ct:log("check_topic_access Scoes: ~p ......", [Scopes]),
112+
ct:log("check_topic_access Resource: ~p Permisson: ~p Context:~p",
113+
[Resource,Permission, Context]),
111114
rabbit_oauth2_scope:topic_access(Resource, Permission, Context, Scopes)
112115
end).
113116

deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_resource_server.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ resolve_resource_server_from_audience(Audience) ->
4848
case find_audience(Audience, AllowedResourceServerIds) of
4949
{error, aud_matched_many_resource_servers_only_one_allowed} = Error ->
5050
Error;
51-
{error, no_matching_aud_found} ->
51+
{error, no_matching_aud_found} ->
5252
translate_error_if_any(
5353
find_unique_resource_server_without_verify_aud(),
5454
true);

deps/rabbitmq_auth_backend_oauth2/test/rabbit_auth_backend_oauth2_test_util.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ fixture_token() ->
117117

118118
token_with_sub(TokenFixture, Sub) ->
119119
maps:put(<<"sub">>, Sub, TokenFixture).
120+
token_with_claim(TokenFixture, Name, Value) ->
121+
maps:put(Name, Value, TokenFixture).
120122
token_with_scopes(TokenFixture, Scopes) ->
121123
maps:put(<<"scope">>, Scopes, TokenFixture).
122124

deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ all() ->
4949
test_unsuccessful_access_with_a_token_that_uses_missing_scope_alias_in_scope_field,
5050
test_unsuccessful_access_with_a_token_that_uses_missing_scope_alias_in_extra_scope_source_field,
5151
test_username_from,
52-
{group, with_rabbitmq_node}
52+
{group, with_rabbitmq_node},
53+
{group, with_resource_server_id}
5354

5455
].
5556
groups() ->
@@ -62,11 +63,11 @@ groups() ->
6263
},
6364
{with_resource_server_id, [], [
6465
test_successful_access_with_a_token,
65-
test_validate_payload_resource_server_id_mismatch,
6666
test_successful_access_with_a_token_that_uses_single_scope_alias_in_scope_field,
6767
test_successful_access_with_a_token_that_uses_multiple_scope_aliases_in_scope_field,
6868
test_successful_authorization_without_scopes,
6969
test_successful_authentication_without_scopes,
70+
test_successful_access_with_a_token_that_uses_single_scope_alias_with_var_expansion,
7071
test_successful_access_with_a_token_that_uses_single_scope_alias_in_extra_scope_source_field,
7172
test_successful_access_with_a_token_that_uses_multiple_scope_aliases_in_extra_scope_source_field,
7273
normalize_token_scope_with_additional_scopes_complex_claims,
@@ -777,6 +778,35 @@ test_successful_access_with_a_token_that_has_tag_scopes(_) ->
777778
{ok, #auth_user{username = Username, tags = [management, policymaker]}} =
778779
user_login_authentication(Username, [{password, Token}]).
779780

781+
test_successful_access_with_a_token_that_uses_single_scope_alias_with_var_expansion(_) ->
782+
Jwk = ?UTIL_MOD:fixture_jwk(),
783+
UaaEnv = [{signing_keys, #{<<"token-key">> => {map, Jwk}}}],
784+
set_env(key_config, UaaEnv),
785+
Alias = <<"client-alias-1">>,
786+
set_env(scope_aliases, #{
787+
Alias => [
788+
<<"rabbitmq.configure:{vhost}/q-{sub}/{client_id}/*">>
789+
]
790+
}),
791+
792+
VHost = <<"vhost">>,
793+
Username = <<"bob">>,
794+
Token = ?UTIL_MOD:sign_token_hs(?UTIL_MOD:token_with_sub(
795+
?UTIL_MOD:token_with_claim(
796+
?UTIL_MOD:token_with_scope_alias_in_scope_field(Alias), <<"client_id">>, <<"rmq">>),
797+
Username), Jwk),
798+
799+
{ok, #auth_user{username = Username} = AuthUser} =
800+
user_login_authentication(Username, [{password, Token}]),
801+
802+
assert_topic_access_refused(AuthUser, VHost, <<"q-bob">>, read,
803+
#{routing_key => <<"rmq/#">>}),
804+
assert_topic_access_granted(AuthUser, VHost, <<"q-bob">>, configure,
805+
#{routing_key => <<"rmq/#">>}),
806+
807+
application:unset_env(rabbitmq_auth_backend_oauth2, scope_aliases),
808+
application:unset_env(rabbitmq_auth_backend_oauth2, key_config).
809+
780810
test_successful_access_with_a_token_that_uses_single_scope_alias_in_scope_field(_) ->
781811
Jwk = ?UTIL_MOD:fixture_jwk(),
782812
UaaEnv = [{signing_keys, #{<<"token-key">> => {map, Jwk}}}],
@@ -813,8 +843,7 @@ test_successful_access_with_a_token_that_uses_single_scope_alias_in_scope_field(
813843
assert_resource_access_denied(AuthUser, VHost, <<"three">>, write),
814844

815845
application:unset_env(rabbitmq_auth_backend_oauth2, scope_aliases),
816-
application:unset_env(rabbitmq_auth_backend_oauth2, key_config),
817-
application:unset_env(rabbitmq_auth_backend_oauth2, resource_server_id).
846+
application:unset_env(rabbitmq_auth_backend_oauth2, key_config).
818847

819848

820849
test_successful_access_with_a_token_that_uses_single_scope_alias_in_scope_field_and_custom_scope_prefix(_) ->
@@ -855,8 +884,7 @@ test_successful_access_with_a_token_that_uses_single_scope_alias_in_scope_field_
855884

856885
application:unset_env(rabbitmq_auth_backend_oauth2, scope_aliases),
857886
application:unset_env(rabbitmq_auth_backend_oauth2, key_config),
858-
application:unset_env(rabbitmq_auth_backend_oauth2, scope_prefix),
859-
application:unset_env(rabbitmq_auth_backend_oauth2, resource_server_id).
887+
application:unset_env(rabbitmq_auth_backend_oauth2, scope_prefix).
860888

861889
test_successful_access_with_a_token_that_uses_multiple_scope_aliases_in_scope_field(_) ->
862890
Jwk = ?UTIL_MOD:fixture_jwk(),
@@ -901,8 +929,7 @@ test_successful_access_with_a_token_that_uses_multiple_scope_aliases_in_scope_fi
901929
assert_resource_access_denied(AuthUser, VHost, <<"three">>, write),
902930

903931
application:unset_env(rabbitmq_auth_backend_oauth2, scope_aliases),
904-
application:unset_env(rabbitmq_auth_backend_oauth2, key_config),
905-
application:unset_env(rabbitmq_auth_backend_oauth2, resource_server_id).
932+
application:unset_env(rabbitmq_auth_backend_oauth2, key_config).
906933

907934
test_unsuccessful_access_with_a_token_that_uses_missing_scope_alias_in_scope_field(_) ->
908935
Jwk = ?UTIL_MOD:fixture_jwk(),
@@ -976,8 +1003,7 @@ test_successful_access_with_a_token_that_uses_single_scope_alias_in_extra_scope_
9761003
assert_resource_access_denied(AuthUser, VHost, <<"three">>, write),
9771004

9781005
application:unset_env(rabbitmq_auth_backend_oauth2, scope_aliases),
979-
application:unset_env(rabbitmq_auth_backend_oauth2, key_config),
980-
application:unset_env(rabbitmq_auth_backend_oauth2, resource_server_id).
1006+
application:unset_env(rabbitmq_auth_backend_oauth2, key_config).
9811007

9821008
test_successful_access_with_a_token_that_uses_multiple_scope_aliases_in_extra_scope_source_field(_) ->
9831009
Jwk = ?UTIL_MOD:fixture_jwk(),
@@ -1021,8 +1047,7 @@ test_successful_access_with_a_token_that_uses_multiple_scope_aliases_in_extra_sc
10211047
assert_resource_access_denied(AuthUser, VHost, <<"three">>, write),
10221048

10231049
application:unset_env(rabbitmq_auth_backend_oauth2, scope_aliases),
1024-
application:unset_env(rabbitmq_auth_backend_oauth2, key_config),
1025-
application:unset_env(rabbitmq_auth_backend_oauth2, resource_server_id).
1050+
application:unset_env(rabbitmq_auth_backend_oauth2, key_config).
10261051

10271052
test_unsuccessful_access_with_a_token_that_uses_missing_scope_alias_in_extra_scope_source_field(_) ->
10281053
Jwk = ?UTIL_MOD:fixture_jwk(),

0 commit comments

Comments
 (0)