@@ -52,10 +52,16 @@ groups() ->
5252 [
5353 {run_with_broker , [], [
5454 {verify_introspection_endpoint , [], [
55- % introspect_opaque_token_returns_active_jwt_token,
56- % introspect_opaque_token_returns_inactive_jwt_token,
57- % introspect_opaque_token_returns_401_from_auth_server,
58- oauth_bootstrap
55+ introspect_opaque_token_returns_active_jwt_token ,
56+ introspect_opaque_token_returns_inactive_jwt_token ,
57+ introspect_opaque_token_returns_401_from_auth_server ,
58+ {verify_oauth_bootstrap_js , [], [
59+ oauth_bootstrap_with_jwt_token_in_header ,
60+ oauth_bootstrap_with_jwt_token_in_cookie ,
61+ oauth_bootstrap_with_opaque_token_in_cookie ,
62+ oauth_bootstrap_cannot_introspect_opaque_token ,
63+ oauth_bootstrap_without_any_token
64+ ]}
5965 ]}
6066 ]},
6167 {verify_multi_resource_and_provider , [], [
@@ -560,6 +566,7 @@ init_per_group(verify_introspection_endpoint, Config) ->
560566 [ {authorization_server_url , AuthorizationServerURL },
561567 {authorization_server_ca_cert , filename :join ([CertsDir , " testca" , " cacert.pem" ])} | Config ];
562568
569+
563570init_per_group (_ , Config ) ->
564571 Config .
565572
@@ -698,50 +705,63 @@ end_per_group(_, Config) ->
698705
699706init_per_testcase (Testcase , Config ) when Testcase =:= introspect_opaque_token_returns_active_jwt_token orelse
700707 Testcase =:= introspect_opaque_token_returns_inactive_jwt_token orelse
701- Testcase =:= introspect_opaque_token_returns_401_from_auth_server orelse
702- Testcase =:= oauth_bootstrap ->
708+ Testcase =:= introspect_opaque_token_returns_401_from_auth_server ->
709+
710+ setup_introspection_configuration (Config ),
711+ rabbit_ct_helpers :testcase_started (Config , Testcase );
712+
713+ init_per_testcase (Testcase , Config ) when Testcase =:= oauth_bootstrap_with_jwt_token_in_header orelse
714+ Testcase =:= oauth_bootstrap_with_jwt_token_in_cookie orelse
715+ Testcase =:= oauth_bootstrap_with_opaque_token_in_cookie orelse
716+ Testcase =:= oauth_bootstrap_cannot_introspect_opaque_token orelse
717+ Testcase =:= oauth_bootstrap_without_any_token ->
718+ rabbit_ct_helpers :testcase_started (
719+ setup_introspection_configuration (setup_oauth2_management_configuration (Config )), Testcase );
703720
721+ init_per_testcase (Testcase , Config ) ->
722+ Config .
723+
724+ setup_introspection_configuration (Config ) ->
704725 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
705726 [rabbitmq_auth_backend_oauth2 , introspection_endpoint ,
706727 ? config (authorization_server_url , Config )]),
707728 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
708729 [rabbitmq_auth_backend_oauth2 , introspection_client_id , " some-id" ]),
709730 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
710731 [rabbitmq_auth_backend_oauth2 , introspection_client_secret , " some-secret" ]),
711- CaCertFile = ? config (authorization_server_ca_cert , Config ),
712- ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
713- [rabbitmq_management , oauth_enabled , true ]),
714- ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
715- [rabbitmq_auth_backend_oauth2 , resource_server_id , " rabbitmq" ]),
716- ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
717- [rabbitmq_management , oauth_client_id , " rabbit_user" ]),
718- ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
719- [rabbitmq_management , oauth_client_secret , " rabbit_secret" ]),
720- ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
721- [rabbitmq_management , oauth_provider_url , " http://localhost:8080/uaa" ]),
732+ CaCertFile = ? config (authorization_server_ca_cert , Config ),
722733
723734 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
724735 [rabbitmq_auth_backend_oauth2 , key_config , [{cacertfile , CaCertFile }]]),
725736
726737 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
727738 [rabbitmq_auth_backend_oauth2 , opaque_token_signing_key ,
728739 [{id , <<" rabbit_key" >>}, {type , hs256 }, {key , <<" some-key" >>}]]),
729-
730- rabbit_ct_helpers :testcase_started (Config , Testcase );
731-
732- init_per_testcase (Testcase , Config ) ->
733740 Config .
734-
735- end_per_testcase (Testcase , Config ) when Testcase =:= introspect_opaque_token_returns_active_jwt_token orelse
736- Testcase =:= introspect_opaque_token_returns_inactive_jwt_token orelse
737- Testcase =:= introspect_opaque_token_returns_401_from_auth_server orelse
738- Testcase =:= oauth_bootstrap ->
741+
742+ teardown_introspection_configuration (Config ) ->
739743 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , unset_env ,
740744 [rabbitmq_auth_backend_oauth2 , introspection_endpoint ]),
741745 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , unset_env ,
742746 [rabbitmq_auth_backend_oauth2 , introspection_client_id ]),
743747 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , unset_env ,
744748 [rabbitmq_auth_backend_oauth2 , introspection_client_secret ]),
749+ Config .
750+
751+ setup_oauth2_management_configuration (Config ) ->
752+ ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
753+ [rabbitmq_management , oauth_enabled , true ]),
754+ ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
755+ [rabbitmq_auth_backend_oauth2 , resource_server_id , " rabbitmq" ]),
756+ ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
757+ [rabbitmq_management , oauth_client_id , " rabbit_user" ]),
758+ ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
759+ [rabbitmq_management , oauth_client_secret , " rabbit_secret" ]),
760+ ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , set_env ,
761+ [rabbitmq_management , oauth_provider_url , " http://localhost:8080/uaa" ]),
762+ Config .
763+
764+ teardown_oauth2_management_configuration (Config ) ->
745765 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , unset_env ,
746766 [rabbitmq_management , oauth_enabled ]),
747767 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , unset_env ,
@@ -752,7 +772,19 @@ end_per_testcase(Testcase, Config) when Testcase =:= introspect_opaque_token_ret
752772 [rabbitmq_management , oauth_client_secret ]),
753773 ok = rabbit_ct_broker_helpers :rpc (Config , 0 , application , unset_env ,
754774 [rabbitmq_management , oauth_provider_url ]),
755- Config ;
775+ Config .
776+
777+ end_per_testcase (Testcase , Config ) when Testcase =:= introspect_opaque_token_returns_active_jwt_token orelse
778+ Testcase =:= introspect_opaque_token_returns_inactive_jwt_token orelse
779+ Testcase =:= introspect_opaque_token_returns_401_from_auth_server ->
780+ teardown_introspection_configuration (Config );
781+
782+ end_per_testcase (Testcase , Config ) when Testcase =:= oauth_bootstrap_with_jwt_token_in_header orelse
783+ Testcase =:= oauth_bootstrap_with_jwt_token_in_cookie orelse
784+ Testcase =:= oauth_bootstrap_with_opaque_token_in_cookie orelse
785+ Testcase =:= oauth_bootstrap_cannot_introspect_opaque_token orelse
786+ Testcase =:= oauth_bootstrap_without_any_token ->
787+ teardown_introspection_configuration (teardown_oauth2_management_configuration (Config ));
756788
757789end_per_testcase (Testcase , Config ) ->
758790 Config .
@@ -777,7 +809,7 @@ finish_init(Group, Config) ->
777809 inets :start (),
778810 NodeConf = [{rmq_nodename_suffix , Group }],
779811 rabbit_ct_helpers :set_config (Config , NodeConf ).
780-
812+
781813
782814% % -------------------------------------------------------------------
783815% % Test cases.
@@ -995,7 +1027,27 @@ introspect_opaque_token_returns_401_from_auth_server(Config) ->
9951027 {ok , {{_HTTP , 401 , _ }, _Headers , _ResBody }} = req (Config , 0 , post , " /auth/introspect" , [
9961028 {" authorization" , " bearer 401" }], []).
9971029
998- oauth_bootstrap (Config ) ->
1030+ oauth_bootstrap_with_jwt_token_in_header (Config ) ->
1031+ URI = rabbit_mgmt_test_util :uri_base_from (Config , 0 , " " ) ++ " js/oidc-oauth/bootstrap.js" ,
1032+ Result = httpc :request (get , {URI , [{" Authorization" , " bearer active" }]}, [], []),
1033+ ct :log (" response idp: ~p ~p " , [URI , Result ]).
1034+
1035+ oauth_bootstrap_with_jwt_token_in_cookie (Config ) ->
1036+ URI = rabbit_mgmt_test_util :uri_base_from (Config , 0 , " " ) ++ " js/oidc-oauth/bootstrap.js" ,
1037+ Result = httpc :request (get , {URI , [{" Authorization" , " bearer active" }]}, [], []),
1038+ ct :log (" response idp: ~p ~p " , [URI , Result ]).
1039+
1040+ oauth_bootstrap_with_opaque_token_in_cookie (Config ) ->
1041+ URI = rabbit_mgmt_test_util :uri_base_from (Config , 0 , " " ) ++ " js/oidc-oauth/bootstrap.js" ,
1042+ Result = httpc :request (get , {URI , [{" Authorization" , " bearer active" }]}, [], []),
1043+ ct :log (" response idp: ~p ~p " , [URI , Result ]).
1044+
1045+ oauth_bootstrap_cannot_introspect_opaque_token (Config ) ->
1046+ URI = rabbit_mgmt_test_util :uri_base_from (Config , 0 , " " ) ++ " js/oidc-oauth/bootstrap.js" ,
1047+ Result = httpc :request (get , {URI , [{" Authorization" , " bearer active" }]}, [], []),
1048+ ct :log (" response idp: ~p ~p " , [URI , Result ]).
1049+
1050+ oauth_bootstrap_without_any_token (Config ) ->
9991051 URI = rabbit_mgmt_test_util :uri_base_from (Config , 0 , " " ) ++ " js/oidc-oauth/bootstrap.js" ,
10001052 Result = httpc :request (get , {URI , [{" Authorization" , " bearer active" }]}, [], []),
10011053 ct :log (" response idp: ~p ~p " , [URI , Result ]).
0 commit comments