Sha256: efe626f60ae28f7a4984a877ecb168ad84e6e8e4387077bb2d8e0f01578f28e3

Contents?: true

Size: 958 Bytes

Versions: 1

Compression:

Stored size: 958 Bytes

Contents

require "openssl"

module Oidc
  module Discovery
    module Provider
      class Config
        class Resource < SWD::Resource
          undef_required_attributes :principal, :service

          class Expired < SWD::Resource::Expired; end

          def initialize(uri)
            @host = uri.host
            @port = uri.port unless [80, 443].include?(uri.port)
            @path = File.join uri.path, '.well-known/openid-configuration'
            attr_missing!
          end

          def endpoint
            SWD.url_builder.build [nil, host, port, path, nil, nil]
          rescue URI::Error => e
            raise SWD::Exception.new(e.message)
          end

          private

          def to_response_object(hash)
            Response.new(hash)
          end

          def cache_key
            sha256 = OpenSSL::Digest::SHA256.hexdigest host
            "swd:resource:opneid-conf:#{sha256}"
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
oidc-0.0.1 lib/oidc/discovery/provider/config/resource.rb