Polish "Improve toString of SslBundle implementations"

See gh-39137
This commit is contained in:
Andy Wilkinson 2024-01-17 11:37:37 +00:00
parent b49ccbb0c2
commit a7d52226d5
8 changed files with 101 additions and 28 deletions

View File

@ -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.
@ -16,8 +16,6 @@
package org.springframework.boot.autoconfigure.ssl;
import java.util.Arrays;
import org.springframework.boot.autoconfigure.ssl.SslBundleProperties.Key;
import org.springframework.boot.ssl.SslBundle;
import org.springframework.boot.ssl.SslBundleKey;
@ -134,13 +132,10 @@ public final class PropertiesSslBundle implements SslBundle {
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("key-alias", this.key.getAlias());
creator.append("key", this.key);
creator.append("options", this.options);
creator.append("protocol", this.protocol);
creator.append("keystore-type", this.stores.getKeyStore().getType());
creator.append("truststore-type",
(this.stores.getTrustStore() != null) ? this.stores.getTrustStore().getType() : "");
creator.append("ciphers", Arrays.toString(this.options.getCiphers()));
creator.append("enabled-protocols", Arrays.toString(this.options.getEnabledProtocols()));
creator.append("stores", this.stores);
return creator.toString();
}

View File

@ -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;
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 {
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();
}
};
}

View File

@ -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;
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 {
return alias;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("alias", alias);
creator.append("password", (password != null) ? "******" : null);
return creator.toString();
}
};
}

View File

@ -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;
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 {
return enabledProtocols;
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("ciphers", ciphers);
creator.append("enabledProtocols", enabledProtocols);
return creator.toString();
}
};
}

View File

@ -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;
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 {
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();
}
};
}

View File

@ -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;
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 {
}
}
@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();
}
}

View File

@ -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;
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 {
}
}
@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();
}
}

View File

@ -17,7 +17,6 @@
package org.springframework.boot.web.server;
import java.security.KeyStore;
import java.util.Arrays;
import org.springframework.boot.ssl.NoSuchSslBundleException;
import org.springframework.boot.ssl.SslBundle;
@ -225,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}.
*/
@ -252,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 {
@ -284,19 +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();
}
@Override
public String toString() {
ToStringCreator creator = new ToStringCreator(this);
creator.append("key-alias", this.key.getAlias());
creator.append("protocol", this.protocol);
creator.append("keystore-type", this.stores.getKeyStore().getType());
creator.append("truststore-type",
(this.stores.getTrustStore() != null) ? this.stores.getTrustStore().getType() : "");
creator.append("ciphers", Arrays.toString(this.options.getCiphers()));
creator.append("enabled-protocols", Arrays.toString(this.options.getEnabledProtocols()));
return creator.toString();
}
}