Skip to content

Commit 84614a5

Browse files
authored
Solve last CORS issues about duplicated headers (#604)
Fix: Solve last CORS errors raised cause by duplication of headers returned.
1 parent 18bb56f commit 84614a5

File tree

4 files changed

+8
-29
lines changed

4 files changed

+8
-29
lines changed

src/aleph/vm/orchestrator/resources.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from pydantic import BaseModel, Field
1212

1313
from aleph.vm.conf import settings
14+
from aleph.vm.utils import cors_allow_all
1415

1516

1617
class Period(BaseModel):
@@ -92,6 +93,7 @@ def get_machine_properties() -> MachineProperties:
9293
)
9394

9495

96+
@cors_allow_all
9597
async def about_system_usage(_: web.Request):
9698
"""Public endpoint to expose information about the system usage."""
9799
period_start = datetime.now(timezone.utc).replace(second=0, microsecond=0)
@@ -116,7 +118,7 @@ async def about_system_usage(_: web.Request):
116118
),
117119
properties=get_machine_properties(),
118120
)
119-
return web.json_response(text=usage.json(exclude_none=True), headers={"Access-Control-Allow-Origin:": "*"})
121+
return web.json_response(text=usage.json(exclude_none=True))
120122

121123

122124
class Allocation(BaseModel):

src/aleph/vm/orchestrator/supervisor.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,6 @@ async def server_version_middleware(
6969
return resp
7070

7171

72-
async def allow_cors_on_endpoint(request: web.Request):
73-
"""Allow CORS on endpoints that VM owners use to control their machine."""
74-
return web.Response(
75-
status=200,
76-
headers={
77-
"Access-Control-Allow-Headers": "*",
78-
"Access-Control-Allow-Methods": "*",
79-
"Access-Control-Allow-Origin": "*",
80-
"Allow": "POST",
81-
},
82-
)
83-
84-
8572
async def http_not_found(request: web.Request):
8673
"""Return a 404 error for unknown URLs."""
8774
return web.HTTPNotFound()

src/aleph/vm/orchestrator/views/__init__.py

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,9 @@ async def status_check_fastapi(request: web.Request, vm_id: Optional[ItemHash] =
214214
# "ipv6": await status.check_ipv6(session),
215215
}
216216

217-
return web.json_response(
218-
result, status=200 if all(result.values()) else 503, headers={"Access-Control-Allow-Origin": "*"}
219-
)
217+
return web.json_response(result, status=200 if all(result.values()) else 503)
220218
except aiohttp.ServerDisconnectedError as error:
221-
return web.json_response(
222-
{"error": f"Server disconnected: {error}"}, status=503, headers={"Access-Control-Allow-Origin": "*"}
223-
)
219+
return web.json_response({"error": f"Server disconnected: {error}"}, status=503)
224220

225221

226222
@cors_allow_all
@@ -246,7 +242,7 @@ async def status_check_host(request: web.Request):
246242
},
247243
}
248244
result_status = 200 if all(result["ipv4"].values()) and all(result["ipv6"].values()) else 503
249-
return web.json_response(result, status=result_status, headers={"Access-Control-Allow-Origin": "*"})
245+
return web.json_response(result, status=result_status)
250246

251247

252248
@cors_allow_all
@@ -260,7 +256,7 @@ async def status_check_ipv6(request: web.Request):
260256
vm_ipv6 = False
261257

262258
result = {"host": await check_host_egress_ipv6(), "vm": vm_ipv6}
263-
return web.json_response(result, headers={"Access-Control-Allow-Origin": "*"})
259+
return web.json_response(result)
264260

265261

266262
@cors_allow_all
@@ -283,7 +279,6 @@ async def status_check_version(request: web.Request):
283279
return web.Response(
284280
status=200,
285281
text=f"Up-to-date: version {current} >= {reference}",
286-
headers={"Access-Control-Allow-Origin": "*"},
287282
)
288283
else:
289284
return web.HTTPForbidden(text=f"Outdated: version {current} < {reference}")
@@ -327,7 +322,6 @@ async def status_public_config(request: web.Request):
327322
},
328323
},
329324
dumps=dumps_for_json,
330-
headers={"Access-Control-Allow-Origin": "*"},
331325
)
332326

333327

@@ -436,9 +430,7 @@ async def notify_allocation(request: web.Request):
436430
except JSONDecodeError:
437431
return web.HTTPBadRequest(reason="Body is not valid JSON")
438432
except ValidationError as error:
439-
return web.json_response(
440-
data=error.json(), status=web.HTTPBadRequest.status_code, headers={"Access-Control-Allow-Origin": "*"}
441-
)
433+
return web.json_response(data=error.json(), status=web.HTTPBadRequest.status_code)
442434

443435
pubsub: PubSub = request.app["pubsub"]
444436
pool: VmPool = request.app["vm_pool"]

src/aleph/vm/orchestrator/views/authentication.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,6 @@ async def wrapper(request):
227227
return web.json_response(data={"error": e.reason}, status=e.status)
228228

229229
response = await handler(request, authenticated_sender)
230-
# Allow browser clients to access the body of the response
231-
response.headers.update({"Access-Control-Allow-Origin": request.headers.get("Origin", "")})
232230
return response
233231

234232
return wrapper

0 commit comments

Comments
 (0)