def findIdentityInfo(identity_url)
begin
url = self.normalizeURL(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
parseLinkAttrs(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.normalizeURL(consumer_id)
server_id = self.normalizeURL(server_id)
server = self.normalizeURL(server)
return [SUCCESS, [consumer_id, server_id, server].freeze]
end