Browse Source

Merge pull request #39137 from amparab

* gh-39137:
  Polish "Improve toString of SslBundle implementations"
  Improve toString of SslBundle implementations

Closes gh-39137
pull/39395/head
Andy Wilkinson 2 years ago
parent
commit
4949ffdebe
  1. 13
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ssl/PropertiesSslBundle.java
  2. 13
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslBundle.java
  3. 11
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslBundleKey.java
  4. 12
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslOptions.java
  5. 13
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslStoreBundle.java
  6. 13
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/jks/JksSslStoreBundle.java
  7. 12
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/pem/PemSslStoreBundle.java
  8. 31
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/WebServerSslBundle.java

13
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ssl/PropertiesSslBundle.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -26,6 +26,7 @@ import org.springframework.boot.ssl.jks.JksSslStoreBundle; @@ -26,6 +26,7 @@ import org.springframework.boot.ssl.jks.JksSslStoreBundle;
import org.springframework.boot.ssl.jks.JksSslStoreDetails;
import org.springframework.boot.ssl.pem.PemSslStoreBundle;
import org.springframework.boot.ssl.pem.PemSslStoreDetails;
import org.springframework.core.style.ToStringCreator;
/**
* {@link SslBundle} backed by {@link JksSslBundleProperties} or
@ -128,4 +129,14 @@ public final class PropertiesSslBundle implements SslBundle { @@ -128,4 +129,14 @@ public final class PropertiesSslBundle implements SslBundle {
properties.getPassword());
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("key", this.key);
creator.append("options", this.options);
creator.append("protocol", this.protocol);
creator.append("stores", this.stores);
return creator.toString();
}
}

13
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslBundle.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -20,6 +20,7 @@ import javax.net.ssl.KeyManager; @@ -20,6 +20,7 @@ import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import org.springframework.core.style.ToStringCreator;
import org.springframework.util.StringUtils;
/**
@ -160,6 +161,16 @@ public interface SslBundle { @@ -160,6 +161,16 @@ public interface SslBundle {
return managersToUse;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("key", getKey());
creator.append("options", getOptions());
creator.append("protocol", getProtocol());
creator.append("stores", getStores());
return creator.toString();
}
};
}

11
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslBundleKey.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -19,6 +19,7 @@ package org.springframework.boot.ssl; @@ -19,6 +19,7 @@ package org.springframework.boot.ssl;
import java.security.KeyStore;
import java.security.KeyStoreException;
import org.springframework.core.style.ToStringCreator;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
@ -94,6 +95,14 @@ public interface SslBundleKey { @@ -94,6 +95,14 @@ public interface SslBundleKey {
return alias;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("alias", alias);
creator.append("password", (password != null) ? "******" : null);
return creator.toString();
}
};
}

12
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslOptions.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -24,6 +24,8 @@ import java.util.Set; @@ -24,6 +24,8 @@ import java.util.Set;
import javax.net.ssl.SSLEngine;
import org.springframework.core.style.ToStringCreator;
/**
* Configuration options that should be applied when establishing an SSL connection.
*
@ -81,6 +83,14 @@ public interface SslOptions { @@ -81,6 +83,14 @@ public interface SslOptions {
return enabledProtocols;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("ciphers", ciphers);
creator.append("enabledProtocols", enabledProtocols);
return creator.toString();
}
};
}

13
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/SslStoreBundle.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -18,6 +18,8 @@ package org.springframework.boot.ssl; @@ -18,6 +18,8 @@ package org.springframework.boot.ssl;
import java.security.KeyStore;
import org.springframework.core.style.ToStringCreator;
/**
* A bundle of key and trust stores that can be used to establish an SSL connection.
*
@ -75,6 +77,15 @@ public interface SslStoreBundle { @@ -75,6 +77,15 @@ public interface SslStoreBundle {
return keyStorePassword;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("keyStore.type", (keyStore != null) ? keyStore.getType() : "none");
creator.append("keyStorePassword", (keyStorePassword != null) ? "******" : null);
creator.append("trustStore.type", (trustStore != null) ? trustStore.getType() : "none");
return creator.toString();
}
};
}

13
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/jks/JksSslStoreBundle.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -26,6 +26,7 @@ import java.security.NoSuchProviderException; @@ -26,6 +26,7 @@ import java.security.NoSuchProviderException;
import java.security.cert.CertificateException;
import org.springframework.boot.ssl.SslStoreBundle;
import org.springframework.core.style.ToStringCreator;
import org.springframework.util.Assert;
import org.springframework.util.ResourceUtils;
import org.springframework.util.StringUtils;
@ -123,4 +124,14 @@ public class JksSslStoreBundle implements SslStoreBundle { @@ -123,4 +124,14 @@ public class JksSslStoreBundle implements SslStoreBundle {
}
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("keyStore.type", (this.keyStore != null) ? this.keyStore.getType() : "none");
String keyStorePassword = getKeyStorePassword();
creator.append("keyStorePassword", (keyStorePassword != null) ? "******" : null);
creator.append("trustStore.type", (this.trustStore != null) ? this.trustStore.getType() : "none");
return creator.toString();
}
}

12
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ssl/pem/PemSslStoreBundle.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2023 the original author or authors.
* Copyright 2012-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -22,6 +22,7 @@ import java.security.PrivateKey; @@ -22,6 +22,7 @@ import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import org.springframework.boot.ssl.SslStoreBundle;
import org.springframework.core.style.ToStringCreator;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
@ -110,4 +111,13 @@ public class PemSslStoreBundle implements SslStoreBundle { @@ -110,4 +111,13 @@ public class PemSslStoreBundle implements SslStoreBundle {
}
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("keyStore.type", (this.keyStore != null) ? this.keyStore.getType() : "none");
creator.append("keyStorePassword", null);
creator.append("trustStore.type", (this.trustStore != null) ? this.trustStore.getType() : "none");
return creator.toString();
}
}

31
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/WebServerSslBundle.java

@ -29,6 +29,7 @@ import org.springframework.boot.ssl.jks.JksSslStoreBundle; @@ -29,6 +29,7 @@ import org.springframework.boot.ssl.jks.JksSslStoreBundle;
import org.springframework.boot.ssl.jks.JksSslStoreDetails;
import org.springframework.boot.ssl.pem.PemSslStoreBundle;
import org.springframework.boot.ssl.pem.PemSslStoreDetails;
import org.springframework.core.style.ToStringCreator;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.util.function.ThrowingSupplier;
@ -223,6 +224,16 @@ public final class WebServerSslBundle implements SslBundle { @@ -223,6 +224,16 @@ public final class WebServerSslBundle implements SslBundle {
|| (ssl.getTrustStoreType() != null && ssl.getTrustStoreType().equals("PKCS11")));
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("key", this.key);
creator.append("protocol", this.protocol);
creator.append("stores", this.stores);
creator.append("options", this.options);
return creator.toString();
}
/**
* Class to adapt a {@link SslStoreProvider} into a {@link SslStoreBundle}.
*/
@ -250,6 +261,17 @@ public final class WebServerSslBundle implements SslBundle { @@ -250,6 +261,17 @@ public final class WebServerSslBundle implements SslBundle {
return ThrowingSupplier.of(this.sslStoreProvider::getTrustStore).get();
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
KeyStore keyStore = getKeyStore();
creator.append("keyStore.type", (keyStore != null) ? keyStore.getType() : "none");
creator.append("keyStorePassword", null);
KeyStore trustStore = getTrustStore();
creator.append("trustStore.type", (trustStore != null) ? trustStore.getType() : "none");
return creator.toString();
}
}
private static final class WebServerSslStoreBundle implements SslStoreBundle {
@ -282,6 +304,15 @@ public final class WebServerSslBundle implements SslBundle { @@ -282,6 +304,15 @@ public final class WebServerSslBundle implements SslBundle {
return this.keyStorePassword;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("keyStore.type", (this.keyStore != null) ? this.keyStore.getType() : "none");
creator.append("keyStorePassword", (this.keyStorePassword != null) ? "******" : null);
creator.append("trustStore.type", (this.trustStore != null) ? this.trustStore.getType() : "none");
return creator.toString();
}
}
}

Loading…
Cancel
Save