def openid_discovery(url)
ret = @fetcher.get(url)
return [HTTP_FAILURE, nil] if ret.nil?
consumer_id, data = ret
server = nil
delegate = nil
parse_link_attrs(data) do |attrs|
rel = attrs["rel"]
if rel == "openid.server" and server.nil?
href = attrs["href"]
server = href unless href.nil?
end
if rel == "openid.delegate" and delegate.nil?
href = attrs["href"]
delegate = href unless href.nil?
end
end
return [PARSE_ERROR, nil] if server.nil?
server_id = delegate.nil? ? consumer_id : delegate
consumer_id = OpenID::Util.normalize_url(consumer_id)
server_id = OpenID::Util.normalize_url(server_id)
server_url = OpenID::Util.normalize_url(server)
service = OpenID::FakeOpenIDServiceEndpoint.new(consumer_id,
server_id,
server_url)
return [SUCCESS, service]
end