50 lines
1.2 KiB
Ruby
50 lines
1.2 KiB
Ruby
#!/usr/bin/env ruby
|
|
require "openid/consumer/discovery"
|
|
require 'openid/fetchers'
|
|
|
|
OpenID::fetcher_use_env_http_proxy
|
|
|
|
$names = [[:server_url, "Server URL "],
|
|
[:local_id, "Local ID "],
|
|
[:canonical_id, "Canonical ID"],
|
|
]
|
|
|
|
def show_services(user_input, normalized, services)
|
|
puts " Claimed identifier: #{normalized}"
|
|
if services.empty?
|
|
puts " No OpenID services found"
|
|
puts
|
|
else
|
|
puts " Discovered services:"
|
|
n = 0
|
|
services.each do |service|
|
|
n += 1
|
|
puts " #{n}."
|
|
$names.each do |meth, name|
|
|
val = service.send(meth)
|
|
if val
|
|
printf(" %s: %s\n", name, val)
|
|
end
|
|
end
|
|
puts " Type URIs:"
|
|
for type_uri in service.type_uris
|
|
puts " * #{type_uri}"
|
|
end
|
|
puts
|
|
end
|
|
end
|
|
end
|
|
|
|
ARGV.each do |openid_identifier|
|
|
puts "=" * 50
|
|
puts "Running discovery on #{openid_identifier}"
|
|
begin
|
|
normalized_identifier, services = OpenID.discover(openid_identifier)
|
|
rescue OpenID::DiscoveryFailure => why
|
|
puts "Discovery failed: #{why.message}"
|
|
puts
|
|
else
|
|
show_services(openid_identifier, normalized_identifier, services)
|
|
end
|
|
end
|