Sha256: efd46b2c7b94953dcd178e12c4728587cc5ec936757d0d89e0474194d6278c90

Contents?: true

Size: 901 Bytes

Versions: 1

Compression:

Stored size: 901 Bytes

Contents

require 'swd'

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

      def initialize(identifier)
        raise InvalidIdentifier if identifier.blank?
        type = case identifier
        when /^(=|@|!)/
          XRI
        when /@/
          Email
        else
          URI
        end
        principal = type.new identifier
        @identifier = principal.identifier
        @host = principal.host
      end

      def discover!
        SWD.discover!(
          :principal => identifier,
          :service => 'http://openid.net/specs/connect/1.0/issuer',
          :host => host
        )
      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

1 entries across 1 versions & 1 rubygems

Version Path
openid_connect-0.0.13 lib/openid_connect/discovery/principal.rb