def find_identity_info(identity_url)
begin
url = self.normalize_url(identity_url)
rescue URI::InvalidURIError
return [HTTP_FAILURE, nil]
end
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 = self.normalize_url(consumer_id)
server_id = self.normalize_url(server_id)
server = self.normalize_url(server)
return [SUCCESS, [consumer_id, server_id, server].freeze]
end