Techioz Blog

VCR を使用した機密データのフィルタリング

概要

私は VCR gem を使用して http インタラクションを記録し、将来それらを再生しています。 URI リクエスト内の実際のパスワード値をフィルタリングして除外したいと考えています。 URI がどのようになるかのサンプルを次に示します。

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

ここで説明が提供されていますが、自分で何度か試してみても、まだ方法がわかりません。

https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://www.relishapp.com/myronmarston/vcr/v/2-0-0/docs/configuration/filter-sensitive-data

助けていただければ幸いです。

解決策

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

基本的に、VCR に少しのプレースホルダー テキストを与えると、ブロックは正規のパスワード「リポジトリ」が何であれ、それを読み取って実際のパスワードを返す必要があります。

実際のパスワードが必要になるのは、リクエストが記録される最初のときだけであることに注意してください。以降の実行では、偽のパスワードになる可能性があります (リクエストを行うコードで使用されているのと同じ偽のパスワードである限り)。