OpenSslPopulatedKeyMaterialProvider Class — netty Architecture
Architecture documentation for the OpenSslPopulatedKeyMaterialProvider class in OpenSslX509KeyManagerFactory.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD ca6d2b1d_a32d_d8f0_5415_3c6a33f9511f["OpenSslPopulatedKeyMaterialProvider"] 892beaa7_380c_8fb8_48c5_080b863277a3["OpenSslX509KeyManagerFactory.java"] ca6d2b1d_a32d_d8f0_5415_3c6a33f9511f -->|defined in| 892beaa7_380c_8fb8_48c5_080b863277a3 c638e981_6d33_8d2c_8482_7a1d0bbe5e42["OpenSslPopulatedKeyMaterialProvider()"] ca6d2b1d_a32d_d8f0_5415_3c6a33f9511f -->|method| c638e981_6d33_8d2c_8482_7a1d0bbe5e42 5d889993_206a_99ba_3c90_673df8022a51["OpenSslKeyMaterial()"] ca6d2b1d_a32d_d8f0_5415_3c6a33f9511f -->|method| 5d889993_206a_99ba_3c90_673df8022a51 84ce87de_7874_61ff_a04d_91559ec5b39c["destroy()"] ca6d2b1d_a32d_d8f0_5415_3c6a33f9511f -->|method| 84ce87de_7874_61ff_a04d_91559ec5b39c
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/OpenSslX509KeyManagerFactory.java lines 183–233
private static final class OpenSslPopulatedKeyMaterialProvider extends OpenSslKeyMaterialProvider {
private final Map<String, Object> materialMap;
OpenSslPopulatedKeyMaterialProvider(
X509KeyManager keyManager, String password, Iterable<String> aliases) {
super(keyManager, password);
materialMap = new HashMap<String, Object>();
boolean initComplete = false;
try {
for (String alias: aliases) {
if (alias != null && !materialMap.containsKey(alias)) {
try {
materialMap.put(alias, super.chooseKeyMaterial(
UnpooledByteBufAllocator.DEFAULT, alias));
} catch (Exception e) {
// Just store the exception and rethrow it when we try to choose the keymaterial
// for this alias later on.
materialMap.put(alias, e);
}
}
}
initComplete = true;
} finally {
if (!initComplete) {
destroy();
}
}
checkNonEmpty(materialMap, "materialMap");
}
@Override
OpenSslKeyMaterial chooseKeyMaterial(ByteBufAllocator allocator, String alias) throws Exception {
Object value = materialMap.get(alias);
if (value == null) {
// There is no keymaterial for the requested alias, return null
return null;
}
if (value instanceof OpenSslKeyMaterial) {
return ((OpenSslKeyMaterial) value).retain();
}
throw (Exception) value;
}
@Override
void destroy() {
for (Object material: materialMap.values()) {
ReferenceCountUtil.release(material);
}
materialMap.clear();
}
}
Source
Frequently Asked Questions
What is the OpenSslPopulatedKeyMaterialProvider class?
OpenSslPopulatedKeyMaterialProvider is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslX509KeyManagerFactory.java.
Where is OpenSslPopulatedKeyMaterialProvider defined?
OpenSslPopulatedKeyMaterialProvider is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslX509KeyManagerFactory.java at line 183.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free