Фильтрация конфиденциальных данных с помощью видеомагнитофона

Я использую камкордер VCR для записи http-взаимодействий и повторного воспроизведения их в будущем. Я хочу отфильтровать свое фактическое значение пароля в запросе uri. Вот пример того, как выглядит uri:

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

Любая помощь будет оценена.

Ответ 1

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

По существу, вы предоставляете видеомагнитофону немного текста-заполнителя, а затем блок должен вернуть реальный пароль, читая его из любого канонического пароля "репозиторий".

Обратите внимание, что реальный пароль необходим только в первый раз, когда запрос записывается; при последующих прогонах это может быть поддельный пароль (при условии, что тот же поддельный пароль используется кодом, создающим запрос).

Ответ 2

для rails 4+, если вы используете secrets.yml, вы можете захотеть сделать

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

теперь вы обязательно не забудете