Domanda

Ho cercato di connettersi a un servizio Web che utilizza l'autenticazione digest.

Sono in grado di connettersi in Safari utilizzando utente: password@service.site.com/endpoint

ho provato in Ruby e Rails di connettersi utilizzando HTTParty e Net: HTTP usando le opzioni "di base" auth", ma non ho avuto alcuna fortuna

.

Chiedendosi se il HTTParty / Net: HTTP opzione "Basic_Auth" non sta per essere compatibile con un servizio di "digerire auth"?

In caso contrario, c'è un altro modo che io possa collegare?

È stato utile?

Soluzione

HTTParty autenticazione di base non è evidentemente compatibile con digest_auth. Ho trovato questo netto: HTTP estensione: https://codesnippets.joyent.com/posts/show/ 1075 e sto scrivendo un metodo per gestire questa situazione, con l'aiuto della gemma Crack http: // GitHub .com / jnunemaker / crack :

 def self.decode vin
    url = URI.parse(APP_CONFIG[:vinlink_url])
    Net::HTTP.start(url.host) do |http|
      res = http.head(url.request_uri)
      req = Net::HTTP::Get.new("/report?type=basic&vin=#{vin}")
      req.digest_auth(APP_CONFIG[:vinlink_login], APP_CONFIG[:vinlink_password], res)
      @response = http.request(req)
    end
    if @response.code == "200"
      hash = Crack::XML.parse(@response.body).recursive_downcase_keys!.recursive_symbolize_keys!
    end
  end  

Altri suggerimenti

non è stato in grado di raggiungere le codesnippets collegamento sopra riportato oggi, ma il codice è disponibile qui anche https: // gist.github.com/73102 . Ho usato questo successo per l'autenticazione del digest, ma sono imbattuto in problemi con richiesta multipla, ottenendo gli errori 'Stale client nonce' - risolte mediante la generazione di un nuovo nonce all'interno della funzione digest_auth ogni volta che è stato chiamato. Non hai trovato tanto su che quando ho guardato, quindi spero che questo aiuta qualcuno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top