diff --git a/build.gradle b/build.gradle
index d9fa0e1f..f74cfbf5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,7 +22,7 @@ repositories {
}
allprojects {
- version = '1.0.0-RC4'
+ version = '1.0.0-RC5'
group = 'it.pagopa.tech.lollipop-consumer-java-sdk'
sourceCompatibility = '11'
targetCompatibility = '11'
diff --git a/core/src/main/java/it/pagopa/tech/lollipop/consumer/config/LollipopConsumerRequestConfig.java b/core/src/main/java/it/pagopa/tech/lollipop/consumer/config/LollipopConsumerRequestConfig.java
index a3563364..b8ba5bcd 100644
--- a/core/src/main/java/it/pagopa/tech/lollipop/consumer/config/LollipopConsumerRequestConfig.java
+++ b/core/src/main/java/it/pagopa/tech/lollipop/consumer/config/LollipopConsumerRequestConfig.java
@@ -35,8 +35,6 @@ public class LollipopConsumerRequestConfig {
// assertion validation parameters
@Builder.Default private int assertionExpireInDays = 365;
- @Builder.Default private String assertionNotBeforeDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
- @Builder.Default private String assertionInstantDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
@Builder.Default
private String samlNamespaceAssertion = "urn:oasis:names:tc:SAML:2.0:assertion";
diff --git a/core/src/main/java/it/pagopa/tech/lollipop/consumer/service/impl/AssertionVerifierServiceImpl.java b/core/src/main/java/it/pagopa/tech/lollipop/consumer/service/impl/AssertionVerifierServiceImpl.java
index 608cba4c..7c2cfafb 100644
--- a/core/src/main/java/it/pagopa/tech/lollipop/consumer/service/impl/AssertionVerifierServiceImpl.java
+++ b/core/src/main/java/it/pagopa/tech/lollipop/consumer/service/impl/AssertionVerifierServiceImpl.java
@@ -24,11 +24,7 @@
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Base64;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import javax.xml.parsers.DocumentBuilder;
@@ -37,6 +33,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.wss4j.common.ext.WSSecurityException;
import org.apache.wss4j.common.saml.SAMLKeyInfo;
+import org.joda.time.format.ISODateTimeFormat;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -150,10 +147,8 @@ protected boolean validateAssertionPeriod(Document assertionDoc)
long notBeforeMilliseconds;
try {
notBeforeMilliseconds =
- new SimpleDateFormat(lollipopRequestConfig.getAssertionNotBeforeDateFormat())
- .parse(notBefore)
- .getTime();
- } catch (ParseException e) {
+ ISODateTimeFormat.dateTimeParser().parseDateTime(notBefore).getMillis();
+ } catch (UnsupportedOperationException | IllegalArgumentException e) {
throw new AssertionPeriodException(
AssertionPeriodException.ErrorCode.ERROR_PARSING_ASSERTION_NOT_BEFORE_DATE,
e.getMessage(),
@@ -442,15 +437,15 @@ private String getPublicKey(String publicKey) {
}
private String parseInstantToMillis(String instant) {
- String instantDateFormat = lollipopRequestConfig.getAssertionInstantDateFormat();
try {
instant =
- Long.toString(new SimpleDateFormat(instantDateFormat).parse(instant).getTime());
- } catch (ParseException e) {
+ Long.toString(
+ ISODateTimeFormat.dateTimeParser().parseDateTime(instant).getMillis());
+ } catch (UnsupportedOperationException | IllegalArgumentException e) {
String msg =
String.format(
- "Retrieved instant %s does not match expected format %s",
- instant, instantDateFormat);
+ "Retrieved instant %s does not match expected ISO datetime format",
+ instant);
log.debug(msg);
}
return instant;
diff --git a/core/src/test/java/it/pagopa/tech/lollipop/consumer/TestUtils.java b/core/src/test/java/it/pagopa/tech/lollipop/consumer/TestUtils.java
index 86161d6a..8e861954 100644
--- a/core/src/test/java/it/pagopa/tech/lollipop/consumer/TestUtils.java
+++ b/core/src/test/java/it/pagopa/tech/lollipop/consumer/TestUtils.java
@@ -26,7 +26,7 @@ public class TestUtils {
+ " xmlns:saml2=\"urn:oasis:names:tc:SAML:2.0:assertion\""
+ " ID=\"_6b9580aa-08b1-4f19-8fb6-8b670d070bad\""
+ " IssueInstant=\"2023-02-28T16:27:25.400Z\" Version=\"2.0\">https://app-backend.io.italia.it";
public static final String ASSERTION_XML_WITH_EXPIRED_PERIOD =
"