Sha256: ab08e87ef58ac4fbf2ad41650560e8731dadb1e45c86b89ad9e1479f7744ae86
Contents?: true
Size: 1.03 KB
Versions: 18
Compression:
Stored size: 1.03 KB
Contents
require "logtail/contexts/session" require "logtail-rack/middleware" module Logtail module Integrations module Rails # A Rack middleware that is responsible for adding the Session context # {Logtail::Contexts::Session}. class SessionContext < Logtail::Integrations::Rack::Middleware def call(env) id = get_session_id(env) if id context = Contexts::Session.new(id: id) CurrentContext.add(context.to_hash) end @app.call(env) end private def get_session_id(env) session_key = ::Rails.application.config.session_options[:key] request = ::ActionDispatch::Request.new(env) extract_from_cookie(request, session_key) rescue Exception => e nil end def extract_from_cookie(request, session_key) data = request .cookie_jar .signed_or_encrypted[session_key] || {} data["session_id"] end end end end end
Version data entries
18 entries across 18 versions & 1 rubygems