Save zanzifile passwords to disk
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user