Skip to content

Commit 1eb0ab0

Browse files
author
Andrei Neagu
committed
refactor
1 parent ef6b17f commit 1eb0ab0

File tree

1 file changed

+17
-7
lines changed
  • services/web/server/src/simcore_service_webserver/session

1 file changed

+17
-7
lines changed

services/web/server/src/simcore_service_webserver/session/plugin.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
_logger = logging.getLogger(__name__)
1717

1818

19+
def _share_cookie_across_all_subdomains(
20+
response: web.StreamResponse, params: aiohttp_session._CookieParams
21+
) -> aiohttp_session._CookieParams:
22+
# share cookie across all subdomains, by appending a dot (`.`) in front of the domain name
23+
# overwrite domain from `None` (browser sets `example.com`) to `.example.com`
24+
request = response._req # pylint:disable=protected-access # noqa: SLF001
25+
assert isinstance(request, web.Request) # nosec
26+
params["domain"] = f".{request.url.host}"
27+
return params
28+
29+
1930
class SharedCookieEncryptedCookieStorage(EncryptedCookieStorage):
2031
async def save_session(
2132
self,
@@ -35,19 +46,18 @@ def save_cookie(
3546
*,
3647
max_age: int | None = None,
3748
) -> None:
38-
params = self._cookie_params.copy()
39-
40-
# share cookie accross all subdomains
41-
# overwrite domain from `None` (browser sets `example.com`) to `.example.com`
42-
request = response._req # pylint:disable=protected-access # noqa: SLF001
43-
assert isinstance(request, web.Request) # nosec
44-
params["domain"] = f".{request.url.host}"
49+
# NOTE: WARNING: the only difference between the superclass and this implementation
50+
# is the statement below where the domain name is set. Adjust in case the base library changes.
51+
params = _share_cookie_across_all_subdomains(
52+
response, self._cookie_params.copy()
53+
)
4554

4655
if max_age is not None:
4756
params["max_age"] = max_age
4857
t = time.gmtime(time.time() + max_age)
4958
params["expires"] = time.strftime("%a, %d-%b-%Y %T GMT", t)
5059
if not cookie_data:
60+
5161
response.del_cookie(
5262
self._cookie_name, domain=params["domain"], path=params["path"]
5363
)

0 commit comments

Comments
 (0)