Skip to content

Commit 18bd43a

Browse files
Improve formatting and add misisng test case
1 parent 72b6bbd commit 18bd43a

File tree

1 file changed

+169
-164
lines changed

1 file changed

+169
-164
lines changed

deps/rabbitmq_auth_backend_oauth2/test/rabbit_oauth2_config_SUITE.erl

Lines changed: 169 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -18,177 +18,152 @@
1818
-define(AUTH_PORT, 8000).
1919

2020

21-
all() ->
22-
[
23-
{group, with_rabbitmq_node},
24-
{group, with_resource_server_id},
25-
{group, without_resource_server_id},
26-
{group, with_resource_servers},
27-
{group, with_resource_servers_and_resource_server_id},
28-
{group, inheritance_group}
29-
30-
].
31-
groups() ->
32-
[
33-
{with_rabbitmq_node, [], [
34-
add_signing_keys_for_specific_oauth_provider,
35-
add_signing_keys_for_root_oauth_provider,
36-
37-
replace_signing_keys_for_root_oauth_provider,
38-
replace_signing_keys_for_specific_oauth_provider
39-
40-
]
41-
},
42-
43-
{with_resource_server_id, [], [
44-
get_default_resource_server_id,
45-
get_allowed_resource_server_ids_returns_resource_server_id,
46-
get_resource_server_id_for_rabbit_audience_returns_rabbit,
47-
get_resource_server_id_for_none_audience_should_fail,
48-
get_resource_server_id_for_unknown_audience_should_fail,
49-
{with_verify_aud_false, [], [
50-
get_resource_server_id_for_rabbit_audience_returns_rabbit,
51-
get_resource_server_id_for_none_audience_returns_rabbit,
52-
get_resource_server_id_for_unknown_audience_returns_rabbit
53-
]},
54-
find_audience_in_resource_server_ids_found_resource_server_id,
55-
get_oauth_provider_root_with_jwks_uri_should_fail,
56-
get_default_key_should_fail,
57-
{with_default_key, [], [
58-
get_default_key
59-
]},
60-
{with_static_signing_keys, [], [
61-
get_signing_keys
62-
]},
63-
{with_static_signing_keys_for_oauth_provider_A, [], [
64-
get_signing_keys_for_oauth_provider_A
65-
]},
66-
get_algorithms_should_return_undefined,
67-
{with_algorithms, [], [
68-
get_algorithms
69-
]},
70-
{with_jwks_url, [], [
71-
get_oauth_provider_should_return_root_oauth_provider_with_jwks_uri,
72-
{with_oauth_providers_A_with_jwks_uri, [], [
73-
get_oauth_provider_should_return_root_oauth_provider_with_jwks_uri,
74-
{with_default_oauth_provider_A, [], [
75-
get_oauth_provider_should_return_oauth_provider_A_with_jwks_uri
76-
]
77-
}
78-
]
79-
},
80-
{with_oauth_providers_A_B_with_jwks_uri, [], [
81-
get_default_key_for_provider_A_should_fail,
82-
{with_default_key, [], [
21+
all() -> [
22+
{group, with_rabbitmq_node},
23+
{group, with_resource_server_id},
24+
{group, without_resource_server_id},
25+
{group, with_resource_servers},
26+
{group, with_resource_servers_and_resource_server_id},
27+
{group, inheritance_group}
28+
].
29+
groups() -> [
30+
{with_rabbitmq_node, [], [
31+
add_signing_keys_for_specific_oauth_provider,
32+
add_signing_keys_for_root_oauth_provider,
33+
34+
replace_signing_keys_for_root_oauth_provider,
35+
replace_signing_keys_for_specific_oauth_provider,
36+
{with_root_static_signing_keys, [], [
37+
replace_merge_root_static_keys_with_newly_added_keys,
38+
replace_override_root_static_keys_with_newly_added_keys
39+
]}
40+
]},
41+
{with_resource_server_id, [], [
42+
get_default_resource_server_id,
43+
get_allowed_resource_server_ids_returns_resource_server_id,
44+
get_resource_server_id_for_rabbit_audience_returns_rabbit,
45+
get_resource_server_id_for_none_audience_should_fail,
46+
get_resource_server_id_for_unknown_audience_should_fail,
47+
{with_verify_aud_false, [], [
48+
get_resource_server_id_for_rabbit_audience_returns_rabbit,
49+
get_resource_server_id_for_none_audience_returns_rabbit,
50+
get_resource_server_id_for_unknown_audience_returns_rabbit
51+
]},
52+
find_audience_in_resource_server_ids_found_resource_server_id,
53+
get_oauth_provider_root_with_jwks_uri_should_fail,
54+
get_default_key_should_fail,
55+
{with_default_key, [], [
56+
get_default_key
57+
]},
58+
{with_static_signing_keys, [], [
59+
get_signing_keys
60+
]},
61+
{with_static_signing_keys_for_oauth_provider_A, [], [
62+
get_signing_keys_for_oauth_provider_A
63+
]},
64+
get_algorithms_should_return_undefined,
65+
{with_algorithms, [], [
66+
get_algorithms
67+
]},
68+
{with_jwks_url, [], [
69+
get_oauth_provider_should_return_root_oauth_provider_with_jwks_uri,
70+
{with_oauth_providers_A_with_jwks_uri, [], [
71+
get_oauth_provider_should_return_root_oauth_provider_with_jwks_uri,
72+
{with_default_oauth_provider_A, [], [
73+
get_oauth_provider_should_return_oauth_provider_A_with_jwks_uri
74+
]}
75+
]},
76+
{with_oauth_providers_A_B_with_jwks_uri, [], [
77+
get_default_key_for_provider_A_should_fail,
78+
{with_default_key, [], [
8379
get_default_key_for_provider_A_should_fail
84-
]},
85-
{with_default_key_for_provider_A, [], [
80+
]},
81+
{with_default_key_for_provider_A, [], [
8682
get_default_key_for_provider_A
87-
]},
88-
get_algorithms_for_provider_A_should_return_undefined,
89-
{with_algorithms_for_provider_A, [], [
83+
]},
84+
get_algorithms_for_provider_A_should_return_undefined,
85+
{with_algorithms_for_provider_A, [], [
9086
get_algorithms_for_provider_A
91-
]},
92-
get_oauth_provider_should_return_root_oauth_provider_with_jwks_uri,
93-
{with_default_oauth_provider_B, [], [
94-
get_oauth_provider_should_return_oauth_provider_B_with_jwks_uri
95-
]
96-
}
97-
]
98-
}
99-
]
100-
},
101-
{with_oauth_providers_A_with_jwks_uri, [], [
102-
get_oauth_provider_root_with_jwks_uri_should_fail,
103-
{with_default_oauth_provider_A, [], [
104-
get_oauth_provider_should_return_oauth_provider_A_with_jwks_uri
105-
]
106-
}
107-
]
108-
},
109-
{with_issuer, [], [
110-
get_oauth_provider_should_return_root_oauth_provider_with_all_discovered_endpoints,
111-
{with_oauth_providers_A_with_issuer, [], [
112-
get_oauth_provider_should_return_root_oauth_provider_with_all_discovered_endpoints,
113-
{with_default_oauth_provider_A, [], [
114-
get_oauth_provider_should_return_oauth_provider_A_with_all_discovered_endpoints
115-
]
116-
}
117-
]
118-
},
119-
{with_oauth_providers_A_B_with_issuer, [], [
120-
get_oauth_provider_should_return_root_oauth_provider_with_all_discovered_endpoints,
121-
{with_default_oauth_provider_B, [], [
122-
get_oauth_provider_should_return_oauth_provider_B_with_all_discovered_endpoints
123-
]
124-
}
125-
]
126-
}
127-
]
128-
}
129-
]
130-
},
131-
{without_resource_server_id, [], [
132-
get_default_resource_server_id_returns_error,
133-
get_allowed_resource_server_ids_returns_empty_list
134-
]
135-
},
136-
{with_resource_servers, [], [
137-
get_allowed_resource_server_ids_returns_resource_servers_ids,
138-
find_audience_in_resource_server_ids_found_one_resource_servers,
139-
index_resource_servers_by_id_else_by_key,
140-
is_verify_aud_for_resource_two_returns_true,
141-
{with_verify_aud_false_for_resource_two, [], [
87+
]},
88+
get_oauth_provider_should_return_root_oauth_provider_with_jwks_uri,
89+
{with_default_oauth_provider_B, [], [
90+
get_oauth_provider_should_return_oauth_provider_B_with_jwks_uri
91+
]}
92+
]}
93+
]},
94+
{with_oauth_providers_A_with_jwks_uri, [], [
95+
get_oauth_provider_root_with_jwks_uri_should_fail,
96+
{with_default_oauth_provider_A, [], [
97+
get_oauth_provider_should_return_oauth_provider_A_with_jwks_uri
98+
]}
99+
]},
100+
{with_issuer, [], [
101+
get_oauth_provider_should_return_root_oauth_provider_with_all_discovered_endpoints,
102+
{with_oauth_providers_A_with_issuer, [], [
103+
get_oauth_provider_should_return_root_oauth_provider_with_all_discovered_endpoints,
104+
{with_default_oauth_provider_A, [], [
105+
get_oauth_provider_should_return_oauth_provider_A_with_all_discovered_endpoints
106+
]}
107+
]},
108+
{with_oauth_providers_A_B_with_issuer, [], [
109+
get_oauth_provider_should_return_root_oauth_provider_with_all_discovered_endpoints,
110+
{with_default_oauth_provider_B, [], [
111+
get_oauth_provider_should_return_oauth_provider_B_with_all_discovered_endpoints
112+
]}
113+
]}
114+
]}
115+
]},
116+
{without_resource_server_id, [], [
117+
get_default_resource_server_id_returns_error,
118+
get_allowed_resource_server_ids_returns_empty_list
119+
]},
120+
{with_resource_servers, [], [
121+
get_allowed_resource_server_ids_returns_resource_servers_ids,
122+
find_audience_in_resource_server_ids_found_one_resource_servers,
123+
index_resource_servers_by_id_else_by_key,
124+
is_verify_aud_for_resource_two_returns_true,
125+
{with_verify_aud_false_for_resource_two, [], [
142126
is_verify_aud_for_resource_one_returns_true,
143127
is_verify_aud_for_resource_two_returns_false
144-
]},
145-
{with_jwks_url, [], [
146-
get_oauth_provider_for_both_resources_should_return_root_oauth_provider,
147-
{with_oauth_providers_A_with_jwks_uri, [], [
148-
{with_default_oauth_provider_A, [], [
149-
get_oauth_provider_for_both_resources_should_return_oauth_provider_A
150-
]
151-
}
152-
]
153-
},
154-
{with_different_oauth_provider_for_each_resource, [], [
155-
{with_oauth_providers_A_B_with_jwks_uri, [], [
128+
]},
129+
{with_jwks_url, [], [
130+
get_oauth_provider_for_both_resources_should_return_root_oauth_provider,
131+
{with_oauth_providers_A_with_jwks_uri, [], [
132+
{with_default_oauth_provider_A, [], [
133+
get_oauth_provider_for_both_resources_should_return_oauth_provider_A
134+
]}
135+
]},
136+
{with_different_oauth_provider_for_each_resource, [], [
137+
{with_oauth_providers_A_B_with_jwks_uri, [], [
156138
get_oauth_provider_for_resource_one_should_return_oauth_provider_A,
157139
get_oauth_provider_for_resource_two_should_return_oauth_provider_B
158-
]}
159-
]
160-
}
161-
]
162-
}
163-
]
164-
},
165-
{with_resource_servers_and_resource_server_id, [], [
166-
get_allowed_resource_server_ids_returns_all_resource_servers_ids,
167-
find_audience_in_resource_server_ids_found_resource_server_id,
168-
find_audience_in_resource_server_ids_found_one_resource_servers,
169-
find_audience_in_resource_server_ids_using_binary_audience
170-
171-
]
172-
},
173-
174-
{inheritance_group, [], [
175-
get_additional_scopes_key,
176-
get_additional_scopes_key_when_not_defined,
177-
is_verify_aud,
178-
is_verify_aud_when_is_false,
179-
get_default_preferred_username_claims,
180-
get_preferred_username_claims,
181-
get_scope_prefix,
182-
get_scope_prefix_when_not_defined,
183-
get_resource_server_type,
184-
get_resource_server_type_when_not_defined,
185-
has_scope_aliases,
186-
has_scope_aliases_when_not_defined,
187-
get_scope_aliases
188-
]
189-
}
190-
191-
].
140+
]}
141+
]}
142+
]}
143+
]},
144+
{with_resource_servers_and_resource_server_id, [], [
145+
get_allowed_resource_server_ids_returns_all_resource_servers_ids,
146+
find_audience_in_resource_server_ids_found_resource_server_id,
147+
find_audience_in_resource_server_ids_found_one_resource_servers,
148+
find_audience_in_resource_server_ids_using_binary_audience
149+
]},
150+
151+
{inheritance_group, [], [
152+
get_additional_scopes_key,
153+
get_additional_scopes_key_when_not_defined,
154+
is_verify_aud,
155+
is_verify_aud_when_is_false,
156+
get_default_preferred_username_claims,
157+
get_preferred_username_claims,
158+
get_scope_prefix,
159+
get_scope_prefix_when_not_defined,
160+
get_resource_server_type,
161+
get_resource_server_type_when_not_defined,
162+
has_scope_aliases,
163+
has_scope_aliases_when_not_defined,
164+
get_scope_aliases
165+
]}
166+
].
192167

