Question

Je suis en train de se connecter à un service Web qui utilise l'authentification digest.

Je suis capable de se connecter à Safari en utilisant l'utilisateur: password@service.site.com/endpoint

Je l'ai essayé en Ruby et Rails pour se connecter en utilisant HTTParty et Net: HTTP en utilisant les options auth » « de base », mais ne l'ai pas eu de chance

.

Vous vous demandez si le HTTParty / Net: l'option HTTP "de Basic_Auth" ne va pas être compatible avec un service "digérer auth"?

Dans le cas contraire, est-il une autre façon que je pourrais connecter?

Était-ce utile?

La solution

HTTParty auth de base est apparemment pas compatible avec digest_auth. J'ai trouvé ce net: l'extension HTTP: https://codesnippets.joyent.com/posts/show/ 1075 et je suis en train d'écrire une méthode pour gérer cela, avec l'aide de la gemme Crack http: // github .com / jnunemaker / craquer :

 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  

Autres conseils

n'a pas été en mesure d'obtenir les codesnippets lien ci-dessus aujourd'hui, mais le code est également disponible ici https: // gist.github.com/73102. Je l'ai utilisé avec succès ce pour digérer l'authentification, mais eu des problèmes avec la demande multiple, obtenir des erreurs « client nonce Stale » - résolus en générant un nouveau nonce dans la fonction digest_auth chaque fois qu'il a été appelé. Vous ne trouvez pas grand-chose sur que quand je regardais, alors espérons que cela aide quelqu'un.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top