Sha256: 55c83257ef9d40590913f29e2bc13fbb576593ab64de4770a7105da4e01ac873

Contents?: true

Size: 1.15 KB

Versions: 851

Compression:

Stored size: 1.15 KB

Contents

require 'base64'
require 'uri'
require 'time'
require 'json'
require 'openssl'

module Aws
  module CloudFront

    # Allows you to create signed cookie for Amazon CloudFront resources
    #
    #     signer = Aws::CloudFront::CookieSigner.new(
    #       key_pair_id: "cf-keypair-id",
    #       private_key_path: "./cf_private_key.pem"
    #     )
    #     cookies = signer.signed_cookie(url,
    #       policy: policy.to_json
    #     )
    #
    class CookieSigner
      include Signer

      # create a set of signed Amazon CloudFront cookie parameters
      # @param [String] url
      # @option params [Time, DateTime, Date, String, Integer<timestamp>] :expires
      # @option params [String<JSON>] :policy
      def signed_cookie(url, params = {})
        scheme, uri = scheme_and_uri(url)
        signed_content = signature(
          resource: resource(scheme, uri),
          expires: time(params[:expires]),
          policy: params[:policy]
        )

        cookie_parameters = {}
        signed_content.each { |k, v|
          cookie_parameters["CloudFront-#{k}"] = v.to_s.gsub("\n", '')
        }
        cookie_parameters
      end

    end
  end
end

Version data entries

851 entries across 851 versions & 2 rubygems

Version Path
aws-sdk-core-2.11.632 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.631 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.630 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.629 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.628 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.627 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.626 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.625 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.624 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.623 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.622 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.621 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.620 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.619 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.618 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.617 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.616 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.615 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.614 lib/aws-sdk-core/cloudfront/cookie_signer.rb
aws-sdk-core-2.11.613 lib/aws-sdk-core/cloudfront/cookie_signer.rb