Module: SimpleApiAuth

Defined in:
lib/simple-api-auth.rb,
lib/simple-api-auth/config.rb,
lib/simple-api-auth/errors.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_normalizer.rb

Defined Under Namespace

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

Constant Summary collapse

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

Class Method Summary collapse

Class Method Details

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



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

def self.compute_signature(request, secret_key, options = {})
  request = SimpleApiAuth::Request.create(request)
  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[:saa_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



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

def self.sign!(request, secret_key, options = {})
  request = SimpleApiAuth::Request.create(request)
  request.add_header(SimpleApiAuth.config.header_keys[:saa_auth_time], Time.now.utc.iso8601)
  signature = compute_signature(request, secret_key, options)
  request.add_header(SimpleApiAuth.config.header_keys[:authorization], "Signature: #{signature}")
  request.original
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