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 に少しのプレースホルダー テキストを与えると、ブロックは正規のパスワード「リポジトリ」が何であれ、それを読み取って実際のパスワードを返す必要があります。
実際のパスワードが必要になるのは、リクエストが記録される最初のときだけであることに注意してください。以降の実行では、偽のパスワードになる可能性があります (リクエストを行うコードで使用されているのと同じ偽のパスワードである限り)。