package sihl
Source file middleware_authn.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22module Authn = Sihl_authn module User = Sihl_user module Http = Sihl_http open Lwt.Syntax module Make (AuthnService : Authn.Sig.SERVICE) (UserService : User.Sig.SERVICE) = struct let session () = let filter handler req = let ctx = Http.Request.to_ctx req in match Middleware_session.find_opt req with | Some session -> let* user = AuthnService.find_user_in_session_opt ctx session in (match user with | Some user -> let req = Middleware_user.set user req in handler req | None -> handler req) | None -> handler req in Opium_kernel.Rock.Middleware.create ~name:"authn_session" ~filter ;; end