Sha256: 7909de1ef5446a161ae5bb31fd553cf4b59b15e13cf17ff14254c4d36138255a

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module SecureNative
  module Frameworks
    class Hanami
      SECURENATIVE_COOKIE = '_sn'

      def self.get_client_token(request)
        begin
          request.env[SECURENATIVE_COOKIE]
        rescue StandardError
          begin
            request.cookies[SECURENATIVE_COOKIE]
          rescue StandardError
            nil
          end
        end
      end

      def self.get_url(request)
        begin
          request.env['REQUEST_PATH']
        rescue StandardError
          nil
        end
      end

      def self.get_method(request)
        begin
          request.request_method
        rescue StandardError
          nil
        end
      end

      def self.get_headers(request)
        begin
          headers = {}
          request.headers.env.select { |k, _| k.in?(ActionDispatch::Http::Headers::CGI_VARIABLES) || k =~ /^HTTP_/ }.each { |header|
            headers[header[0].downcase.gsub("http_", "").gsub("_", "-")] = header[1]
          }
          return headers
        rescue StandardError
          nil
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
securenative-0.1.37 lib/securenative/frameworks/hanami.rb
securenative-0.1.36 lib/securenative/frameworks/hanami.rb
securenative-0.1.35 lib/securenative/frameworks/hanami.rb