class OpenID::Consumer::SuccessResponse

A successful acknowledgement from the OpenID server that the supplied URL is, indeed controlled by the requesting agent.

Constants

STATUS

Attributes

message[R]
signed_fields[R]

Public Class Methods

new(endpoint, message, signed_fields) click to toggle source
# File lib/openid/consumer/responses.rb, line 62
def initialize(endpoint, message, signed_fields)
  # Don't use :endpoint=, because endpoint should never be nil
  # for a successfull transaction.
  @endpoint = endpoint
  @identity_url = endpoint.claimed_id
  @message = message
  @signed_fields = signed_fields
end

Public Instance Methods

extension_response(namespace_uri, require_signed) click to toggle source

Return response arguments in the specified namespace. If require_signed is true and the arguments are not signed, return nil.

# File lib/openid/consumer/responses.rb, line 109
def extension_response(namespace_uri, require_signed)
  if require_signed
    get_signed_ns(namespace_uri)
  else
    @message.get_args(namespace_uri)
  end
end
get_signed(ns_uri, ns_key, default=nil) click to toggle source

Return the specified signed field if available, otherwise return default

# File lib/openid/consumer/responses.rb, line 85
def get_signed(ns_uri, ns_key, default=nil)
  if signed?(ns_uri, ns_key)
    return @message.get_arg(ns_uri, ns_key, default)
  else
    return default
  end
end
get_signed_ns(ns_uri) click to toggle source

Get signed arguments from the response message. Return a dict of all arguments in the specified namespace. If any of the arguments are not signed, return nil.

# File lib/openid/consumer/responses.rb, line 96
def get_signed_ns(ns_uri)
  msg_args = @message.get_args(ns_uri)
  msg_args.each_key do |key|
    if !signed?(ns_uri, key)
      return nil
    end
  end
  return msg_args
end
is_openid1() click to toggle source

Was this authentication response an OpenID 1 authentication response?

# File lib/openid/consumer/responses.rb, line 73
def is_openid1
  @message.is_openid1
end
signed?(ns_uri, ns_key) click to toggle source

Return whether a particular key is signed, regardless of its namespace alias

# File lib/openid/consumer/responses.rb, line 79
def signed?(ns_uri, ns_key)
  @signed_fields.member?(@message.get_key(ns_uri, ns_key))
end