Home / Class/ CertificateChainInfo Class — spring-boot Architecture

CertificateChainInfo Class — spring-boot Architecture

Architecture documentation for the CertificateChainInfo class in SslInfo.java from the spring-boot codebase.

Entity Profile

Relationship Graph

Source Code

core/spring-boot/src/main/java/org/springframework/boot/info/SslInfo.java lines 147–196

	public final class CertificateChainInfo {

		private final String alias;

		private final List<CertificateInfo> certificates;

		CertificateChainInfo(KeyStore keyStore, String alias) {
			this.alias = alias;
			this.certificates = extractCertificates(keyStore, alias);
		}

		private List<CertificateInfo> extractCertificates(KeyStore keyStore, String alias) {
			try {
				List<CertificateInfo> certificates = readCertificateChain(keyStore, alias);
				if (certificates != null) {
					return certificates;
				}
				List<CertificateInfo> certificate = readCertificate(keyStore, alias);
				if (certificate != null) {
					return certificate;
				}
				return Collections.emptyList();
			}
			catch (KeyStoreException ex) {
				return Collections.emptyList();
			}
		}

		private @Nullable List<CertificateInfo> readCertificate(KeyStore keyStore, String alias)
				throws KeyStoreException {
			Certificate certificate = keyStore.getCertificate(alias);
			return (certificate != null) ? List.of(new CertificateInfo(certificate)) : null;
		}

		private @Nullable List<CertificateInfo> readCertificateChain(KeyStore keyStore, String alias)
				throws KeyStoreException {
			Certificate[] certificates = keyStore.getCertificateChain(alias);
			return ObjectUtils.isEmpty(certificates) ? null
					: Arrays.stream(certificates).map(CertificateInfo::new).toList();
		}

		public String getAlias() {
			return this.alias;
		}

		public List<CertificateInfo> getCertificates() {
			return this.certificates;
		}

	}

Domain

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free