Spaces:
Running
Running
Report required scope in authorization failures
Browse files
app/security/middleware.py
CHANGED
|
@@ -52,6 +52,7 @@ class APIKeyAuthenticationMiddleware(BaseHTTPMiddleware):
|
|
| 52 |
context_token = None
|
| 53 |
http_auth_token = None
|
| 54 |
response_code = 500
|
|
|
|
| 55 |
bytes_uploaded = self._content_length(request.headers.get("content-length"))
|
| 56 |
bytes_downloaded = 0
|
| 57 |
try:
|
|
@@ -140,7 +141,8 @@ class APIKeyAuthenticationMiddleware(BaseHTTPMiddleware):
|
|
| 140 |
)
|
| 141 |
except ForbiddenError:
|
| 142 |
response_code = 403
|
| 143 |
-
|
|
|
|
| 144 |
bytes_downloaded = len(response.body)
|
| 145 |
return response
|
| 146 |
except RateLimitError as exc:
|
|
|
|
| 52 |
context_token = None
|
| 53 |
http_auth_token = None
|
| 54 |
response_code = 500
|
| 55 |
+
required_scope: str | None = None
|
| 56 |
bytes_uploaded = self._content_length(request.headers.get("content-length"))
|
| 57 |
bytes_downloaded = 0
|
| 58 |
try:
|
|
|
|
| 141 |
)
|
| 142 |
except ForbiddenError:
|
| 143 |
response_code = 403
|
| 144 |
+
detail = f"Missing required scope: {required_scope}." if required_scope else "Workspace identity or membership authorization was denied."
|
| 145 |
+
response = self._error(403, "Forbidden", detail, request)
|
| 146 |
bytes_downloaded = len(response.body)
|
| 147 |
return response
|
| 148 |
except RateLimitError as exc:
|