From 3661a1f5d1feedbd7d9d1ca2dbc770a805080969 Mon Sep 17 00:00:00 2001 From: mo khan Date: Mon, 14 Sep 2020 17:42:41 -0600 Subject: test: generate a random x509 cert --- lib/e2e/docker.rb | 6 +++--- spec/gemnasium_maven_spec.rb | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/e2e/docker.rb b/lib/e2e/docker.rb index be85e53..3a08c8c 100644 --- a/lib/e2e/docker.rb +++ b/lib/e2e/docker.rb @@ -19,12 +19,12 @@ class Docker end def run(image:, project_path: Pathname.pwd, env: {}, debug: ENV.fetch('DEBUG', 'false') == 'true') - env_options = DEFAULT_ENV.merge(env).map { |(key, value)| "--env #{key}=#{value}" } + env_options = DEFAULT_ENV.merge(env).map { |(key, value)| "--env #{key}='#{value}'" } Dir.chdir pwd do command = if debug - expand([:docker, :run, '-it', "--entrypoint=''", '--rm', "--volume=#{project_path}:/tmp/app", '--network=host', env_options, image, '/bin/bash -l']) + expand([:docker, :run, '-it', "--entrypoint=''", '--rm', "--volume=#{project_path}:/tmp/app", '--add-host=maven.test:127.0.0.1', '--network=host', env_options, image, '/bin/bash -l']) else - expand([:docker, :run, '--rm', "--volume=#{project_path}:/tmp/app", '--network=host', env_options, image, '/analyzer run']) + expand([:docker, :run, '--rm', "--volume=#{project_path}:/tmp/app", '--network=host', '--add-host=maven.test:127.0.0.1', env_options, image, '/analyzer run']) end system(command, exception: true) end diff --git a/spec/gemnasium_maven_spec.rb b/spec/gemnasium_maven_spec.rb index b20d9d9..60d7a87 100644 --- a/spec/gemnasium_maven_spec.rb +++ b/spec/gemnasium_maven_spec.rb @@ -1,3 +1,5 @@ +require 'openssl' + RSpec.describe 'gemnasium-maven' do context "when scanning a java project with packages from a custom source" do subject do @@ -10,8 +12,20 @@ RSpec.describe 'gemnasium-maven' do let(:docker) { Docker.new(pwd: Pathname.pwd.join('src/gemnasium-maven')) } let(:project_path) { project.path } let(:docker_image) { 'gemnasium-maven:latest' } - let(:env) { { } } + let(:env) { { 'ADDITIONAL_CA_CERT_BUNDLE' => x509 } } let(:project) { Project.new } + let(:x509) do + rsa_key = OpenSSL::PKey::RSA.new(4096) + certificate = OpenSSL::X509::Certificate.new + certificate.subject = certificate.issuer = OpenSSL::X509::Name.parse("/C=/ST=/L=/O=/OU=/CN=") + certificate.not_before = Time.now.to_i + certificate.not_after = Time.now.to_i + 600 + certificate.public_key = rsa_key.public_key + certificate.serial = 0x01 + certificate.version = 2 + certificate.sign(rsa_key, OpenSSL::Digest::SHA256.new) + certificate.to_pem + end around(:example) do |example| project.mount(dir: fixture_file('java/maven/custom-tls')) -- cgit v1.2.3