1515 */
1616package io .serverlessworkflow .impl .executors .http .auth ;
1717
18- import static org .junit .jupiter .api .Assertions .assertEquals ;
19- import static org .junit .jupiter .api .Assertions .assertFalse ;
20- import static org .junit .jupiter .api .Assertions .assertThrows ;
21- import static org .junit .jupiter .api .Assertions .assertTrue ;
2218import static org .mockito .ArgumentMatchers .any ;
2319import static org .mockito .Mockito .RETURNS_DEEP_STUBS ;
2420import static org .mockito .Mockito .mock ;
2521import static org .mockito .Mockito .when ;
2622
2723import io .serverlessworkflow .impl .TaskContext ;
2824import io .serverlessworkflow .impl .WorkflowContext ;
29- import io .serverlessworkflow .impl .WorkflowException ;
3025import io .serverlessworkflow .impl .WorkflowValueResolver ;
3126import io .serverlessworkflow .impl .auth .AccessTokenProvider ;
3227import io .serverlessworkflow .impl .auth .HttpRequestInfo ;
3328import io .serverlessworkflow .impl .auth .JWTConverter ;
34- import io .serverlessworkflow .impl .auth .TokenIntrospection ;
3529import java .util .List ;
3630import java .util .Map ;
3731import java .util .Optional ;
38- import okhttp3 .mockwebserver .MockResponse ;
3932import okhttp3 .mockwebserver .MockWebServer ;
40- import okhttp3 .mockwebserver .RecordedRequest ;
4133import org .junit .jupiter .api .AfterEach ;
4234import org .junit .jupiter .api .BeforeEach ;
43- import org .junit .jupiter .api .Test ;
4435
4536class JaxRSAccessTokenProviderTest {
4637
@@ -63,68 +54,6 @@ void tearDown() throws Exception {
6354 server .shutdown ();
6455 }
6556
66- @ Test
67- void introspectSendsClientAuthAndTokenAndParsesActive () throws Exception {
68- server .enqueue (
69- new MockResponse ()
70- .setHeader ("Content-Type" , "application/json" )
71- .setBody ("{\" active\" : true, \" scope\" : \" read\" }" ));
72-
73- TokenIntrospection result =
74- provider ().introspect (workflow , task , null , "the-access-token" , "access_token" );
75-
76- assertTrue (result .active ());
77- assertEquals ("read" , result .claims ().get ("scope" ));
78-
79- RecordedRequest request = server .takeRequest ();
80- assertEquals ("POST" , request .getMethod ());
81- assertEquals ("/oauth2/introspect" , request .getPath ());
82- assertEquals ("application/x-www-form-urlencoded" , request .getHeader ("Content-Type" ));
83- String body = request .getBody ().readUtf8 ();
84- assertTrue (body .contains ("token=the-access-token" ));
85- assertTrue (body .contains ("token_type_hint=access_token" ));
86- assertTrue (body .contains ("client_id=serverless-workflow" ));
87- assertTrue (body .contains ("client_secret=top-secret" ));
88- }
89-
90- @ Test
91- void introspectReturnsInactiveForInactiveToken () throws Exception {
92- server .enqueue (
93- new MockResponse ()
94- .setHeader ("Content-Type" , "application/json" )
95- .setBody ("{\" active\" : false}" ));
96-
97- TokenIntrospection result = provider ().introspect (workflow , task , null , "stale-token" , null );
98-
99- assertFalse (result .active ());
100- RecordedRequest request = server .takeRequest ();
101- assertFalse (request .getBody ().readUtf8 ().contains ("token_type_hint" ));
102- }
103-
104- @ Test
105- void revokeSendsClientAuthAndToken () throws Exception {
106- server .enqueue (new MockResponse ().setResponseCode (200 ));
107-
108- provider ().revoke (workflow , task , null , "the-access-token" , "access_token" );
109-
110- RecordedRequest request = server .takeRequest ();
111- assertEquals ("POST" , request .getMethod ());
112- assertEquals ("/oauth2/revoke" , request .getPath ());
113- assertEquals ("application/x-www-form-urlencoded" , request .getHeader ("Content-Type" ));
114- String body = request .getBody ().readUtf8 ();
115- assertTrue (body .contains ("token=the-access-token" ));
116- assertTrue (body .contains ("token_type_hint=access_token" ));
117- assertTrue (body .contains ("client_id=serverless-workflow" ));
118- }
119-
120- @ Test
121- void revokeRaisesWorkflowExceptionOnErrorResponse () {
122- server .enqueue (new MockResponse ().setResponseCode (400 ).setBody ("unsupported_token_type" ));
123-
124- assertThrows (
125- WorkflowException .class , () -> provider ().revoke (workflow , task , null , "bad-token" , null ));
126- }
127-
12857 private AccessTokenProvider provider () {
12958 JWTConverter converter = token -> null ;
13059 HttpRequestInfo requestInfo =
0 commit comments