Skip to content

Commit c038bdf

Browse files
committed
Merge branch 'RM-4814_cleanup_configuration' into 'SID'
RM-4814: clean-up configuration and properties loading See merge request cdoc2/cdoc2-java-ref-impl!105
2 parents d7c5383 + cdfcffa commit c038bdf

26 files changed

+86
-339
lines changed

cdoc2-cli/src/main/java/ee/cyber/cdoc2/cli/commands/CDocCreateCmd.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
import ee.cyber.cdoc2.cli.util.InteractiveCommunicationUtil;
44
import ee.cyber.cdoc2.cli.util.LabeledPasswordParamConverter;
55
import ee.cyber.cdoc2.cli.util.LabeledPasswordParam;
6+
import ee.cyber.cdoc2.client.KeyShareClientFactory;
67
import ee.cyber.cdoc2.crypto.keymaterial.LabeledPassword;
78
import ee.cyber.cdoc2.crypto.keymaterial.LabeledSecret;
89
import ee.cyber.cdoc2.cli.util.LabeledSecretConverter;
910
import ee.cyber.cdoc2.cli.util.CliConstants;
1011
import ee.cyber.cdoc2.CDocBuilder;
1112
import ee.cyber.cdoc2.crypto.keymaterial.EncryptionKeyMaterial;
13+
import ee.cyber.cdoc2.services.Cdoc2Services;
1214
import org.slf4j.Logger;
1315
import org.slf4j.LoggerFactory;
1416
import picocli.CommandLine;
@@ -29,8 +31,6 @@
2931
import javax.naming.NamingException;
3032

3133
import static ee.cyber.cdoc2.cli.util.CDocCommonHelper.getServerProperties;
32-
import static ee.cyber.cdoc2.cli.util.CDocCommonHelper.initKeyShareClientFactory;
33-
3434

3535
//S106 - Standard outputs should not be used directly to log anything
3636
//CLI needs to interact with standard outputs
@@ -194,7 +194,9 @@ private void addEtsiRecipientsIfAny(
194194
) throws GeneralSecurityException, NamingException {
195195

196196
if (isWithSid() || isWithMid()) {
197-
cDocBuilder.withKeyShares(initKeyShareClientFactory());
197+
KeyShareClientFactory keyShareClientFactory =
198+
Cdoc2Services.initFromSystemProperties().get(KeyShareClientFactory.class);
199+
cDocBuilder.withKeyShares(keyShareClientFactory);
198200
}
199201

200202
List<EncryptionKeyMaterial> etsiRecipients = EncryptionKeyMaterial.etsiBuilder()
Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
11
package ee.cyber.cdoc2.cli.util;
22

33
import java.io.IOException;
4-
import java.security.GeneralSecurityException;
54
import java.util.Properties;
65

7-
import ee.cyber.cdoc2.client.KeyShareClientFactory;
8-
import ee.cyber.cdoc2.client.KeySharesClientHelper;
9-
import ee.cyber.cdoc2.config.CDoc2ConfigurationProvider;
10-
import ee.cyber.cdoc2.config.Cdoc2Configuration;
11-
import ee.cyber.cdoc2.config.KeySharesConfiguration;
12-
import ee.cyber.cdoc2.config.KeySharesConfigurationImpl;
13-
import ee.cyber.cdoc2.exceptions.ConfigurationLoadingException;
146
import ee.cyber.cdoc2.util.Resources;
157

16-
import static ee.cyber.cdoc2.config.Cdoc2ConfigurationProperties.KEY_SHARES_PROPERTIES;
17-
import static ee.cyber.cdoc2.config.PropertiesLoader.loadProperties;
18-
198

209
/**
2110
* Helper class for common usage.
@@ -29,24 +18,4 @@ public static Properties getServerProperties(String keyServerPropertiesFile) thr
2918
p.load(Resources.getResourceAsStream(keyServerPropertiesFile));
3019
return p;
3120
}
32-
33-
public static KeyShareClientFactory initKeyShareClientFactory() throws GeneralSecurityException {
34-
return KeySharesClientHelper.createFactory(loadKeySharesConfiguration());
35-
}
36-
37-
private static KeySharesConfiguration loadKeySharesConfiguration() {
38-
String propertiesFilePath = System.getProperty(
39-
KEY_SHARES_PROPERTIES,
40-
"config/localhost/" + KEY_SHARES_PROPERTIES
41-
);
42-
if (null == propertiesFilePath) {
43-
throw new ConfigurationLoadingException("Key Shares configuration property is missing");
44-
}
45-
46-
Properties properties = loadProperties(propertiesFilePath);
47-
Cdoc2Configuration configuration = new KeySharesConfigurationImpl(properties);
48-
CDoc2ConfigurationProvider.initKeyShareClientConfig(configuration);
49-
50-
return configuration.keySharesConfiguration();
51-
}
5221
}

cdoc2-client/src/main/java/ee/cyber/cdoc2/client/ApiClientBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ private void validate() {
147147
}
148148

149149
ee.cyber.cdoc2.client.api.ApiClient createApiClient() throws GeneralSecurityException {
150+
150151
validate();
151152

152153
final SSLContext finalSslContext = createSslContext();

cdoc2-client/src/main/java/ee/cyber/cdoc2/client/KeySharesClientBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class KeySharesClientBuilder extends ApiClientBuilder {
1010

1111
/**
1212
* {@link Cdoc2KeySharesApiClient} builder
13+
* @throws GeneralSecurityException when establishing TLS connection fails
1314
*/
1415
public Cdoc2KeySharesApiClient build() throws GeneralSecurityException {
1516
ee.cyber.cdoc2.client.api.ApiClient apiClient = this.createApiClient();

cdoc2-lib/src/main/java/ee/cyber/cdoc2/CDocBuilder.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66
import ee.cyber.cdoc2.client.ExtApiException;
77
import ee.cyber.cdoc2.client.KeyCapsuleClient;
88
import ee.cyber.cdoc2.client.KeyCapsuleClientImpl;
9-
import ee.cyber.cdoc2.config.CDoc2ConfigurationProvider;
10-
import ee.cyber.cdoc2.config.Cdoc2Configuration;
119
import ee.cyber.cdoc2.config.Cdoc2ConfigurationProperties;
1210
import ee.cyber.cdoc2.config.KeyCapsuleClientConfiguration;
13-
import ee.cyber.cdoc2.config.KeyCapsuleClientConfigurationImpl;
1411
import ee.cyber.cdoc2.container.Envelope;
1512
import ee.cyber.cdoc2.crypto.Crypto;
1613
import ee.cyber.cdoc2.crypto.ECKeys;
@@ -144,7 +141,7 @@ private Envelope prepareEnvelope()
144141
return Envelope.prepare(recipients, null, keyShareClientFactory);
145142
} else {
146143
KeyCapsuleClientConfiguration capsuleClientConfig
147-
= initializeCapsuleConfiguration(serverProperties);
144+
= KeyCapsuleClientConfiguration.load(serverProperties);
148145
// for encryption, do not init mTLS client as this might require smart-card
149146
KeyCapsuleClient keyCapsuleClient
150147
= KeyCapsuleClientImpl.create(capsuleClientConfig, false);
@@ -159,12 +156,6 @@ private Envelope prepareEnvelope()
159156
}
160157
}
161158

