From b4fc8ad05df572658e1254a8049636d5fafab977 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 2 Sep 2024 10:39:44 +0200 Subject: [PATCH] web/cookie: improvements: create-from-keys, more default values --- web/cookie.lisp | 14 +++++++++----- web/response.lisp | 3 +-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/web/cookie.lisp b/web/cookie.lisp index 042981e..a407f7a 100644 --- a/web/cookie.lisp +++ b/web/cookie.lisp @@ -3,14 +3,18 @@ (defpackage :scopes/web/cookie (:use :common-lisp) (:local-nicknames (:c cl-cookie)) - (:export #:create #:make-header)) + (:export #:create #:create-from-keys #:make-header)) (in-package :scopes/web/cookie) -(defun create (name value &key max-age (path "/") (httponly-p t)) - (c:make-cookie :name name :value value - :path path :httponly-p httponly-p - :max-age max-age)) +(defun create (name value &rest args &key &allow-other-keys) + (apply #'create-from-keys :name name :value value args)) + +(defun create-from-keys (&key name value domain (same-site :lax) + (max-age 86400) (path "/") (httponly-p t) + &allow-other-keys) + (c:make-cookie :name name :value value :domain domain :same-site same-site + :max-age max-age :path path :httponly-p httponly-p)) (defun make-header (cookie) (c:write-set-cookie-header cookie)) diff --git a/web/response.lisp b/web/response.lisp index 203d478..db2ea7e 100644 --- a/web/response.lisp +++ b/web/response.lisp @@ -38,9 +38,8 @@ (shape:print-fields ia s 'messages)) (defun render-cookie (cdata) - (let ((cookie (cookie:create (getf cdata :name) (getf cdata :value)))) + (let ((cookie (apply #'cookie:create-from-keys cdata))) (cookie:make-header cookie))) - ;"DEMO=1234567_value; Path=/") ;"; Domain=testing.cyberscopes.org") ;;;; response definitions