CORS! #1
@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "spiderweb-framework"
|
name = "spiderweb-framework"
|
||||||
version = "0.11.0"
|
version = "0.12.0"
|
||||||
description = "A small web framework, just big enough for a spider."
|
description = "A small web framework, just big enough for a spider."
|
||||||
authors = ["Joe Kaufeld <opensource@joekaufeld.com>"]
|
authors = ["Joe Kaufeld <opensource@joekaufeld.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -2,7 +2,7 @@ from peewee import DatabaseProxy
|
|||||||
|
|
||||||
DEFAULT_ALLOWED_METHODS = ["GET"]
|
DEFAULT_ALLOWED_METHODS = ["GET"]
|
||||||
DEFAULT_ENCODING = "UTF-8"
|
DEFAULT_ENCODING = "UTF-8"
|
||||||
__version__ = "0.11.0"
|
__version__ = "0.12.0"
|
||||||
|
|
||||||
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
|
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
|
||||||
REGEX_COOKIE_NAME = r"^[a-zA-Z0-9\s\(\)<>@,;:\/\\\[\]\?=\{\}\"\t]*$"
|
REGEX_COOKIE_NAME = r"^[a-zA-Z0-9\s\(\)<>@,;:\/\\\[\]\?=\{\}\"\t]*$"
|
||||||
|
@ -49,6 +49,7 @@ class SpiderwebRouter(LocalServerMixin, MiddlewareMixin, RoutesMixin, FernetMixi
|
|||||||
staticfiles_dirs: list[str] = None,
|
staticfiles_dirs: list[str] = None,
|
||||||
routes: list[tuple[str, Callable] | tuple[str, Callable, dict]] = None,
|
routes: list[tuple[str, Callable] | tuple[str, Callable, dict]] = None,
|
||||||
error_routes: dict[int, Callable] = None,
|
error_routes: dict[int, Callable] = None,
|
||||||
|
allowed_hosts=None,
|
||||||
secret_key: str = None,
|
secret_key: str = None,
|
||||||
session_max_age=60 * 60 * 24 * 14, # 2 weeks
|
session_max_age=60 * 60 * 24 * 14, # 2 weeks
|
||||||
session_cookie_name="swsession",
|
session_cookie_name="swsession",
|
||||||
@ -69,9 +70,10 @@ class SpiderwebRouter(LocalServerMixin, MiddlewareMixin, RoutesMixin, FernetMixi
|
|||||||
self.append_slash = append_slash
|
self.append_slash = append_slash
|
||||||
self.templates_dirs = templates_dirs
|
self.templates_dirs = templates_dirs
|
||||||
self.staticfiles_dirs = staticfiles_dirs
|
self.staticfiles_dirs = staticfiles_dirs
|
||||||
self._middleware: list[str] = middleware if middleware else []
|
self._middleware: list[str] = middleware or []
|
||||||
self.middleware: list[Callable] = []
|
self.middleware: list[Callable] = []
|
||||||
self.secret_key = secret_key if secret_key else self.generate_key()
|
self.secret_key = secret_key if secret_key else self.generate_key()
|
||||||
|
self.allowed_hosts = allowed_hosts or ["*"]
|
||||||
|
|
||||||
self.extra_data = kwargs
|
self.extra_data = kwargs
|
||||||
|
|
||||||
|
1
spiderweb/middleware/cors.py
Normal file
1
spiderweb/middleware/cors.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
# https://gist.github.com/FND/204ba41bf6ae485965ef
|
@ -72,6 +72,9 @@ class Request:
|
|||||||
]
|
]
|
||||||
for f in fields:
|
for f in fields:
|
||||||
self.META[f] = self.environ.get(f)
|
self.META[f] = self.environ.get(f)
|
||||||
|
for f in self.environ.keys():
|
||||||
|
if f.startswith("HTTP_"):
|
||||||
|
self.META[f] = self.environ[f]
|
||||||
self.META["client_address"] = get_client_address(self.environ)
|
self.META["client_address"] = get_client_address(self.environ)
|
||||||
|
|
||||||
def populate_cookies(self) -> None:
|
def populate_cookies(self) -> None:
|
||||||
|
@ -15,4 +15,7 @@
|
|||||||
<p>
|
<p>
|
||||||
<img src="/static/aaaaaa.gif" alt="AAAAAAAAAA">
|
<img src="/static/aaaaaa.gif" alt="AAAAAAAAAA">
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
{{ request.META }}
|
||||||
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
Reference in New Issue
Block a user