Skip to content

Commit f89ef71

Browse files
Made validating tax id optional
1 parent b3c61e6 commit f89ef71

File tree

6 files changed

+54
-2
lines changed

6 files changed

+54
-2
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
* The alias for the private key in the keystore is now configurable (
44
Properties: `certificate.keystore.private.key.alias` or
55
Code: `BzstDipConfigurationBuilder#setKeyStorePrivateKeyAlias`)
6+
* It is now possible to deactivate the internal validation of the tax-id (
7+
Properties: `tax.id.validate` or
8+
Code: `BzstDipConfigurationBuilder#setValidateTaxID`)

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ public class BzstDipConfiguration
6060
* Steueridentifikationsnummer (Steuer-ID) without spaces or slashes ({@code /})
6161
*/
6262
private final String taxID;
63+
/**
64+
* If {@code true} the {@link #taxID} is validated by the {@link TaxNumberValidator}. Default value is
65+
* {@code true}.
66+
*/
67+
private final boolean validateTaxID;
6368
/**
6469
* <p>
6570
* Organizational characteristic for the specified provider. The Steueridentifikationsnummer
@@ -154,6 +159,7 @@ public BzstDipConfiguration(
154159
final String keyStorePrivateKeyAlias,
155160
final String clientId,
156161
final String taxID,
162+
final boolean validateTaxID,
157163
final String taxNumber,
158164
final String realmEnvironmentBaseUrl,
159165
final BzstDipEnvironment environment,
@@ -172,6 +178,7 @@ public BzstDipConfiguration(
172178
this.keyStorePrivateKeyAlias = keyStorePrivateKeyAlias;
173179
this.clientId = clientId;
174180
this.taxID = taxID;
181+
this.validateTaxID = validateTaxID;
175182
this.taxNumber = taxNumber;
176183
this.realmEnvironmentBaseUrl = realmEnvironmentBaseUrl;
177184
this.environment = environment;
@@ -271,4 +278,9 @@ public BzstDipAddressFix getPlatformOperatorAddress()
271278
{
272279
return this.platformOperatorAddress;
273280
}
281+
282+
public boolean isValidateTaxID()
283+
{
284+
return this.validateTaxID;
285+
}
274286
}

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

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public class BzstDipConfigurationBuilder
5151
* @see BzstDipConfiguration#getTaxID()
5252
*/
5353
private String taxID;
54+
/**
55+
* @see BzstDipConfiguration#isValidateTaxID()
56+
*/
57+
private Boolean validateTaxID;
5458
/**
5559
* @see BzstDipConfiguration#getTaxNumber()
5660
*/
@@ -162,6 +166,16 @@ public BzstDipConfigurationBuilder setTaxID(final String taxID)
162166
return this;
163167
}
164168

169+
/**
170+
* @param validateTaxID {@link #validateTaxID}
171+
* @return itself
172+
*/
173+
public BzstDipConfigurationBuilder setValidateTaxID(final Boolean validateTaxID)
174+
{
175+
this.validateTaxID = validateTaxID;
176+
return this;
177+
}
178+
165179
/**
166180
* @param taxNumber {@link #taxNumber}
167181
* @return itself
@@ -330,6 +344,10 @@ public BzstDipConfiguration buildAndValidate()
330344
"certificate"),
331345
this.getSetPropertyOrReadFromFile(this.clientId, PropertiesSupplier.PROPERTY_NAME_CLIENT_ID),
332346
this.getSetPropertyOrReadFromFile(this.taxID, PropertiesSupplier.PROPERTY_NAME_TAX_ID),
347+
this.getSetPropertyOrReadFromFileBoolean(
348+
this.validateTaxID,
349+
PropertiesSupplier.PROPERTY_NAME_TAX_ID_VALIDATE,
350+
true),
333351
this.getSetPropertyOrReadFromFile(this.taxNumber, PropertiesSupplier.PROPERTY_NAME_TAX_NUMBER),
334352
this.getSetPropertyOrReadFromFile(
335353
this.realmEnvironmentBaseUrl,
@@ -463,6 +481,21 @@ private int getSetPropertyOrReadFromFileInteger(
463481
String.valueOf(defaultValue)));
464482
}
465483

484+
private Boolean getSetPropertyOrReadFromFileBoolean(
485+
final Boolean builderProperty,
486+
final String propertyNameInFile,
487+
final Boolean defaultValue)
488+
{
489+
if(builderProperty != null)
490+
{
491+
return builderProperty;
492+
}
493+
return Boolean.parseBoolean(this.getSetPropertyOrReadFromFile(
494+
null,
495+
propertyNameInFile,
496+
String.valueOf(defaultValue)));
497+
}
498+
466499
private Duration getSetPropertyOrReadFromFileDuration(
467500
final Duration builderProperty,
468501
final String propertyNameInFile,
@@ -538,7 +571,6 @@ private String getSetPropertyOrReadFromFile(
538571
final String propertyNameInFile,
539572
final String defaultValue)
540573
{
541-
542574
if(builderProperty != null)
543575
{
544576
return builderProperty;

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ public static void validateConfiguration(final BzstDipConfiguration configuratio
3636
PropertiesSupplier.PROPERTY_NAME_CLIENT_ID, configuration.getClientId());
3737
checkForNullOrBlank(
3838
PropertiesSupplier.PROPERTY_NAME_TAX_ID, configuration.getTaxID());
39-
TaxNumberValidator.validateTaxNumber(configuration.getTaxID());
39+
if(configuration.isValidateTaxID())
40+
{
41+
TaxNumberValidator.validateTaxNumber(configuration.getTaxID());
42+
}
4043
checkForNullOrBlank(
4144
PropertiesSupplier.PROPERTY_NAME_TAX_NUMBER, configuration.getTaxNumber());
4245
checkForNullOrBlank(

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
@@ -34,6 +34,7 @@ public class PropertiesSupplier
3434
public static final String PROPERTY_NAME_CERTIFICATE_KEYSTORE_FILE = "certificate.keystore.file";
3535
public static final String PROPERTY_NAME_CLIENT_ID = "client.id";
3636
public static final String PROPERTY_NAME_TAX_ID = "tax.id";
37+
public static final String PROPERTY_NAME_TAX_ID_VALIDATE = "tax.id.validate";
3738
public static final String PROPERTY_NAME_TAX_NUMBER = "tax.number";
3839
public static final String PROPERTY_NAME_REALM_ENVIRONMENT_BASE_URL = "base.url";
3940
public static final String PROPERTY_NAME_ENVIRONMENT = "environment";

bzst-dip-java-client/src/test/java/software/xdev/bzst/dip/client/model/configuration/BzstDipConfigurationBuilderTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ void buildAndValidate_goodValue()
4444
() -> new BzstDipConfigurationBuilder()
4545
.setClientId("abcd1234-ab12-ab12-ab12-abcdef123456")
4646
.setTaxID("86095742719")
47+
.setValidateTaxID(false)
4748
.setTaxNumber("123")
4849
.setCertificateKeystoreInputStream(() -> ClassLoader.getSystemClassLoader()
4950
.getResourceAsStream("DemoKeystore.jks"))

0 commit comments

Comments
 (0)