Skip to content

Commit

Permalink
Merge pull request #9022 from braddunbar/digest-basic-auth
Browse files Browse the repository at this point in the history
Digest auth should not 500 when given a basic header.
  • Loading branch information
steveklabnik committed Mar 18, 2013
2 parents bfdd3c2 + 95332ab commit 2a5521e
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
5 changes: 5 additions & 0 deletions actionpack/CHANGELOG.md
@@ -1,5 +1,10 @@
## Rails 4.0.0 (unreleased) ##

* Ensure that digest authentication responds with a 401 status when a basic
header is received.

*Brad Dunbar*

* Include I18n locale fallbacks in view lookup.
Fixes GH#3512.

Expand Down
Expand Up @@ -299,6 +299,7 @@ def nonce(secret_key, time = Time.now)
# allow a user to use new nonce without prompting user again for their
# username and password.
def validate_nonce(secret_key, request, value, seconds_to_timeout=5*60)
return false if value.nil?
t = ::Base64.decode64(value).split(":").first.to_i
nonce(secret_key, t) == value && (t - Time.now.to_i).abs <= seconds_to_timeout
end
Expand Down
8 changes: 8 additions & 0 deletions actionpack/test/controller/http_digest_authentication_test.rb
Expand Up @@ -249,6 +249,14 @@ def authenticate_with_request
assert_equal 'Definitely Maybe', @response.body
end

test "when sent a basic auth header, returns Unauthorized" do
@request.env['HTTP_AUTHORIZATION'] = 'Basic Gwf2aXq8ZLF3Hxq='

get :display

assert_response :unauthorized
end

private

def encode_credentials(options)
Expand Down

0 comments on commit 2a5521e

Please sign in to comment.