From 9f5665e061dd9de49c5c0fed517aed9575e82fd0 Mon Sep 17 00:00:00 2001 From: Tyler Cross Date: Thu, 26 Mar 2015 09:42:57 -0400 Subject: [PATCH] Use Base64.strict_encode64 to not add line feeds. - Base64.encode64 adds line feeds every 60 encoded characters - Base64.strict_encode64 does not insert line feeds, so use it --- lib/em-http/http_encoding.rb | 2 +- spec/stallion.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/em-http/http_encoding.rb b/lib/em-http/http_encoding.rb index 3b395e72..81f547a9 100644 --- a/lib/em-http/http_encoding.rb +++ b/lib/em-http/http_encoding.rb @@ -114,7 +114,7 @@ def encode_field(k, v) # String - custom auth string (OAuth, etc) def encode_auth(k,v) if v.is_a? Array - FIELD_ENCODING % [k, ["Basic", Base64.encode64(v.join(":")).split.join].join(" ")] + FIELD_ENCODING % [k, ["Basic", Base64.strict_encode64(v.join(":")).split.join].join(" ")] else encode_field(k,v) end diff --git a/spec/stallion.rb b/spec/stallion.rb index de6d9de4..8d681d45 100644 --- a/spec/stallion.rb +++ b/spec/stallion.rb @@ -234,7 +234,7 @@ def self.call(env) stable.response.status = 200 stable.response.write stable.request.env["HTTP_AUTHORIZATION"] elsif stable.request.path_info == '/authtest' - auth = "Basic %s" % Base64.encode64(['user', 'pass'].join(':')).split.join + auth = "Basic %s" % Base64.strict_encode64(['user', 'pass'].join(':')).split.join if auth == stable.request.env["HTTP_AUTHORIZATION"] stable.response.status = 200 stable.response.write 'success'