Skip to content

Commit 468dbff

Browse files
committed
Merge branch '3.x'
2 parents f8369eb + 2110750 commit 468dbff

File tree

2 files changed

+52
-6
lines changed

2 files changed

+52
-6
lines changed

lib/java_buildpack/framework/container_certificate_trust_store.rb

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ def compile
3030

3131
with_timing("Adding certificates to #{trust_store.relative_path_from(@droplet.root)}") do
3232
FileUtils.mkdir_p trust_store.parent
33-
34-
shell "#{java} -jar #{@droplet.sandbox + jar_name} --container-source #{ca_certificates} --destination " \
35-
"#{trust_store} --destination-password #{password} --jre-source #{cacerts} --jre-source-password " \
36-
'changeit'
33+
shell command
3734
end
3835
end
3936

@@ -68,18 +65,30 @@ def ca_certificates
6865
end
6966
end
7067

71-
def cacerts
72-
@droplet.java_home.root + 'lib/security/cacerts'
68+
def command
69+
command = "#{java} -jar #{@droplet.sandbox + jar_name} --container-source #{ca_certificates} --destination " \
70+
"#{trust_store} --destination-password #{password}"
71+
command += " --jre-source #{jre_cacerts} --jre-source-password changeit" if jre_cacerts.exist?
72+
command += " --jre-source #{server_jre_cacerts} --jre-source-password changeit" if server_jre_cacerts.exist?
73+
command
7374
end
7475

7576
def java
7677
@droplet.java_home.root + 'bin/java'
7778
end
7879

80+
def jre_cacerts
81+
@droplet.java_home.root + 'lib/security/cacerts'
82+
end
83+
7984
def password
8085
'java-buildpack-trust-store-password'
8186
end
8287

88+
def server_jre_cacerts
89+
@droplet.java_home.root + 'jre/lib/security/cacerts'
90+
end
91+
8392
def supports_configuration?
8493
@configuration['enabled']
8594
end

spec/java_buildpack/framework/container_certificate_trust_store_spec.rb

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
require 'spec_helper'
1818
require 'component_helper'
19+
require 'fileutils'
1920
require 'java_buildpack/framework/container_certificate_trust_store'
2021

2122
describe JavaBuildpack::Framework::ContainerCertificateTrustStore do
@@ -44,6 +45,23 @@
4445
it 'creates truststore',
4546
cache_fixture: 'stub-container-customizer.jar' do
4647

48+
allow(component).to receive(:ca_certificates).and_return(ca_certificates)
49+
allow(component).to receive(:shell).with("#{java_home.root}/bin/java -jar " \
50+
"#{sandbox}/container_certificate_trust_store-0.0.0.jar " \
51+
"--container-source #{ca_certificates} " \
52+
"--destination #{sandbox}/truststore.jks " \
53+
'--destination-password java-buildpack-trust-store-password')
54+
55+
component.compile
56+
end
57+
58+
it 'creates truststore with jre source',
59+
cache_fixture: 'stub-container-customizer.jar' do
60+
61+
cacerts = java_home.root + 'lib/security/cacerts'
62+
FileUtils.mkdir_p(cacerts.parent)
63+
FileUtils.touch(cacerts)
64+
4765
allow(component).to receive(:ca_certificates).and_return(ca_certificates)
4866
allow(component).to receive(:shell).with("#{java_home.root}/bin/java -jar " \
4967
"#{sandbox}/container_certificate_trust_store-0.0.0.jar " \
@@ -56,6 +74,25 @@
5674
component.compile
5775
end
5876

77+
it 'creates truststore with server jre source',
78+
cache_fixture: 'stub-container-customizer.jar' do
79+
80+
cacerts = java_home.root + 'jre/lib/security/cacerts'
81+
FileUtils.mkdir_p(cacerts.parent)
82+
FileUtils.touch(cacerts)
83+
84+
allow(component).to receive(:ca_certificates).and_return(ca_certificates)
85+
allow(component).to receive(:shell).with("#{java_home.root}/bin/java -jar " \
86+
"#{sandbox}/container_certificate_trust_store-0.0.0.jar " \
87+
"--container-source #{ca_certificates} " \
88+
"--destination #{sandbox}/truststore.jks " \
89+
'--destination-password java-buildpack-trust-store-password ' \
90+
"--jre-source #{java_home.root}/jre/lib/security/cacerts " \
91+
'--jre-source-password changeit')
92+
93+
component.compile
94+
end
95+
5996
it 'adds truststore properties' do
6097
component.release
6198
expect(java_opts).to include('-Djavax.net.ssl.trustStore=$PWD/.java-buildpack/container_certificate_trust_store/' \

0 commit comments

Comments
 (0)