Sha256: af19bd527f77bda8b2fa5ea59ec5df575fd234b1abf9b6c67265af2f1064219c

Contents?: true

Size: 741 Bytes

Versions: 20

Compression:

Stored size: 741 Bytes

Contents

require 'rack/auth/digest/md5'

module Grape
  module Middleware
    module Auth
      class Digest < Grape::Middleware::Base
        attr_reader :authenticator
        
        def initialize(app, options = {}, &authenticator)
          super(app, options)
          @authenticator = authenticator
        end
        
        def digest_request
          Rack::Auth::Digest::Request.new(env)
        end
        
        def credentials
          digest_request.provided?? digest_request.credentials : [nil, nil]
        end
        
        def before
          unless authenticator.call(*credentials)
            throw :error, :status => 401, :message => "API Authorization Failed."
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
grape-0.5.0 lib/grape/middleware/auth/digest.rb
grape-0.4.1 lib/grape/middleware/auth/digest.rb
grape-0.4.0 lib/grape/middleware/auth/digest.rb
grape-0.3.2 lib/grape/middleware/auth/digest.rb
grape-0.3.1 lib/grape/middleware/auth/digest.rb
grape-0.3.0 lib/grape/middleware/auth/digest.rb
grape-0.2.1.1 lib/grape/middleware/auth/digest.rb
grape-0.2.6 lib/grape/middleware/auth/digest.rb
grape-0.2.5 lib/grape/middleware/auth/digest.rb
grape-0.2.4 lib/grape/middleware/auth/digest.rb
grape-0.2.3 lib/grape/middleware/auth/digest.rb
fragrant-0.0.5 vendor/bundle/ruby/1.9.1/gems/grape-0.2.2/lib/grape/middleware/auth/digest.rb
fragrant-0.0.4 vendor/grape/lib/grape/middleware/auth/digest.rb
grape-0.2.2 lib/grape/middleware/auth/digest.rb
fragrant-0.0.3 vendor/grape/lib/grape/middleware/auth/digest.rb
fragrant-0.0.2 vendor/grape/lib/grape/middleware/auth/digest.rb
fragrant-0.0.1 vendor/grape/lib/grape/middleware/auth/digest.rb
grape-0.2.1 lib/grape/middleware/auth/digest.rb
grape-0.2.0 lib/grape/middleware/auth/digest.rb
grape-0.1.5 lib/grape/middleware/auth/digest.rb