class Idcf::FaradayMiddleware::CdnSignature

コンテンツキャッシュ用のシグネチャ生成を実施します。

Public Instance Methods

call(env) click to toggle source
# File lib/idcf/faraday_middleware/cdn_signature.rb, line 5
def call(env)
  raise InvalidKeys, errors.messages.to_s if invalid?

  env[:request_headers][EXPIRES]   = expires
  env[:request_headers][SIGNATURE] = signature env

  @app.call env
end

Private Instance Methods

signature(env) click to toggle source
# File lib/idcf/faraday_middleware/cdn_signature.rb, line 16
def signature(env)
  Base64.strict_encode64(
    OpenSSL::HMAC.hexdigest(
      OpenSSL::Digest::SHA256.new,
      secret_key,
      signature_seed(env)
    )
  )
end
signature_seed(env) click to toggle source
# File lib/idcf/faraday_middleware/cdn_signature.rb, line 26
def signature_seed(env)
  [
    env.method.to_s.upcase,
    api_key,
    secret_key,
    env[:request_headers][EXPIRES],
    env.url.request_uri,
    env.body.to_s
  ].join("\n")
end