Skip to content

Commit 165770b

Browse files
authored
Merge pull request #81 from kubek2k/partitioned-cookies
Adding support to Partitioned parameter to cookies
2 parents 4c2148c + 9a2e0df commit 165770b

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/Happstack/Server/Internal/Cookie.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ data Cookie = Cookie
4646
, secure :: Bool
4747
, httpOnly :: Bool
4848
, sameSite :: SameSite
49+
, partitioned :: Bool
4950
} deriving(Show,Eq,Read,Typeable,Data)
5051

5152
-- | Specify the lifetime of a cookie.
@@ -102,13 +103,13 @@ calcLife Expired =
102103

103104
-- | Creates a cookie with a default version of 1, empty domain, a
104105
-- path of "/", secure == False, httpOnly == False and
105-
-- sameSite == SameSiteNoValue
106+
-- sameSite == SameSiteNoValue and partitioned = False
106107
--
107108
-- see also: 'addCookie'
108109
mkCookie :: String -- ^ cookie name
109110
-> String -- ^ cookie value
110111
-> Cookie
111-
mkCookie key val = Cookie "1" "/" "" key val False False SameSiteNoValue
112+
mkCookie key val = Cookie "1" "/" "" key val False False SameSiteNoValue False
112113

113114
-- | Set a Cookie in the Result.
114115
-- The values are escaped as per RFC 2109, but some browsers may
@@ -147,6 +148,7 @@ mkCookieHeader mLife cookie =
147148
++ (if httpOnly cookie then ["HttpOnly"] else [])
148149
++ (if sameSite cookie /= SameSiteNoValue
149150
then [displaySameSite . sameSite $ cookie] else [])
151+
++ (if partitioned cookie then ["Partitioned"] else [])
150152

151153
-- | Not an supported api. Takes a cookie header and returns
152154
-- either a String error message or an array of parsed cookies
@@ -170,7 +172,7 @@ cookiesParser = cookies
170172
val<-value
171173
path<-option "" $ try (cookieSep >> cookie_path)
172174
domain<-option "" $ try (cookieSep >> cookie_domain)
173-
return $ Cookie ver path domain (low name) val False False SameSiteNoValue
175+
return $ Cookie ver path domain (low name) val False False SameSiteNoValue False
174176
cookie_version = cookie_special "$Version"
175177
cookie_path = cookie_special "$Path"
176178
cookie_domain = cookie_special "$Domain"

0 commit comments

Comments
 (0)