@@ -1997,6 +1997,11 @@ class TestWWWAuthenticate:
19971997 "scope" ,
19981998 "admin:write resource:read" ,
19991999 ),
2000+ (
2001+ 'Bearer error_scope="decoy", scope="read write"' ,
2002+ "scope" ,
2003+ "read write" ,
2004+ ),
20002005 (
20012006 'Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", '
20022007 'error="insufficient_scope"' ,
@@ -2047,6 +2052,12 @@ def test_extract_field_from_www_auth_valid_cases(
20472052 # Header without requested field
20482053 ('Bearer realm="api", error="insufficient_scope"' , "scope" , "no scope parameter" ),
20492054 ('Bearer realm="api", scope="read write"' , "resource_metadata" , "no resource_metadata parameter" ),
2055+ ('Bearer custom_scope="leaked"' , "scope" , "substring auth-param should not match scope" ),
2056+ (
2057+ 'Bearer x_resource_metadata="https://decoy.example.com"' ,
2058+ "resource_metadata" ,
2059+ "substring auth-param should not match resource_metadata" ,
2060+ ),
20502061 # Malformed field (empty value)
20512062 ("Bearer scope=" , "scope" , "malformed scope parameter" ),
20522063 ("Bearer resource_metadata=" , "resource_metadata" , "malformed resource_metadata parameter" ),
0 commit comments