From caa4c97bc2510c4fb454b1e3d8831129e226b617 Mon Sep 17 00:00:00 2001 From: David O'Sullivan Date: Tue, 29 Nov 2022 17:10:53 +0000 Subject: [PATCH] Disables loading certificates when NIK is used with Java 18+ --- jdk.go | 2 +- jlink.go | 2 +- jre.go | 2 +- nik.go | 8 ++++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/jdk.go b/jdk.go index ecbc001..931010b 100644 --- a/jdk.go +++ b/jdk.go @@ -88,7 +88,7 @@ func (j JDK) Contribute(layer libcnb.Layer) (libcnb.Layer, error) { return libcnb.Layer{}, fmt.Errorf("unable to load certificates\n%w", err) } } else { - j.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) + j.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18+, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) } return layer, nil }) diff --git a/jlink.go b/jlink.go index 6e4af12..6c7d034 100644 --- a/jlink.go +++ b/jlink.go @@ -93,7 +93,7 @@ func (j JLink) Contribute(layer libcnb.Layer) (libcnb.Layer, error) { return libcnb.Layer{}, fmt.Errorf("unable to load certificates\n%w", err) } } else { - j.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) + j.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18+, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) } if IsBuildContribution(j.Metadata) { diff --git a/jre.go b/jre.go index bde3e4b..ddc8322 100644 --- a/jre.go +++ b/jre.go @@ -94,7 +94,7 @@ func (j JRE) Contribute(layer libcnb.Layer) (libcnb.Layer, error) { return libcnb.Layer{}, fmt.Errorf("unable to load certificates\n%w", err) } } else { - j.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) + j.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18+, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) } if IsBuildContribution(j.Metadata) { diff --git a/nik.go b/nik.go index bf90e13..e1600f7 100644 --- a/nik.go +++ b/nik.go @@ -123,8 +123,12 @@ func (n NIK) Contribute(layer libcnb.Layer) (libcnb.Layer, error) { return libcnb.Layer{}, fmt.Errorf("unable to set keystore file permissions\n%w", err) } - if err := n.CertificateLoader.Load(keyStorePath, "changeit"); err != nil { - return libcnb.Layer{}, fmt.Errorf("unable to load certificates\n%w", err) + if IsBeforeJava18(n.JDKDependency.Version) { + if err := n.CertificateLoader.Load(keyStorePath, "changeit"); err != nil { + return libcnb.Layer{}, fmt.Errorf("unable to load certificates\n%w", err) + } + } else { + n.Logger.Bodyf("%s: The JVM cacerts entries cannot be loaded with Java 18+, for more information see: https://github.com/paketo-buildpacks/libjvm/issues/158", color.YellowString("Warning")) } if n.NativeDependency != nil {