Class: OpenID::Consumer::SuccessResponse

Inherits:
Object
  • Object
show all
Includes:
Response
Defined in:
lib/openid/consumer/responses.rb

Overview

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

Constant Summary collapse

STATUS =
SUCCESS

Instance Attribute Summary collapse

Attributes included from Response

#endpoint

Instance Method Summary collapse

Methods included from Response

#display_identifier, #identity_url, #status

Constructor Details

#initialize(endpoint, message, signed_fields) ⇒ SuccessResponse

Returns a new instance of SuccessResponse.



62
63
64
65
66
67
68
69
# 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

Instance Attribute Details

#messageObject (readonly)

Returns the value of attribute message.



60
61
62
# File 'lib/openid/consumer/responses.rb', line 60

def message
  @message
end

#signed_fieldsObject (readonly)

Returns the value of attribute signed_fields.



60
61
62
# File 'lib/openid/consumer/responses.rb', line 60

def signed_fields
  @signed_fields
end

Instance Method Details

#extension_response(namespace_uri, require_signed) ⇒ Object

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



109
110
111
112
113
114
115
# 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) ⇒ Object

Return the specified signed field if available, otherwise return default



85
86
87
88
89
90
91
# 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) ⇒ Object

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.



96
97
98
99
100
101
102
103
104
# 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_openid1Object

Was this authentication response an OpenID 1 authentication response?



73
74
75
# File 'lib/openid/consumer/responses.rb', line 73

def is_openid1
  @message.is_openid1
end

#signed?(ns_uri, ns_key) ⇒ Boolean

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

Returns:

  • (Boolean)


79
80
81
# 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