2012-03-22 12 views
14

Estoy usando la gema VCR para registrar interacciones http y reproducirlas en el futuro. Quiero filtrar mi valor de contraseña real en la solicitud de uri. Aquí está la muestra de lo que el URI se parece a:Filtrar datos confidenciales con la videograbadora

http://services.somesite.com/Services.asmx/Cabins 
Username=long&Password=john&StartDate=03%2F22%2F2012&EndDate=03%2F29%2F2012 

Aunque se presenta una explicación aquí, todavía no estoy seguro de cómo hacerlo después de algunos intentos a mí mismo:

https://www.relishapp.com/myronmarston/vcr/v/2-0-0/docs/configuration/filter-sensitive-data

Cualquier ayuda sería apreciado.

+0

realidad, sólo podía usar expresiones regulares para identificar alfanumérica caracteres después de la contraseña = y antes de & – keruilin

Respuesta

22
VCR.configure do |c| 
    c.filter_sensitive_data("<SOMESITE_PASSWORD>") do 
    ENV['SOMESITE_PASSWORD'] 
    # or $credentials['somesite']['password'] or whatever 
    end 
end 

En esencia, le dan un poco de VCR texto del marcador, y luego el bloque tiene que devolver la contraseña real, leyéndolo desde cualquiera que sea la contraseña canónica "depósito" es.

Tenga en cuenta que la contraseña real solo se necesita la primera vez, cuando se registra la solicitud; en ejecuciones posteriores, puede ser una contraseña falsa (siempre que sea la misma contraseña falsa utilizada por el código que realiza la solicitud).

5

para los carriles 4+, si está utilizando secrets.yml es posible que desee hacer

VCR.configure do |config| 
    Rails.application.secrets.each do |k,v| 
    config.filter_sensitive_data("ENV[#{k}]") { v } 
    end 
end 

ahora usted puede estar seguro de no olvidar ninguna

Cuestiones relacionadas