From f8cfa9101c35245953be7b84ec0596bf8a324802 Mon Sep 17 00:00:00 2001 From: Anton Prokofiev Date: Wed, 7 Dec 2022 09:09:59 +0100 Subject: [PATCH 1/2] Add support for SameSite cookie attribute. Default value set to "Lax" as of https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite NOTE: Do not forget to pull latest version of simple_bridge. --- include/wf.hrl | 3 ++- src/lib/wf_cookies.erl | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/wf.hrl b/include/wf.hrl index a905e5ea..9d834f33 100644 --- a/include/wf.hrl +++ b/include/wf.hrl @@ -1156,7 +1156,8 @@ domain=undefined :: undefined | text(), minutes_to_live=20 :: integer(), secure=false :: boolean(), - http_only=false :: boolean() + http_only=false :: boolean(), + same_site = "Lax" ::text() }). %%% Validators %%% diff --git a/src/lib/wf_cookies.erl b/src/lib/wf_cookies.erl index 398b818a..27ae88fb 100644 --- a/src/lib/wf_cookies.erl +++ b/src/lib/wf_cookies.erl @@ -51,7 +51,8 @@ set_websocket_cookie(Cookie, Value, Options) -> domain=proplists:get_value(path, Options, undefined), minutes_to_live=proplists:get_value(minutes_to_live, Options, 20), secure=proplists:get_value(secure, Options, false), - http_only=proplists:get_value(http_only, Options, false) + http_only=proplists:get_value(http_only, Options, false), + same_site=proplists:get_value(same_site, Options,"Lax") }, wf:wire(SetCookie). From 48a2f55e059c6a9fca54c5b9bb862491ae755957 Mon Sep 17 00:00:00 2001 From: Anton Prokofiev Date: Wed, 7 Dec 2022 12:04:19 +0100 Subject: [PATCH 2/2] Cowboy expecte same_site value as atom. Default value should be lax --- include/wf.hrl | 2 +- src/lib/wf_cookies.erl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/wf.hrl b/include/wf.hrl index 9d834f33..09b76f18 100644 --- a/include/wf.hrl +++ b/include/wf.hrl @@ -1157,7 +1157,7 @@ minutes_to_live=20 :: integer(), secure=false :: boolean(), http_only=false :: boolean(), - same_site = "Lax" ::text() + same_site = lax ::atom() }). %%% Validators %%% diff --git a/src/lib/wf_cookies.erl b/src/lib/wf_cookies.erl index 27ae88fb..e4f6634e 100644 --- a/src/lib/wf_cookies.erl +++ b/src/lib/wf_cookies.erl @@ -52,7 +52,7 @@ set_websocket_cookie(Cookie, Value, Options) -> minutes_to_live=proplists:get_value(minutes_to_live, Options, 20), secure=proplists:get_value(secure, Options, false), http_only=proplists:get_value(http_only, Options, false), - same_site=proplists:get_value(same_site, Options,"Lax") + same_site=proplists:get_value(same_site, Options, lax) }, wf:wire(SetCookie).