Sha256: bfd5191f2d176b34097a02d787af78400bc44b119d14361b322777dcc4afb266

Contents?: true

Size: 801 Bytes

Versions: 6

Compression:

Stored size: 801 Bytes

Contents

module OpenIDConnect
  module Discovery
    class Principal
      attr_reader :identifier, :host, :port

      def self.parse(identifier)
        raise InvalidIdentifier.new('Identifier Required') if identifier.blank?
        type = case identifier
        when /@/
          Email
        else
          URI
        end
        type.new identifier
      end

      def discover!(cache_options = {})
        SWD.discover!(
          principal: identifier,
          service:   Provider::SERVICE_URI,
          host:      host,
          port:      port,
          cache: cache_options
        )
      rescue SWD::Exception => e
        raise DiscoveryFailed.new(e.message)
      end
    end
  end
end

require 'openid_connect/discovery/principal/email'
require 'openid_connect/discovery/principal/uri'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
openid_connect-0.4.1 lib/openid_connect/discovery/principal.rb
openid_connect-0.4.0 lib/openid_connect/discovery/principal.rb
openid_connect-0.3.7 lib/openid_connect/discovery/principal.rb
openid_connect-0.3.6 lib/openid_connect/discovery/principal.rb
openid_connect-0.3.5 lib/openid_connect/discovery/principal.rb
openid_connect-0.3.4 lib/openid_connect/discovery/principal.rb