lib/conjur/base.rb in conjur-api-2.0.0 vs lib/conjur/base.rb in conjur-api-2.0.1
- old
+ new
@@ -4,15 +4,18 @@
require 'conjur/exists'
require 'conjur/has_attributes'
require 'conjur/escape'
require 'conjur/log'
require 'conjur/log_source'
+require 'conjur/standard_methods'
+require 'conjur/token_cache'
module Conjur
class API
include Escape
include LogSource
+ include StandardMethods
class << self
def new_from_key(username, api_key)
self.new username, api_key, nil
end
@@ -24,27 +27,31 @@
def initialize username, api_key, token
@username = username
@api_key = api_key
@token = token
+ TokenCache.store(@token) if token
+
raise "Expecting ( username and api_key ) or token" unless ( username && api_key ) || token
end
- attr_reader :api_key, :username, :token
+ attr_reader :api_key, :username
def username
- @username || token['data']
+ @username || @token['data']
end
def host
self.class.host
end
+ def token
+ TokenCache.fetch(username, api_key)
+ end
+
+ # Authenticate the username and api_key to obtain a request token.
+ # Tokens are cached by username for a short period of time.
def credentials
- if token
- { headers: { authorization: "Token token=\"#{Base64.strict_encode64 token.to_json}\"" }, username: username }
- else
- { user: username, password: api_key }
- end
+ { headers: { authorization: "Token token=\"#{Base64.strict_encode64 token.to_json}\"" }, username: username }
end
end
end