class Idcf::FaradayMiddleware::Signature
ILB, DNS, Your(Billing)用のシグネチャ生成を実施します。
Public Class Methods
new(app, keys = {})
click to toggle source
Calls superclass method
# File lib/idcf/faraday_middleware/signature.rb, line 10 def initialize(app, keys = {}) super(app) @api_key = keys[:api_key] @secret_key = keys[:secret_key] end
Public Instance Methods
call(env)
click to toggle source
# File lib/idcf/faraday_middleware/signature.rb, line 16 def call(env) raise InvalidKeys, errors.messages.to_s if invalid? env[:request_headers][HEADER_API_KEY] = api_key env[:request_headers][HEADER_EXPIRES] = expires env[:request_headers][HEADER_SIGNATURE] = signature env @app.call env end
Private Instance Methods
expires()
click to toggle source
# File lib/idcf/faraday_middleware/signature.rb, line 48 def expires (Time.now.to_i + SIGNATURE_TTL).to_s end
signature(env)
click to toggle source
# File lib/idcf/faraday_middleware/signature.rb, line 28 def signature(env) Base64.strict_encode64( OpenSSL::HMAC.digest( OpenSSL::Digest::SHA256.new, secret_key, signature_seed(env) ) ) end
signature_seed(env)
click to toggle source
# File lib/idcf/faraday_middleware/signature.rb, line 38 def signature_seed(env) [ env.method.to_s.upcase, env.url.path, api_key, env[:request_headers][HEADER_EXPIRES], env.url.query.to_s.gsub('+', '%20') ].join("\n") end