Revert "IZ MS webfinger now trys ssl first, then http"

This reverts commit af3247b62f.
This commit is contained in:
maxwell 2010-11-02 17:37:45 -07:00
parent 0db30bb221
commit 153265aae8
2 changed files with 14 additions and 51 deletions

View file

@ -6,7 +6,6 @@ class EMWebfinger
def initialize(account)
@account = account.strip.gsub('acct:','').to_s
@callbacks = []
@ssl = true
# Raise an error if identifier has a port number
raise "Identifier is invalid" if(@account.strip.match(/\:\d+$/))
# Raise an error if identifier is not a valid email (generous regexp)
@ -35,9 +34,6 @@ class EMWebfinger
profile_url = webfinger_profile_url(http.response)
if profile_url
get_webfinger_profile(profile_url)
elsif @ssl
@ssl = false
get_xrd
else
process_callbacks "webfinger does not seem to be enabled for #{@account}'s host"
end
@ -77,18 +73,25 @@ class EMWebfinger
##helpers
private
def check_nil_response(html)
end
def webfinger_profile_url(xrd_response)
doc = Nokogiri::XML::Document.parse(xrd_response)
return nil if doc.namespaces["xmlns"] != "http://docs.oasis-open.org/ns/xri/xrd-1.0"
swizzle doc.at('Link[rel=lrdd]').attribute('template').value
end
def xrd_url
def xrd_url(ssl = false)
domain = @account.split('@')[1]
"http#{'s' if @ssl}://#{domain}/.well-known/host-meta"
"http#{'s' if ssl}://#{domain}/.well-known/host-meta"
end
def swizzle(template)
template.gsub '{uri}', @account
end
end

View file

@ -47,11 +47,6 @@ describe EMWebfinger do
EMWebfinger.new('eviljoe@diaspora.local:3000')
}.should raise_error(RuntimeError, "Identifier is invalid")
end
it 'should set ssl as the default' do
foo = EMWebfinger.new(account)
foo.instance_variable_get(:@ssl).should be true
end
end
@ -99,14 +94,14 @@ describe EMWebfinger do
end
describe '#xrd_url' do
it 'should return canonical host-meta url for http' do
finger.instance_variable_set(:@ssl, false)
it 'should return canonical host-meta url' do
finger.send(:xrd_url).should == "http://tom.joindiaspora.com/.well-known/host-meta"
end
it 'can return the https version' do
finger.send(:xrd_url).should == "https://tom.joindiaspora.com/.well-known/host-meta"
finger.send(:xrd_url, true).should == "https://tom.joindiaspora.com/.well-known/host-meta"
end
end
end
@ -132,44 +127,9 @@ describe EMWebfinger do
EM.run {
f.on_person{ |p|
p.valid?.should be true
EM.stop
}
p.valid?.should be true
EM.stop
}
end
it 'should retry with http if https fails' do
good_request.callbacks = [nil, diaspora_xrd, diaspora_finger, hcard_xml]
#new_person = Factory.build(:person, :diaspora_handle => "tom@tom.joindiaspora.com")
# http://tom.joindiaspora.com/.well-known/host-meta
f = EMWebfinger.new("tom@tom.joindiaspora.com")
EventMachine::HttpRequest.should_receive(:new).exactly(4).times.and_return(good_request)
f.should_receive(:xrd_url).twice
EM.run {
f.on_person{ |p|
EM.stop
}
}
end
it 'must try https first' do
single_request = FakeHttpRequest.new(:success)
single_request.callbacks = [diaspora_xrd]
good_request.callbacks = [diaspora_finger, hcard_xml]
EventMachine::HttpRequest.should_receive(:new).with("https://tom.joindiaspora.com/.well-known/host-meta").and_return(single_request)
EventMachine::HttpRequest.should_receive(:new).exactly(2).and_return(good_request)
f = EMWebfinger.new("tom@tom.joindiaspora.com")
EM.run {
f.on_person{ |p|
EM.stop
}
}
end
end