+(defun compute-session (req ent url-session-id)
+ (when (is-session-enabled ent)
+ (let* ((cookie-session-id (cookie-session-key ent (request-cookies req)))
+ (session-id (or url-session-id cookie-session-id))
+ (found-session (when session-id
+ (find-websession session-id ent)))
+ (session (aif found-session
+ it
+ (make-websession req ent))))
+ (cond
+ (cookie-session-id
+ (setf (websession-method session) :cookies))
+ (url-session-id
+ (setf (websession-method session) :url)))
+ (setf (websession-from-req req) session))))
+