@@ -244,10 +244,16 @@ describe('DPoP server validation scenario', () => {
244244 )
245245 ) . toBe ( true ) ;
246246 expect (
247- byId ( checks , 'sep-1932-server-validate-proof' ) . find (
247+ byId ( checks , 'sep-1932-server-validate-proof' ) . some (
248248 ( c ) => c . name === 'RejectsBearerScheme'
249- ) ?. status
250- ) . toBe ( 'SUCCESS' ) ;
249+ )
250+ ) . toBe ( false ) ;
251+ expect (
252+ byId ( checks , 'sep-1932-server-reject-bearer-downgrade' ) . map ( ( c ) => [
253+ c . name ,
254+ c . status
255+ ] )
256+ ) . toEqual ( [ [ 'RejectsBearerScheme' , 'SUCCESS' ] ] ) ;
251257 expect (
252258 byId ( checks , 'sep-1932-server-iat-window' ) . every (
253259 ( c ) => c . status === 'SUCCESS'
@@ -282,6 +288,12 @@ describe('DPoP server validation scenario', () => {
282288 ) ;
283289 expect ( rejects . length ) . toBeGreaterThan ( 0 ) ;
284290 expect ( rejects . every ( ( c ) => c . status === 'FAILURE' ) ) . toBe ( true ) ;
291+ expect (
292+ byId ( checks , 'sep-1932-server-reject-bearer-downgrade' ) . map ( ( c ) => [
293+ c . name ,
294+ c . status
295+ ] )
296+ ) . toEqual ( [ [ 'RejectsBearerScheme' , 'FAILURE' ] ] ) ;
285297
286298 expect ( byId ( checks , 'sep-1932-server-reject-401' ) [ 0 ] . status ) . toBe (
287299 'FAILURE'
@@ -319,6 +331,7 @@ describe('DPoP server validation scenario', () => {
319331 ...byId ( checks , 'sep-1932-server-validate-proof' ) . filter ( ( c ) =>
320332 c . name . startsWith ( 'Rejects' )
321333 ) ,
334+ ...byId ( checks , 'sep-1932-server-reject-bearer-downgrade' ) ,
322335 ...byId ( checks , 'sep-1932-server-iat-window' ) ,
323336 ...byId ( checks , 'sep-1932-asymmetric-alg-only' ) ,
324337 ...byId ( checks , 'sep-1932-server-audience-validation' ) ,
@@ -365,6 +378,7 @@ describe('DPoP server validation scenario', () => {
365378 ...byId ( checks , 'sep-1932-server-validate-proof' ) . filter ( ( c ) =>
366379 c . name . startsWith ( 'Rejects' )
367380 ) ,
381+ ...byId ( checks , 'sep-1932-server-reject-bearer-downgrade' ) ,
368382 ...byId ( checks , 'sep-1932-server-iat-window' ) ,
369383 ...byId ( checks , 'sep-1932-asymmetric-alg-only' ) ,
370384 ...byId ( checks , 'sep-1932-server-audience-validation' ) ,
@@ -402,16 +416,14 @@ describe('DPoP server validation scenario', () => {
402416 testContext ( url ( ports . bearerReject ) )
403417 ) ;
404418
405- const bearer = byId ( checks , 'sep-1932-server-validate-proof' ) . find (
406- ( c ) => c . name === 'RejectsBearerScheme'
407- ) ;
408- expect ( bearer ?. status ) . toBe ( 'FAILURE' ) ;
419+ const bearer = byId ( checks , 'sep-1932-server-reject-bearer-downgrade' ) ;
420+ expect ( bearer . map ( ( c ) => [ c . name , c . status ] ) ) . toEqual ( [
421+ [ 'RejectsBearerScheme' , 'FAILURE' ]
422+ ] ) ;
409423
410- // This fixture only mishandles Bearer-scheme presentation — every other
424+ // This fixture only mishandles Bearer-scheme presentation — every
411425 // validate-proof probe still behaves as on the compliant server.
412- const others = byId ( checks , 'sep-1932-server-validate-proof' ) . filter (
413- ( c ) => c . name !== 'RejectsBearerScheme'
414- ) ;
426+ const others = byId ( checks , 'sep-1932-server-validate-proof' ) ;
415427 expect ( others . length ) . toBeGreaterThan ( 0 ) ;
416428 expect ( others . every ( ( c ) => c . status === 'SUCCESS' ) ) . toBe ( true ) ;
417429 } , 30000 ) ;
@@ -421,19 +433,17 @@ describe('DPoP server validation scenario', () => {
421433 testContext ( url ( ports . bearerChallenge ) )
422434 ) ;
423435
424- const bearer = byId ( checks , 'sep-1932-server-validate-proof' ) . find (
425- ( c ) => c . name === 'RejectsBearerScheme'
426- ) ;
427- expect ( bearer ?. status ) . toBe ( 'SUCCESS' ) ;
436+ const bearer = byId ( checks , 'sep-1932-server-reject-bearer-downgrade' ) ;
437+ expect ( bearer . map ( ( c ) => [ c . name , c . status ] ) ) . toEqual ( [
438+ [ 'RejectsBearerScheme' , 'SUCCESS' ]
439+ ] ) ;
428440 // The compliant server challenges with DPoP. This fixture must actually
429441 // send a Bearer challenge, or SUCCESS would only re-prove the DPoP arm.
430- expect ( bearer ?. details ?. wwwAuthenticate ) . toBe (
442+ expect ( bearer [ 0 ] ?. details ?. wwwAuthenticate ) . toBe (
431443 'Bearer error="invalid_token"'
432444 ) ;
433445
434- const others = byId ( checks , 'sep-1932-server-validate-proof' ) . filter (
435- ( c ) => c . name !== 'RejectsBearerScheme'
436- ) ;
446+ const others = byId ( checks , 'sep-1932-server-validate-proof' ) ;
437447 expect ( others . length ) . toBeGreaterThan ( 0 ) ;
438448 expect ( others . every ( ( c ) => c . status === 'SUCCESS' ) ) . toBe ( true ) ;
439449 } , 30000 ) ;
0 commit comments