@@ -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 ].
5556groups () ->
@@ -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+
780810test_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
820849test_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
861889test_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
907934test_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
9821008test_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
10271052test_unsuccessful_access_with_a_token_that_uses_missing_scope_alias_in_extra_scope_source_field (_ ) ->
10281053 Jwk = ? UTIL_MOD :fixture_jwk (),
0 commit comments