Ruby-openid: @socket is not installed when performing a search

I have a truble bit with omniauth / openid.

When trying to authenticate, I found this in my logs:

OpenID::FetchingError: Error fetching https://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username: undefined method `io' for nil:NilClass

The important thing undefined method io' for nil:NilClassthat comes from openid / fetchers.rb in the following snippet:

module Net
class HTTP
def post_connection_check(hostname)
  check_common_name = true
  cert = @socket.io.peer_cert
  cert.extensions.each { |ext|
    next if ext.oid != "subjectAltName"
    ext.value.split(/,\s+/).each{ |general_name|
      if /\ADNS:(.*)/ =~ general_name
        check_common_name = false
...

This error is generated @socket.io.peer_cert, @socket is not defined.

Have any of you had this before? Not quite sure what the reason is.

The versions I run are:

  • ruby 1.9.3dev (2010-08-17 trunk 29020) [x86_64-darwin10.4.0]
  • ruby-openid (2.1.8)
  • ruby-openid-apps-discovery (1.2.0)
  • omniauth 0.2.0
+5
source share
2 answers

, , Net:: HTTP # connect . , fakeweb, , ( ).

fakeweb #connect, @socket .

group :test do
  gem 'fakeweb'
end
+7

fakeweb webmock ( VCR gem). fakeweb typhoeus, , .

+1

All Articles