mirror of
https://github.com/matrix-org/pantalaimon.git
synced 2025-04-27 19:06:19 -04:00
daemon: Add CORS headers to the responses.
This add CORS headers to all the responses, they are required for web based clients (e.g. Riot) to work.
This commit is contained in:
parent
f5ffd69a79
commit
aafc56b44d
@ -50,6 +50,15 @@ from pantalaimon.thread_messages import (AcceptSasMessage, CancelSasMessage,
|
|||||||
UpdateUsersMessage)
|
UpdateUsersMessage)
|
||||||
|
|
||||||
|
|
||||||
|
CORS_HEADERS = {
|
||||||
|
"Access-Control-Allow-Headers": (
|
||||||
|
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
||||||
|
),
|
||||||
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
||||||
|
"Access-Control-Allow-Origin": "*",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@attr.s
|
@attr.s
|
||||||
class ProxyDaemon:
|
class ProxyDaemon:
|
||||||
name = attr.ib()
|
name = attr.ib()
|
||||||
@ -485,7 +494,8 @@ class ProxyDaemon:
|
|||||||
return web.Response(
|
return web.Response(
|
||||||
status=response.status,
|
status=response.status,
|
||||||
content_type=response.content_type,
|
content_type=response.content_type,
|
||||||
body=await response.read()
|
headers=CORS_HEADERS,
|
||||||
|
body=response.read()
|
||||||
)
|
)
|
||||||
except ClientConnectionError as e:
|
except ClientConnectionError as e:
|
||||||
return web.Response(status=500, text=str(e))
|
return web.Response(status=500, text=str(e))
|
||||||
@ -605,6 +615,7 @@ class ProxyDaemon:
|
|||||||
return web.Response(
|
return web.Response(
|
||||||
status=response.status,
|
status=response.status,
|
||||||
content_type=response.content_type,
|
content_type=response.content_type,
|
||||||
|
headers=CORS_HEADERS,
|
||||||
body=await response.read()
|
body=await response.read()
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -615,6 +626,7 @@ class ProxyDaemon:
|
|||||||
"errcode": "M_MISSING_TOKEN",
|
"errcode": "M_MISSING_TOKEN",
|
||||||
"error": "Missing access token."
|
"error": "Missing access token."
|
||||||
},
|
},
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=401,
|
status=401,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -625,6 +637,7 @@ class ProxyDaemon:
|
|||||||
"errcode": "M_UNKNOWN_TOKEN",
|
"errcode": "M_UNKNOWN_TOKEN",
|
||||||
"error": "Unrecognised access token."
|
"error": "Unrecognised access token."
|
||||||
},
|
},
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=401,
|
status=401,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -635,6 +648,7 @@ class ProxyDaemon:
|
|||||||
"errcode": "M_NOT_JSON",
|
"errcode": "M_NOT_JSON",
|
||||||
"error": "Request did not contain valid JSON."
|
"error": "Request did not contain valid JSON."
|
||||||
},
|
},
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=400,
|
status=400,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -707,6 +721,7 @@ class ProxyDaemon:
|
|||||||
|
|
||||||
return web.json_response(
|
return web.json_response(
|
||||||
json_response,
|
json_response,
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=response.status,
|
status=response.status,
|
||||||
)
|
)
|
||||||
except (JSONDecodeError, ContentTypeError):
|
except (JSONDecodeError, ContentTypeError):
|
||||||
@ -715,6 +730,7 @@ class ProxyDaemon:
|
|||||||
return web.Response(
|
return web.Response(
|
||||||
status=response.status,
|
status=response.status,
|
||||||
content_type=response.content_type,
|
content_type=response.content_type,
|
||||||
|
headers=CORS_HEADERS,
|
||||||
body=await response.read()
|
body=await response.read()
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -744,6 +760,7 @@ class ProxyDaemon:
|
|||||||
|
|
||||||
return web.json_response(
|
return web.json_response(
|
||||||
json_response,
|
json_response,
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=response.status,
|
status=response.status,
|
||||||
)
|
)
|
||||||
except (JSONDecodeError, ContentTypeError):
|
except (JSONDecodeError, ContentTypeError):
|
||||||
@ -752,6 +769,7 @@ class ProxyDaemon:
|
|||||||
return web.Response(
|
return web.Response(
|
||||||
status=response.status,
|
status=response.status,
|
||||||
content_type=response.content_type,
|
content_type=response.content_type,
|
||||||
|
headers=CORS_HEADERS,
|
||||||
body=await response.read()
|
body=await response.read()
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -800,6 +818,7 @@ class ProxyDaemon:
|
|||||||
return web.Response(
|
return web.Response(
|
||||||
status=response.transport_response.status,
|
status=response.transport_response.status,
|
||||||
content_type=response.transport_response.content_type,
|
content_type=response.transport_response.content_type,
|
||||||
|
headers=CORS_HEADERS,
|
||||||
body=await response.transport_response.read()
|
body=await response.transport_response.read()
|
||||||
)
|
)
|
||||||
except ClientConnectionError as e:
|
except ClientConnectionError as e:
|
||||||
@ -911,15 +930,7 @@ class ProxyDaemon:
|
|||||||
)
|
)
|
||||||
|
|
||||||
async def search_opts(self, request):
|
async def search_opts(self, request):
|
||||||
headers = {
|
return web.json_response({}, headers=CORS_HEADERS)
|
||||||
"Access-Control-Allow-Headers": (
|
|
||||||
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
|
||||||
),
|
|
||||||
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
|
|
||||||
"Access-Control-Allow-Origin": "*",
|
|
||||||
}
|
|
||||||
|
|
||||||
return web.json_response({}, headers=headers)
|
|
||||||
|
|
||||||
async def search(self, request):
|
async def search(self, request):
|
||||||
access_token = self.get_access_token(request)
|
access_token = self.get_access_token(request)
|
||||||
@ -945,6 +956,7 @@ class ProxyDaemon:
|
|||||||
"errcode": "M_BAD_JSON",
|
"errcode": "M_BAD_JSON",
|
||||||
"error": "Invalid search query"
|
"error": "Invalid search query"
|
||||||
},
|
},
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=400,
|
status=400,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -976,6 +988,7 @@ class ProxyDaemon:
|
|||||||
"errcode": "M_INVALID_PARAM",
|
"errcode": "M_INVALID_PARAM",
|
||||||
"error": str(e)
|
"error": str(e)
|
||||||
},
|
},
|
||||||
|
headers=CORS_HEADERS,
|
||||||
status=400,
|
status=400,
|
||||||
)
|
)
|
||||||
except UnknownRoomError:
|
except UnknownRoomError:
|
||||||
@ -983,7 +996,7 @@ class ProxyDaemon:
|
|||||||
|
|
||||||
return web.json_response(
|
return web.json_response(
|
||||||
result,
|
result,
|
||||||
headers={"Access-Control-Allow-Origin": "*"},
|
headers=CORS_HEADERS,
|
||||||
status=200
|
status=200
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user