2012-03-22 94 views
14

我正在使用VCR gem來記錄http交互並在將來重放它們。我想在uri請求中過濾掉我的實際密碼值。這是一個什麼樣的URI看起來像樣品:使用VCR過濾敏感數據

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

雖然說明這裏提供的,我真不知道該怎麼辦呢嘗試幾次後自己:

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

任何幫助將不勝感激。

+0

實際上,我可以只使用正則表達式來識別字母字符後密碼=和之前& – keruilin 2012-03-22 03:52:34

回答

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

從本質上講,你給VCR位佔位符文本,然後塊需要返回真正的密碼,無論從任何規範的密碼「庫」是閱讀它。

請注意,只有在第一次記錄請求時才需要真實密碼;在後續運行中,它可能是一個虛假密碼(只要它與提出請求的代碼所使用的假密碼相同)。

5

鋼軌4+,如果你正在使用secrets.yml你可能想要做

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

現在你一定不要忘記任何