Module: SimpleApiAuth

Defined in:
lib/simple-api-auth.rb,
lib/simple-api-auth/config.rb,
lib/simple-api-auth/signer.rb,
lib/simple-api-auth/request.rb,
lib/simple-api-auth/version.rb,
lib/simple-api-auth/authenticable.rb,
lib/simple-api-auth/authenticator.rb,
lib/simple-api-auth/hashers/sha1_hasher.rb,
lib/simple-api-auth/helpers/auth_helpers.rb,
lib/simple-api-auth/helpers/request_helpers.rb

Defined Under Namespace

Modules: Authenticable, Hasher, Helpers Classes: Authenticator, Config, Request, Signer

Constant Summary collapse

MAJOR =
0
MINOR =
1
PATCH =
0
VERSION =
"#{MAJOR}.#{MINOR}.#{PATCH}"

Class Method Summary collapse

Class Method Details

.compute_signature(request, secret_key, options = {}) ⇒ Object



33
34
35
36
# File 'lib/simple-api-auth.rb', line 33

def self.compute_signature(request, secret_key, options = {})
  signer = SimpleApiAuth.config.signer.new(options)
  signer.sign(request, secret_key)
end

.configObject



11
12
13
# File 'lib/simple-api-auth.rb', line 11

def self.config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Yields:



15
16
17
# File 'lib/simple-api-auth.rb', line 15

def self.configure
  yield config
end

.extract_key(request) ⇒ Object



23
24
25
26
# File 'lib/simple-api-auth.rb', line 23

def self.extract_key(request)
  request = SimpleApiAuth::Request.create(request)
  request.headers[SimpleApiAuth.config.header_keys[:key]]
end

.log(severity, message = nil, progname = nil, &block) ⇒ Object



19
20
21
# File 'lib/simple-api-auth.rb', line 19

def self.log(severity, message = nil, progname = nil, &block)
  config.logger.log(severity, message, progname, &block) unless config.logger.nil?
end

.sign!(request, secret_key, options = {}) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/simple-api-auth.rb', line 38

def self.sign!(request, secret_key, options = {})
  signature = compute_signature(request, secret_key, options)
  header_name = SimpleApiAuth.config.request_fields[:headers]
  authorization_key = SimpleApiAuth.config.header_keys[:authorization]
  request.send(header_name)[authorization_key] = "Signature: #{signature}"
  request
end

.valid_signature?(request, secret_key, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/simple-api-auth.rb', line 28

def self.valid_signature?(request, secret_key, options = {})
  authenticator = Authenticator.new(request, secret_key, options)
  authenticator.valid_signature?
end