Sha256: 320ab5c5ad903fad041367ea5f7b0c2cea66cc36b6af534ab4d992d5d20405c2
Contents?: true
Size: 707 Bytes
Versions: 10
Compression:
Stored size: 707 Bytes
Contents
# frozen_string_literal: true module Shipit class SameSiteCookieMiddleware COOKIE_SEPARATOR = "\n" def initialize(app) @app = app end def call(env) status, headers, body = @app.call(env) if headers && headers['Set-Cookie'] && Rack::Request.new(env).ssl? set_cookies = headers['Set-Cookie'].split(COOKIE_SEPARATOR).compact set_cookies.map! do |cookie| cookie << '; Secure' if cookie !~ /;\s*secure/i cookie << '; SameSite=None' unless cookie.match?(/;\s*samesite=/i) cookie end headers['Set-Cookie'] = set_cookies.join(COOKIE_SEPARATOR) end [status, headers, body] end end end
Version data entries
10 entries across 10 versions & 1 rubygems