Sha256: c9b5ccc2eb57b67c6e69c2cabdf5b7622500c1d4d370402fdf649d7dce38eb8e

Contents?: true

Size: 859 Bytes

Versions: 24

Compression:

Stored size: 859 Bytes

Contents

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

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

      def discover!(cache_options = {})
        SWD.discover!(
          :principal => identifier,
          :service => Provider::SERVICE_URI,
          :host => host,
          :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'
require 'openid_connect/discovery/principal/xri'

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
openid_connect-0.2.1 lib/openid_connect/discovery/principal.rb
openid_connect-0.2.0 lib/openid_connect/discovery/principal.rb
openid_connect-0.2.0.alpha3 lib/openid_connect/discovery/principal.rb
openid_connect-0.2.0.alpha2 lib/openid_connect/discovery/principal.rb
openid_connect-0.2.0.alpha lib/openid_connect/discovery/principal.rb
openid_connect-0.1.5 lib/openid_connect/discovery/principal.rb
openid_connect-0.1.4 lib/openid_connect/discovery/principal.rb
openid_connect-0.1.3 lib/openid_connect/discovery/principal.rb
openid_connect-0.1.2 lib/openid_connect/discovery/principal.rb
openid_connect-0.1.1 lib/openid_connect/discovery/principal.rb
openid_connect-0.1.0 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.33 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.32 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.31 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.30 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.29 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.28 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.27 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.26 lib/openid_connect/discovery/principal.rb
openid_connect-0.0.25 lib/openid_connect/discovery/principal.rb