@@ -49,10 +49,13 @@ groups() ->
4949 cannot_introspect_due_to_missing_configuration ,
5050 {https , [], [
5151 {with_introspection_basic_client_credentials , [], [
52- can_introspect_token
52+ can_introspect_token
5353 ]},
5454 {with_introspection_request_param_client_credentials , [], [
5555 can_introspect_token
56+ ]},
57+ {introspection_endpoint_returns_non_active_tokens , [], [
58+ introspected_token_is_not_active
5659 ]}
5760 ]}
5861 ]},
@@ -215,6 +218,25 @@ init_per_group(with_introspection_basic_client_credentials, Config) ->
215218 with_introspection_basic_client_credentials , Config )}
216219
217220 ]} | Config ];
221+ init_per_group (introspection_endpoint_returns_non_active_tokens , Config ) ->
222+ application :set_env (rabbitmq_auth_backend_oauth2 , introspection_client_id ,
223+ " some-client-id" ),
224+ application :set_env (rabbitmq_auth_backend_oauth2 , introspection_client_secret ,
225+ " some-client-secret" ),
226+ application :set_env (rabbitmq_auth_backend_oauth2 , introspection_client_auth_method ,
227+ basic ),
228+ [{introspected_token_is_not_active , [
229+ {introspection_endpoint , build_http_mock_behaviour (
230+ build_introspection_token_request (? MOCK_OPAQUE_TOKEN , basic , <<" some-client-id" >>,
231+ <<" some-client-secret" >>),
232+ build_http_200_introspection_token_response ([
233+ {active , false },
234+ {scope , <<" openid" >>}
235+ ]))},
236+ {get_openid_configuration , get_openid_configuration_http_expectation (
237+ with_introspection_basic_client_credentials , Config )}
238+
239+ ]} | Config ];
218240
219241init_per_group (with_introspection_request_param_client_credentials , Config ) ->
220242 application :set_env (rabbitmq_auth_backend_oauth2 , introspection_client_id ,
@@ -723,6 +745,9 @@ cannot_introspect_due_to_missing_configuration(_Config)->
723745can_introspect_token (_Config ) ->
724746 {ok , _ } = oauth2_client :introspect_token (? MOCK_OPAQUE_TOKEN ).
725747
748+ introspected_token_is_not_active (_Config ) ->
749+ {error , introspected_token_not_valid } = oauth2_client :introspect_token (? MOCK_OPAQUE_TOKEN ).
750+
726751% %% HELPERS
727752
728753build_issuer (Scheme ) ->
@@ -959,13 +984,15 @@ build_introspection_token_request(Token, request_param, ClientId, ClientSecret)
959984 {? REQUEST_CLIENT_SECRET , ClientSecret }
960985 ]).
961986build_http_200_introspection_token_response () ->
987+ build_http_200_introspection_token_response ([
988+ {active , true },
989+ {scope , <<" openid" >>}
990+ ]).
991+ build_http_200_introspection_token_response (PayloodList ) ->
962992 [
963993 {code , 200 },
964994 {content_type , ? CONTENT_JSON },
965- {payload , [
966- {active , true },
967- {scope , <<" openid" >>}
968- ]}
995+ {payload , PayloodList }
969996 ].
970997auth_server_error_when_access_token_request_expectation () ->
971998 build_http_mock_behaviour (build_http_request (
0 commit comments