1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.net.ssl;
18
19 import java.security.KeyStoreException;
20 import java.security.NoSuchAlgorithmException;
21 import java.security.UnrecoverableKeyException;
22
23 import javax.net.ssl.KeyManagerFactory;
24
25 import org.apache.logging.log4j.core.config.plugins.Plugin;
26 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
27 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
28
29
30
31
32 @Plugin(name = "KeyStore", category = "Core", printObject = true)
33 public class KeyStoreConfiguration extends AbstractKeyStoreConfiguration {
34
35 private final String keyManagerFactoryAlgorithm;
36
37 public KeyStoreConfiguration(final String location, final String password, final String keyStoreType,
38 final String keyManagerFactoryAlgorithm) throws StoreConfigurationException {
39 super(location, password, keyStoreType);
40 this.keyManagerFactoryAlgorithm = keyManagerFactoryAlgorithm == null ? KeyManagerFactory.getDefaultAlgorithm()
41 : keyManagerFactoryAlgorithm;
42 }
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 @PluginFactory
59 public static KeyStoreConfiguration createKeyStoreConfiguration(
60
61 @PluginAttribute("location") final String location,
62 @PluginAttribute("password") final String password,
63 @PluginAttribute("type") final String keyStoreType,
64 @PluginAttribute("keyManagerFactoryAlgorithm") final String keyManagerFactoryAlgorithm) throws StoreConfigurationException {
65
66 return new KeyStoreConfiguration(location, password, keyStoreType, keyManagerFactoryAlgorithm);
67 }
68
69 public KeyManagerFactory initKeyManagerFactory() throws NoSuchAlgorithmException, UnrecoverableKeyException,
70 KeyStoreException {
71 final KeyManagerFactory kmFactory = KeyManagerFactory.getInstance(this.keyManagerFactoryAlgorithm);
72 kmFactory.init(this.getKeyStore(), this.getPasswordAsCharArray());
73 return kmFactory;
74 }
75 }