@@ -36,6 +36,10 @@ groups() -> [
3636 {with_root_static_signing_keys , [], [
3737 replace_merge_root_static_keys_with_newly_added_keys ,
3838 replace_override_root_static_keys_with_newly_added_keys
39+ ]},
40+ {with_static_signing_keys_for_specific_oauth_provider , [], [
41+ replace_merge_static_keys_with_newly_added_keys ,
42+ replace_override_static_keys_with_newly_added_keys
3943 ]}
4044 ]},
4145 {with_resource_server_id , [], [
@@ -184,14 +188,25 @@ init_per_group(with_default_key, Config) ->
184188 proplists :delete (default_key , KeyConfig ) ++ [{default_key ,<<" default-key" >>}]),
185189 Config ;
186190init_per_group (with_root_static_signing_keys , Config ) ->
187- KeyConfig = application : get_env ( rabbitmq_auth_backend_oauth2 , key_config , []),
191+ KeyConfig = call_get_env ( Config , key_config , []),
188192 SigningKeys = #{
189193 <<" mykey-root-1" >> => <<" some key root-1" >>,
190194 <<" mykey-root-2" >> => <<" some key root-2" >>
191195 },
192- application : set_env ( rabbitmq_auth_backend_oauth2 , key_config ,
196+ call_set_env ( Config , key_config ,
193197 proplists :delete (default_key , KeyConfig ) ++ [{signing_keys ,SigningKeys }]),
194198 Config ;
199+ init_per_group (with_static_signing_keys_for_specific_oauth_provider , Config ) ->
200+ OAuthProviders = call_get_env (Config , oauth_providers , #{}),
201+ OAuthProvider = maps :get (<<" A" >>, OAuthProviders , []),
202+ SigningKeys = #{
203+ <<" mykey-root-1" >> => <<" some key root-1" >>,
204+ <<" mykey-root-2" >> => <<" some key root-2" >>
205+ },
206+ OAuthProvider1 = proplists :delete (signing_keys , OAuthProvider ) ++ [{signing_keys , SigningKeys }],
207+
208+ call_set_env (Config , oauth_providers , maps :put (<<" A" >>, OAuthProvider1 , OAuthProviders )),
209+ Config ;
195210
196211init_per_group (with_default_key_for_provider_A , Config ) ->
197212 OAuthProviders = application :get_env (rabbitmq_auth_backend_oauth2 , oauth_providers , #{}),
@@ -387,9 +402,8 @@ init_per_group(_any, Config) ->
387402end_per_group (with_rabbitmq_node , Config ) ->
388403 rabbit_ct_helpers :run_steps (Config , rabbit_ct_broker_helpers :teardown_steps ());
389404end_per_group (with_root_static_signing_keys , Config ) ->
390- KeyConfig = application :get_env (rabbitmq_auth_backend_oauth2 , key_config , []),
391- application :set_env (rabbitmq_auth_backend_oauth2 , key_config ,
392- proplists :delete (signing_keys , KeyConfig )),
405+ KeyConfig = call_get_env (Config , key_config , []),
406+ call_set_env (Config , key_config , KeyConfig ),
393407 Config ;
394408
395409end_per_group (with_resource_server_id , Config ) ->
@@ -529,6 +543,14 @@ end_per_testcase(_Testcase, Config) ->
529543
530544% % -----
531545
546+ call_set_env (Config , Par , Value ) ->
547+ rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
548+ [rabbitmq_auth_backend_oauth2 , Par , Value ]).
549+
550+ call_get_env (Config , Par , Def ) ->
551+ rabbit_ct_broker_helpers :rpc (Config , 0 , application , get_env ,
552+ [rabbitmq_auth_backend_oauth2 , Par , Def ]).
553+
532554call_add_signing_key (Config , Args ) ->
533555 rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_oauth2_config , add_signing_key , Args ).
534556
@@ -594,13 +616,29 @@ replace_merge_root_static_keys_with_newly_added_keys(Config) ->
594616 <<" key-2" >> := <<" some key 2" >>,
595617 <<" key-3" >> := <<" some key 3" >>
596618 } = call_get_signing_keys (Config ).
619+ replace_merge_static_keys_with_newly_added_keys (Config ) ->
620+ NewKeys = #{<<" key-2" >> => <<" some key 2" >>, <<" key-3" >> => <<" some key 3" >>},
621+ call_replace_signing_keys (Config , [NewKeys , <<" A" >>]),
622+ #{ <<" mykey-root-1" >> := <<" some key root-1" >>,
623+ <<" mykey-root-2" >> := <<" some key root-2" >>,
624+ <<" key-2" >> := <<" some key 2" >>,
625+ <<" key-3" >> := <<" some key 3" >>
626+ } = call_get_signing_keys (Config , [<<" A" >>]).
597627replace_override_root_static_keys_with_newly_added_keys (Config ) ->
598628 NewKeys = #{<<" mykey-root-1" >> => <<" new key root-1" >>, <<" key-3" >> => <<" some key 3" >>},
599629 call_replace_signing_keys (Config , [NewKeys ]),
600630 #{ <<" mykey-root-1" >> := <<" new key root-1" >>,
601631 <<" mykey-root-2" >> := <<" some key root-2" >>,
602632 <<" key-3" >> := <<" some key 3" >>
603633 } = call_get_signing_keys (Config ).
634+ replace_override_static_keys_with_newly_added_keys (Config ) ->
635+ NewKeys = #{<<" mykey-root-1" >> => <<" new key root-1" >>, <<" key-3" >> => <<" some key 3" >>},
636+ call_replace_signing_keys (Config , [NewKeys , <<" A" >>]),
637+ #{ <<" mykey-root-1" >> := <<" new key root-1" >>,
638+ <<" mykey-root-2" >> := <<" some key root-2" >>,
639+ <<" key-3" >> := <<" some key 3" >>
640+ } = call_get_signing_keys (Config , [<<" A" >>]).
641+
604642replace_signing_keys_for_root_oauth_provider (Config ) ->
605643 call_add_signing_key (Config , [<<" mykey-1" >>, <<" some key 1" >>]),
606644 NewKeys = #{<<" key-2" >> => <<" some key 2" >>, <<" key-3" >> => <<" some key 3" >>},
0 commit comments