Sha256: 3a7c47895fde62b3e1be2265fd2cbb5932f5b90b8d1d2f1133f9de108d1ae4bc
Contents?: true
Size: 925 Bytes
Versions: 3
Compression:
Stored size: 925 Bytes
Contents
# frozen_string_literal: true require 'faraday' require 'openssl' module BigSession # This middleware will add BigSession header to request_headers of outgoing # connections done by Faraday class FaradayBigSession < ::Faraday::Middleware class << self def activate ::Faraday::Middleware.register_middleware big_session: ::BigSession::FaradayBigSession end end def initialize(app, header_secret = nil) @app = app @header_secret = header_secret end def call(env) if SessionId.current headers = { ::BigSession::BIG_SESSION_HEADER_NAME => SessionId.current, } if @header_secret sig = OpenSSL::HMAC.hexdigest('sha256', @header_secret, SessionId.current) headers[::BigSession::BIG_SESSION_SIGNATURE_HEADER_NAME] = sig end env[:request_headers].merge!(headers) end @app.call(env) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
big_session-0.1.2 | lib/big_session/faraday.rb |
big_session-0.1.1 | lib/big_session/faraday.rb |
big_session-0.1.0 | lib/big_session/faraday.rb |