Pregunta

He estado tratando de conectarse a un servicio web que está utilizando la autenticación implícita.

Soy capaz de conectar en Safari usando usuario: password@service.site.com/endpoint

He tratado de Ruby y Rails para conectar usando HTTParty y Net: HTTP usando las opciones "básicas" autenticación", pero no he tenido suerte

.

Se pregunta si el HTTParty / Neto: HTTP opción "Basic_Auth" no va a ser compatible con un servicio de "digerir autenticación"?

Si no es así, ¿hay otra manera que yo pueda conectar?

¿Fue útil?

Solución

HTTParty autenticación básica aparentemente no es compatible con digest_auth. He encontrado esta neto: HTTP extensión: https://codesnippets.joyent.com/posts/show/ 1075 y escribo un método para manejar esto, con la ayuda de la gema grieta http: // github .com / jnunemaker / agrietarse :

 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  

Otros consejos

No se pudo llegar a los CodeSnippets vínculo anterior hoy, pero el código también está disponible aquí https: // gist.github.com/73102. He utilizado este éxito para la autenticación implícita, pero se encontró con problemas con la solicitud múltiple, consiguiendo errores 'nonce cliente rancios' - resueltos mediante la generación de un nuevo valor de uso único dentro de la función digest_auth cada vez que fue llamado. ¿No ha encontrado tanto en que miré, así que espero que esto ayude a alguien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top