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
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free