Skip to content

Commit b3c61e6

Browse files
Merge pull request #63 from xdev-software/changeable-keystore-entry-name
Added configurable keyStorePrivateKeyAlias
2 parents 5bc435b + 604a51e commit b3c61e6

File tree

6 files changed

+41
-1
lines changed

6 files changed

+41
-1
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# 1.0.2
2+
3+
* The alias for the private key in the keystore is now configurable (
4+
Properties: `certificate.keystore.private.key.alias` or
5+
Code: `BzstDipConfigurationBuilder#setKeyStorePrivateKeyAlias`)

bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/configuration/BzstDipConfiguration.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ public class BzstDipConfiguration
4040
* Defines the password for the certificate keystore that is used to decrypt the local keystore.
4141
*/
4242
private final String certificateKeystorePassword;
43+
44+
/**
45+
* Defines the alias of the private key within the key store.
46+
*/
47+
private final String keyStorePrivateKeyAlias;
4348
/**
4449
* Is used for identifying this client to the BZST API.
4550
* A valid issuer/clientId is defined by the BZST and must have been received from them.
@@ -146,6 +151,7 @@ public class BzstDipConfiguration
146151
@SuppressWarnings("PMD.ExcessiveParameterList")
147152
public BzstDipConfiguration(
148153
final String certificateKeystorePassword,
154+
final String keyStorePrivateKeyAlias,
149155
final String clientId,
150156
final String taxID,
151157
final String taxNumber,
@@ -163,6 +169,7 @@ public BzstDipConfiguration(
163169
final BzstDipAddressFix platformOperatorAddress)
164170
{
165171
this.certificateKeystorePassword = certificateKeystorePassword;
172+
this.keyStorePrivateKeyAlias = keyStorePrivateKeyAlias;
166173
this.clientId = clientId;
167174
this.taxID = taxID;
168175
this.taxNumber = taxNumber;
@@ -184,6 +191,12 @@ public String getCertificateKeystorePassword()
184191
{
185192
return this.certificateKeystorePassword;
186193
}
194+
195+
public String getKeyStorePrivateKeyAlias()
196+
{
197+
return this.keyStorePrivateKeyAlias;
198+
}
199+
187200
public String getClientId()
188201
{
189202
return this.clientId;

bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/configuration/BzstDipConfigurationBuilder.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ public class BzstDipConfigurationBuilder
3939
* @see BzstDipConfiguration#getCertificateKeystorePassword()
4040
*/
4141
private String certificateKeystorePassword;
42+
/**
43+
* @see BzstDipConfiguration#getKeyStorePrivateKeyAlias()
44+
*/
45+
private String keyStorePrivateKeyAlias;
4246
/**
4347
* @see BzstDipConfiguration#getClientId()
4448
*/
@@ -128,6 +132,16 @@ public BzstDipConfigurationBuilder setCertificateKeystorePassword(final String c
128132
return this;
129133
}
130134

135+
/**
136+
* @param keyStorePrivateKeyAlias {@link #keyStorePrivateKeyAlias}
137+
* @return itself
138+
*/
139+
public BzstDipConfigurationBuilder setKeyStorePrivateKeyAlias(final String keyStorePrivateKeyAlias)
140+
{
141+
this.keyStorePrivateKeyAlias = keyStorePrivateKeyAlias;
142+
return this;
143+
}
144+
131145
/**
132146
* @param clientId {@link #clientId}
133147
* @return itself
@@ -310,6 +324,10 @@ public BzstDipConfiguration buildAndValidate()
310324
this.certificateKeystorePassword,
311325
PropertiesSupplier.PROPERTY_NAME_CERTIFICATE_KEYSTORE_PASSWORD,
312326
""),
327+
this.getSetPropertyOrReadFromFile(
328+
this.keyStorePrivateKeyAlias,
329+
PropertiesSupplier.PROPERTY_NAME_KEYSTORE_PRIVATE_KEY_ALIAS,
330+
"certificate"),
313331
this.getSetPropertyOrReadFromFile(this.clientId, PropertiesSupplier.PROPERTY_NAME_CLIENT_ID),
314332
this.getSetPropertyOrReadFromFile(this.taxID, PropertiesSupplier.PROPERTY_NAME_TAX_ID),
315333
this.getSetPropertyOrReadFromFile(this.taxNumber, PropertiesSupplier.PROPERTY_NAME_TAX_NUMBER),

bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/configuration/PropertiesSupplier.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
public class PropertiesSupplier
3131
{
3232
public static final String PROPERTY_NAME_CERTIFICATE_KEYSTORE_PASSWORD = "certificate.keystore.password";
33+
public static final String PROPERTY_NAME_KEYSTORE_PRIVATE_KEY_ALIAS = "certificate.keystore.private.key.alias";
3334
public static final String PROPERTY_NAME_CERTIFICATE_KEYSTORE_FILE = "certificate.keystore.file";
3435
public static final String PROPERTY_NAME_CLIENT_ID = "client.id";
3536
public static final String PROPERTY_NAME_TAX_ID = "tax.id";

bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/util/SigningUtil.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ public static String signXMLDocument(final String unsignedXmlString, final BzstD
101101
final KeyStore.PrivateKeyEntry privateKeyEntry =
102102
getPrivateKeyEntry(
103103
keystoreInputStream,
104+
configuration.getKeyStorePrivateKeyAlias(),
104105
configuration.getCertificateKeystorePassword(),
105106
KEYSTORE_TYPE
106107
);
@@ -222,6 +223,7 @@ private static boolean validateSignature(
222223
*/
223224
public static KeyStore.PrivateKeyEntry getPrivateKeyEntry(
224225
final InputStream keyStoreInputStream,
226+
final String keystorePrivateKeyEntryAlias,
225227
final String keyStorePassword,
226228
final String type)
227229
{
@@ -232,7 +234,7 @@ public static KeyStore.PrivateKeyEntry getPrivateKeyEntry(
232234
ks.load(keyStoreInputStream, keyStorePassword.toCharArray());
233235

234236
final KeyStore.PrivateKeyEntry certificate = (KeyStore.PrivateKeyEntry)ks.getEntry(
235-
"certificate",
237+
keystorePrivateKeyEntryAlias,
236238
new KeyStore.PasswordProtection(keyStorePassword.toCharArray()));
237239

238240
if(certificate == null)

bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/util/WebClientUtil.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public static String createRequestToken(final BzstDipConfiguration configuration
6565
{
6666
final KeyStore.PrivateKeyEntry privateKeyEntry = SigningUtil.getPrivateKeyEntry(
6767
keystoreInputStream,
68+
configuration.getKeyStorePrivateKeyAlias(),
6869
configuration.getCertificateKeystorePassword(),
6970
SigningUtil.KEYSTORE_TYPE
7071
);

0 commit comments

Comments
 (0)