Fix bad code

This commit is contained in:
Sollace 2022-11-12 09:16:45 +01:00
parent 59fb10c65e
commit c7e91664b5

View file

@ -18,28 +18,31 @@ import org.apache.logging.log4j.Logger;
/** /**
* Credit to https://github.com/Cloudhunter/LetsEncryptCraft * Credit to https://github.com/Cloudhunter/LetsEncryptCraft
*
* @author CloudHunter
* @author Sollace - modified to close resources
*/ */
public class SslHelper { public class SslHelper {
public static void addLetsEncryptCertificate() throws Exception { public static void addLetsEncryptCertificate() throws Exception {
InputStream cert = SslHelper.class.getResourceAsStream("lets-encrypt-x3-cross-signed.der");
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); try (InputStream caInput = SslHelper.class.getResourceAsStream("/lets-encrypt-x3-cross-signed.der")) {
Path ksPath = Paths.get(System.getProperty("java.home"),"lib", "security", "cacerts"); Certificate crt = CertificateFactory.getInstance("X.509").generateCertificate(caInput);
keyStore.load(Files.newInputStream(ksPath), "changeit".toCharArray()); KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
CertificateFactory cf = CertificateFactory.getInstance("X.509"); try (InputStream ksPath = Files.newInputStream(Paths.get(System.getProperty("java.home"), "lib", "security", "cacerts"))) {
keyStore.load(ksPath, "changeit".toCharArray());
}
InputStream caInput = new BufferedInputStream(cert); keyStore.setCertificateEntry("lets-encrypt-x3-cross-signed", crt);
Certificate crt = cf.generateCertificate(caInput);
keyStore.setCertificateEntry("lets-encrypt-x3-cross-signed", crt); TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); SSLContext sslContext = SSLContext.getInstance("TLS");
tmf.init(keyStore); sslContext.init(null, tmf.getTrustManagers(), null);
SSLContext sslContext = SSLContext.getInstance("TLS"); SSLContext.setDefault(sslContext);
sslContext.init(null, tmf.getTrustManagers(), null); }
SSLContext.setDefault(sslContext);
} }
public static void doStuff(Logger mod) { public static void doStuff(Logger mod) {
@ -48,8 +51,8 @@ public class SslHelper {
Matcher matcher = p.matcher(version); Matcher matcher = p.matcher(version);
String majorVersion; String majorVersion;
int minorVersion; int minorVersion;
if (matcher.matches())
{ if (matcher.matches()) {
majorVersion = matcher.group(1); majorVersion = matcher.group(1);
minorVersion = Integer.valueOf(matcher.group(2)); minorVersion = Integer.valueOf(matcher.group(2));
} else { } else {
@ -58,18 +61,15 @@ public class SslHelper {
mod.info("Regex to parse Java version failed - applying LetsEncrypt anyway."); mod.info("Regex to parse Java version failed - applying LetsEncrypt anyway.");
} }
switch (majorVersion) switch (majorVersion) {
{
case "1.7": case "1.7":
if (minorVersion >= 111) if (minorVersion >= 111) {
{
mod.info("LetsEncrypt is not needed as Java version is at least Java 7u111."); mod.info("LetsEncrypt is not needed as Java version is at least Java 7u111.");
return; return;
} }
break; break;
case "1.8": case "1.8":
if (minorVersion >= 101) if (minorVersion >= 101) {
{
mod.info("LetsEncrypt is not needed as Java version is at least Java 8u101."); mod.info("LetsEncrypt is not needed as Java version is at least Java 8u101.");
return; return;
} }