mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-28 12:58:48 +01:00
Upgraded to open_id_authentication plugin at 00d8bc7f97 and unpacked ruby-openid gem version 2.1.2.
This commit is contained in:
parent
6149900e0c
commit
e92dae2ffc
227 changed files with 30857 additions and 669 deletions
58
vendor/gems/ruby-openid-2.1.2/lib/openid/kvpost.rb
vendored
Normal file
58
vendor/gems/ruby-openid-2.1.2/lib/openid/kvpost.rb
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
require "openid/message"
|
||||
require "openid/fetchers"
|
||||
|
||||
module OpenID
|
||||
# Exception that is raised when the server returns a 400 response
|
||||
# code to a direct request.
|
||||
class ServerError < OpenIDError
|
||||
attr_reader :error_text, :error_code, :message
|
||||
|
||||
def initialize(error_text, error_code, message)
|
||||
super(error_text)
|
||||
@error_text = error_text
|
||||
@error_code = error_code
|
||||
@message = message
|
||||
end
|
||||
|
||||
def self.from_message(msg)
|
||||
error_text = msg.get_arg(OPENID_NS, 'error',
|
||||
'<no error message supplied>')
|
||||
error_code = msg.get_arg(OPENID_NS, 'error_code')
|
||||
return self.new(error_text, error_code, msg)
|
||||
end
|
||||
end
|
||||
|
||||
class KVPostNetworkError < OpenIDError
|
||||
end
|
||||
class HTTPStatusError < OpenIDError
|
||||
end
|
||||
|
||||
class Message
|
||||
def self.from_http_response(response, server_url)
|
||||
msg = self.from_kvform(response.body)
|
||||
case response.code.to_i
|
||||
when 200
|
||||
return msg
|
||||
when 206
|
||||
return msg
|
||||
when 400
|
||||
raise ServerError.from_message(msg)
|
||||
else
|
||||
error_message = "bad status code from server #{server_url}: "\
|
||||
"#{response.code}"
|
||||
raise HTTPStatusError.new(error_message)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Send the message to the server via HTTP POST and receive and parse
|
||||
# a response in KV Form
|
||||
def self.make_kv_post(request_message, server_url)
|
||||
begin
|
||||
http_response = self.fetch(server_url, request_message.to_url_encoded)
|
||||
rescue Exception
|
||||
raise KVPostNetworkError.new("Unable to contact OpenID server: #{$!.to_s}")
|
||||
end
|
||||
return Message.from_http_response(http_response, server_url)
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue