2012-03-22 8 views
14

के साथ संवेदनशील डेटा फ़िल्टर करना मैं http इंटरैक्शन रिकॉर्ड करने और भविष्य में उन्हें फिर से चलाने के लिए वीसीआर मणि का उपयोग कर रहा हूं। मैं यूरी अनुरोध में अपना वास्तविक पासवर्ड मान फ़िल्टर करना चाहता हूं। पर स्पष्टीकरण प्रदान की जाती हैवीसीआर

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

किसी भी मदद यहाँ uri तरह लग रहा है का नमूना है सराहनीय होगा।

+0

भूलना नहीं यकीन है कि कर रहे हैं, मैं सिर्फ regex का उपयोग कर सकता है अक्षरांकीय पहचान करने के लिए पासवर्ड के बाद अक्षर = और पहले & – keruilin

उत्तर

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

अनिवार्य रूप से, आप वीसीआर प्लेसहोल्डर पाठ का एक सा देने के लिए, और उसके बाद ब्लॉक से जो कुछ भी विहित पासवर्ड "भंडार" है इसे पढ़ने, वास्तविक पासवर्ड वापस जाने के लिए की जरूरत है।

ध्यान दें कि वास्तविक पासवर्ड केवल पहली बार आवश्यक है, जब अनुरोध दर्ज किया गया हो; बाद के रनों पर, यह एक नकली पासवर्ड हो सकता है (जब तक यह अनुरोध करने वाले कोड द्वारा उपयोग किया जाने वाला वही नकली पासवर्ड है)।

5
रेल के लिए 4

, यदि आप उपयोग कर रहे हैं secrets.yml आप

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

क्या करना चाहते हो सकता है अब आप वास्तव में किसी भी