discover
49 lines
| 1.2 KiB
| text/plain
|
TextLexer
|
r2376 | #!/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 | ||||