Save zanzifile passwords to disk

This commit is contained in:
Jason Davis-Cooke
2015-02-26 08:56:43 -05:00
parent ed496bd416
commit 179fa24ab9
3 changed files with 14 additions and 4 deletions

View File

@@ -139,7 +139,7 @@ module Zanzibar
## Write the password to a file. Intended for use with a Zanzifile ## Write the password to a file. Intended for use with a Zanzifile
def save_password_to_file(password, path, name) def save_password_to_file(password, path, name)
File.open(File.join(path, name), 'wb') do |file| File.open(File.join(path, name), 'wb') do |file|
file.puts password file.print Base64.strict_encode64(password)
end end
end end

View File

@@ -44,7 +44,7 @@ module Zanzibar
end end
def ensure_secrets_path def ensure_secrets_path
FileUtils.mkdir_p(@settings['secret_dir']) FileUtils.mkdir_p(@settings['secret_dir']) unless @settings['secret_dir'] == nil
end end
def resolved_file? def resolved_file?
@@ -85,14 +85,13 @@ module Zanzibar
downloaded_secrets = {} downloaded_secrets = {}
remote_secrets.each do |key, secret| remote_secrets.each do |key, secret|
puts "Downloading #{key} - #{secret['id']}"
downloaded_secrets[key] = download_one_secret(secret['id'], downloaded_secrets[key] = download_one_secret(secret['id'],
secret['label'], secret['label'],
@settings['secret_dir'], @settings['secret_dir'],
args, args,
secret['name'] || "#{secret['id']}_password") secret['name'] || "#{secret['id']}_password")
debug { "Downloaded secret: #{key} to #{secret['path']}..." } debug { "Downloaded secret: #{key} to #{@settings['secret_dir']}..." }
end end
downloaded_secrets downloaded_secrets

View File

@@ -104,6 +104,17 @@ describe 'Zanzibar Test' do
File.delete('attachment.txt') File.delete('attachment.txt')
end end
it 'should save a password to a file' do
stub_request(:any, 'https://www.zanzitest.net/webservices/sswebservice.asmx')
.to_return(body: AUTH_XML, status: 200).then
.to_return(body: SECRET_XML, status: 200)
client.get_password_and_save(1234, '.', 'zanziTestPassword')
expect(File.exist? 'zanziTestPassword')
expect(File.read('zanziTestPassword')).to eq(Base64.strict_encode64('zanziUserPassword'))
File.delete('zanziTestPassword')
end
it 'should use environment variables for credentials' do it 'should use environment variables for credentials' do
ENV['ZANZIBAR_USER'] = 'environment_user' ENV['ZANZIBAR_USER'] = 'environment_user'
ENV['ZANZIBAR_PASSWORD'] = 'environment_password' ENV['ZANZIBAR_PASSWORD'] = 'environment_password'