2012-03-22 12 views
14

http etkileşimlerini kaydetmek ve ileride tekrar oynatmak için VCR gem kullanıyorum. Uri isteğimde gerçek şifre değerimi filtrelemek istiyorum. Bir açıklaması burada sağlananVCR ile hassas verilerin filtrelenmesi

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

olsa da onu bir kaç denemeden sonra kendim yapmak nasıl emin değilim:

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

Herhangi bir yardım Burada uri neye benzediğini örnek var Takdir edilecektir.

+0

unutmamak emin sen

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

yapmak isteyebilirsiniz secrets.yml kullanıyorsanız, sadece alfasayısal belirlemek için regex'i kullanabilirsiniz Parola = ve daha önce & sonra chars – keruilin

cevap

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

Esasen, VCR tutucu metin biraz vermek ve sonra blok kanonik parola "depo" ne olursa olsun onu okuyarak, gerçek şifreyi dönmek gerekiyor.

Gerçek parolanın yalnızca, istek kaydedildiğinde ilk kez gerekli olduğunu unutmayın; Sonraki işlemlerde, sahte bir parola olabilir (istekte bulunan kod tarafından kullanılan aynı sahte parola olduğu sürece). 4+ raylar için