193168
init_per_suite(Config) ->
194169
rabbit_ct_helpers:log_environment(),
@@ -208,6 +183,16 @@ init_per_group(with_default_key, Config) ->
208183
application:set_env(rabbitmq_auth_backend_oauth2, key_config,
209184
proplists:delete(default_key, KeyConfig) ++ [{default_key,<<"default-key">>}]),
210185
Config;
186+
init_per_group(with_root_static_signing_keys, Config) ->
187+
KeyConfig = application:get_env(rabbitmq_auth_backend_oauth2, key_config, []),
188+
SigningKeys = #{
189+
<<"mykey-root-1">> => <<"some key root-1">>,
190+
<<"mykey-root-2">> => <<"some key root-2">>
191+
},
192+
application:set_env(rabbitmq_auth_backend_oauth2, key_config,
193+
proplists:delete(default_key, KeyConfig) ++ [{signing_keys,SigningKeys}]),
194+
Config;
195+
211196
init_per_group(with_default_key_for_provider_A, Config) ->
212197
OAuthProviders = application:get_env(rabbitmq_auth_backend_oauth2, oauth_providers, #{}),
213198
OAuthProvider = maps:get(<<"A">>, OAuthProviders, []),
@@ -401,6 +386,11 @@ init_per_group(_any, Config) ->
401386

402387
end_per_group(with_rabbitmq_node, Config) ->
403388
rabbit_ct_helpers:run_steps(Config, rabbit_ct_broker_helpers:teardown_steps());
389+
end_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)),
393+
Config;
404394