162-
private static KeyCapsuleClientConfiguration initializeCapsuleConfiguration(Properties p) {
163-
Cdoc2Configuration configuration = new KeyCapsuleClientConfigurationImpl(p);
164-
CDoc2ConfigurationProvider.initKeyCapsuleClientConfig(configuration);
165-
return configuration.keyCapsuleClientConfiguration();
166-
}
167-
168159
private void handleFileEncryptionError(Exception ex, File outputCDocFile) {
169160
log.info("Failed to create {}. Exception: {}", outputCDocFile, ex.getMessage());
170161

cdoc2-lib/src/main/java/ee/cyber/cdoc2/client/KeySharesClientHelper.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public static KeyShareClientFactory createFactory(KeySharesConfiguration configu
4545

4646
@Override
4747
public Collection<KeySharesClient> getClients() {
48-
// ToDo remove the collection of clients when multi servers are implemented
4948
return clients;
5049
}
5150

@@ -74,8 +73,6 @@ private static KeySharesClientHelper initKeySharesClientByServer(
7473
) throws GeneralSecurityException {
7574

7675
Set<String> servers = configuration.getKeySharesServersUrls();
77-
// ToDo create multithreading for servers here i.o. for loop. Create client instances with
78-
// own server URL
7976
Collection<KeySharesClient> keyShareClients = new LinkedList<>();
8077
for (String server : servers) {
8178
keyShareClients.add(KeySharesClientImpl.create(server, configuration));

cdoc2-lib/src/main/java/ee/cyber/cdoc2/config/CDoc2ConfigurationProvider.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

cdoc2-lib/src/main/java/ee/cyber/cdoc2/config/Cdoc2Configuration.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

cdoc2-lib/src/main/java/ee/cyber/cdoc2/config/KeyCapsuleClientConfigurationImpl.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

cdoc2-lib/src/main/java/ee/cyber/cdoc2/config/KeySharesConfigurationImpl.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)