Module: Philiprehberger::HeaderKit::Authorization
- Defined in:
- lib/philiprehberger/header_kit/authorization.rb
Overview
Parses Authorization headers for Bearer, Basic, and Digest schemes.
Constant Summary collapse
- DIGEST_PARAM_PATTERN =
%r{(\w+)=(?:"([^"]*)"|([\w+/=]+))}
Class Method Summary collapse
-
.parse(header) ⇒ Hash
Parse an Authorization header string.
Class Method Details
.parse(header) ⇒ Hash
Parse an Authorization header string.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/philiprehberger/header_kit/authorization.rb', line 13 def self.parse(header) return { scheme: nil, credentials: nil } if header.nil? || header.strip.empty? stripped = header.strip space_index = stripped.index(' ') unless space_index return { scheme: stripped, credentials: nil } end scheme = stripped[0...space_index] rest = stripped[(space_index + 1)..].strip case scheme.downcase when 'bearer', 'basic' { scheme: scheme, credentials: rest } when 'digest' { scheme: scheme, params: parse_digest_params(rest) } else { scheme: scheme, credentials: rest } end end |