@@ -33,6 +33,7 @@ def compile
3333
3434 @droplet . copy_resources
3535 @droplet . security_providers << 'com.ingrian.security.nae.IngrianProvider'
36+ @droplet . additional_libraries << protect_app_jar if @droplet . java_home . java_9_or_later?
3637
3738 credentials = @application . services . find_service ( FILTER , 'client' , 'trusted_certificates' ) [ 'credentials' ]
3839
@@ -44,7 +45,11 @@ def compile
4445
4546 # (see JavaBuildpack::Component::BaseComponent#release)
4647 def release
47- @droplet . extension_directories << @droplet . sandbox + 'ext'
48+ if @droplet . java_home . java_9_or_later?
49+ @droplet . additional_libraries << protect_app_jar
50+ else
51+ @droplet . extension_directories << ext_dir
52+ end
4853
4954 credentials = @application . services . find_service ( FILTER ) [ 'credentials' ]
5055 java_opts = @droplet . java_opts
@@ -55,9 +60,7 @@ def release
5560 . add_system_property ( 'com.ingrian.security.nae.Key_Store_Location' , keystore )
5661 . add_system_property ( 'com.ingrian.security.nae.Key_Store_Password' , password )
5762
58- credentials
59- . reject { |key , _ | key =~ /^client$/ || key =~ /^trusted_certificates$/ }
60- . each { |key , value | java_opts . add_system_property ( "com.ingrian.security.nae.#{ key } " , value ) }
63+ add_additional_properties ( credentials , java_opts )
6164 end
6265
6366 protected
@@ -73,6 +76,12 @@ def supports?
7376
7477 private_constant :FILTER
7578
79+ def add_additional_properties ( credentials , java_opts )
80+ credentials
81+ . reject { |key , _ | key =~ /^client$/ || key =~ /^trusted_certificates$/ }
82+ . each { |key , value | java_opts . add_system_property ( "com.ingrian.security.nae.#{ key } " , value ) }
83+ end
84+
7685 def add_client_credentials ( pkcs12 )
7786 shell "#{ keytool } -importkeystore -noprompt -destkeystore #{ keystore } -deststorepass #{ password } " \
7887 "-srckeystore #{ pkcs12 . path } -srcstorepass #{ password } -srcstoretype pkcs12" \
@@ -88,6 +97,10 @@ def add_trusted_certificates(trusted_certificates)
8897 end
8998 end
9099
100+ def ext_dir
101+ @droplet . sandbox + 'ext'
102+ end
103+
91104 def keystore
92105 @droplet . sandbox + 'nae-keystore.jks'
93106 end
@@ -113,6 +126,10 @@ def password
113126 'nae-keystore-password'
114127 end
115128
129+ def protect_app_jar
130+ ext_dir + "IngrianNAE-#{ @version } .000.jar"
131+ end
132+
116133 def write_certificate ( certificate )
117134 Tempfile . open ( 'certificate-' ) do |f |
118135 f . write "#{ certificate } \n "
0 commit comments