Skip to content

Commit da7dcf2

Browse files
authored
Merge pull request #2459 from aboutcode-org/2456-fix-swagger
Use X-User-Agent for Swagger API requests
2 parents 81346c5 + f56a9f0 commit da7dcf2

4 files changed

Lines changed: 15 additions & 6 deletions

File tree

‎vulnerabilities/api_v3.py‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,11 @@ class PackageV3ViewSet(viewsets.GenericViewSet):
275275
filter_backends = [filters.DjangoFilterBackend]
276276
throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle]
277277

278-
@extend_schema(request=PackageQuerySerializer)
278+
@extend_schema(
279+
operation_id="v3_packages_retrieve",
280+
request=PackageQuerySerializer,
281+
responses={200: PackageV3Serializer(many=True)},
282+
)
279283
def create(self, request, *args, **kwargs):
280284
serializer = PackageQuerySerializer(data=request.data)
281285
serializer.is_valid(raise_exception=True)
@@ -411,7 +415,11 @@ class AdvisoryV3ViewSet(viewsets.GenericViewSet):
411415
filter_backends = [filters.DjangoFilterBackend]
412416
throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle]
413417

414-
@extend_schema(request=AdvisoryQuerySerializer)
418+
@extend_schema(
419+
operation_id="v3_advisories_retrieve",
420+
request=AdvisoryQuerySerializer,
421+
responses={200: AdvisoryV3Serializer(many=True)},
422+
)
415423
def create(self, request, *args, **kwargs):
416424
serializer = AdvisoryQuerySerializer(data=request.data)
417425
serializer.is_valid(raise_exception=True)

‎vulnerabilities/middleware/vcio_user_agent.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ def __call__(self, request):
2424
("/api/docs/", "/api/schema/")
2525
):
2626
user_agent = request.headers.get("User-Agent", "")
27+
x_user_agent = request.headers.get("X-User-Agent", "")
2728
docs_url = request.build_absolute_uri("/api/docs/")
28-
if user_agent != settings.VCIO_USER_AGENT:
29+
if settings.VCIO_USER_AGENT not in [user_agent, x_user_agent]:
2930
return JsonResponse(
3031
{
3132
"detail": (

‎vulnerabilities/templates/drf_spectacular/swagger_ui.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
swaggerSettings.dom_id = "#swagger-ui";
3434

3535
swaggerSettings.requestInterceptor = (request) => {
36-
const userAgent = swaggerSettings.userAgent || "VCIO_API_AGENT";
37-
request.headers['User-Agent'] = userAgent;
36+
const xUserAgent = swaggerSettings.xUserAgent || "VCIO_API_AGENT";
37+
request.headers['X-User-Agent'] = xUserAgent;
3838
return request;
3939
};
4040

‎vulnerablecode/settings.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@
339339
"defaultModelsExpandDepth": 1,
340340
"displayRequestDuration": True,
341341
"docExpansion": "list",
342-
"userAgent": VCIO_USER_AGENT,
342+
"xUserAgent": VCIO_USER_AGENT,
343343
},
344344
"AUTHENTICATION_WHITELIST": [
345345
"rest_framework.authentication.TokenAuthentication",

0 commit comments

Comments
 (0)