405395
end_per_group(with_resource_server_id, Config) ->
406396
application:unset_env(rabbitmq_auth_backend_oauth2, resource_server_id),
@@ -596,6 +586,21 @@ add_signing_keys_for_specific_oauth_provider(Config) ->
596586
?assertEqual(<<"some key 3-1">>,
597587
call_get_signing_key(Config, [<<"mykey-3-1">> , <<"my-oauth-provider-3">>])).
598588

589+
replace_merge_root_static_keys_with_newly_added_keys(Config) ->
590+
NewKeys = #{<<"key-2">> => <<"some key 2">>, <<"key-3">> => <<"some key 3">>},
591+
call_replace_signing_keys(Config, [NewKeys]),
592+
#{ <<"mykey-root-1">> := <<"some key root-1">>,
593+
<<"mykey-root-2">> := <<"some key root-2">>,
594+
<<"key-2">> := <<"some key 2">>,
595+
<<"key-3">> := <<"some key 3">>
596+
} = call_get_signing_keys(Config).
597+
replace_override_root_static_keys_with_newly_added_keys(Config) ->
598+
NewKeys = #{<<"mykey-root-1">> => <<"new key root-1">>, <<"key-3">> => <<"some key 3">>},
599+
call_replace_signing_keys(Config, [NewKeys]),
600+
#{ <<"mykey-root-1">> := <<"new key root-1">>,
601+
<<"mykey-root-2">> := <<"some key root-2">>,
602+
<<"key-3">> := <<"some key 3">>
603+
} = call_get_signing_keys(Config).
599604
replace_signing_keys_for_root_oauth_provider(Config) ->
600605
call_add_signing_key(Config, [<<"mykey-1">>, <<"some key 1">>]),
601606
NewKeys = #{<<"key-2">> => <<"some key 2">>, <<"key-3">> => <<"some key 3">>},

0 commit comments

Comments
 (0)