From c2581cc46160a772c3084f3bbf862f7f68392371 Mon Sep 17 00:00:00 2001 From: harish Date: Mon, 30 Sep 2024 14:42:38 +0530 Subject: [PATCH 01/14] updated fe base url form prod --- src/main/resources/application-production.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index be371126..8de9367a 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -9,3 +9,4 @@ spring.h2.console.enabled=true base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false +fe.base.url=http://bandi.gepafin.it \ No newline at end of file From ef5c8e967b54442c1fb023ea2714b8333c2d593d Mon Sep 17 00:00:00 2001 From: harish Date: Mon, 30 Sep 2024 15:06:45 +0530 Subject: [PATCH 02/14] updated fe base url --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 8de9367a..8acc1e0c 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -9,4 +9,4 @@ spring.h2.console.enabled=true base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false -fe.base.url=http://bandi.gepafin.it \ No newline at end of file +fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com \ No newline at end of file From 52c65aa2d09ee80aac618f54af8fdd82a543c128 Mon Sep 17 00:00:00 2001 From: nishainnogent Date: Mon, 30 Sep 2024 18:26:42 +0530 Subject: [PATCH 03/14] Updated code --- .../java/net/gepafin/tendermanagement/dao/FormDao.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java b/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java index 36ff8eb8..9cdf3fed 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java @@ -141,6 +141,13 @@ public class FormDao { ); } } + else { + Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel()); + Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent())); + formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); + formEntity = saveFormEntity(formEntity); + return convertFormEntityToFormResponseBean(formEntity); + } } } } From c8b738a0f205794a7550567d722ed186bcd4c206 Mon Sep 17 00:00:00 2001 From: harish Date: Tue, 1 Oct 2024 16:53:15 +0530 Subject: [PATCH 04/14] Added saml configation for production --- .../tendermanagement/config/SamlConfig.java | 16 +++++++---- .../config/SamlSuccessHandler.java | 1 + .../application-production.properties | 6 +++- src/main/resources/application.properties | 4 +++ .../production/saml/idp-certificate.pem | 3 ++ .../resources/production/saml/private-key.pem | 28 +++++++++++++++++++ .../resources/production/saml/public-cert.pem | 24 ++++++++++++++++ 7 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/production/saml/idp-certificate.pem create mode 100644 src/main/resources/production/saml/private-key.pem create mode 100644 src/main/resources/production/saml/public-cert.pem diff --git a/src/main/java/net/gepafin/tendermanagement/config/SamlConfig.java b/src/main/java/net/gepafin/tendermanagement/config/SamlConfig.java index 02a0ae27..c66e26f1 100644 --- a/src/main/java/net/gepafin/tendermanagement/config/SamlConfig.java +++ b/src/main/java/net/gepafin/tendermanagement/config/SamlConfig.java @@ -49,6 +49,12 @@ public class SamlConfig { @Value("${base-url}") String baseUrl; + + @Value("${spid.ipd.base.url}") + String ipdBaseUrl; + + @Value("${active.profile.folder}") + String activeProfileFolder; @Bean public RelyingPartyRegistrationRepository relyingPartyRegistrationRepository() { @@ -66,8 +72,8 @@ public class SamlConfig { } }) .assertionConsumerServiceLocation(acsUrl) - .assertingPartyDetails(details -> details.entityId("https://federatest.umbriadigitale.it/gw/metadata") - .singleSignOnServiceLocation("https://federatest.umbriadigitale.it/gw/SSOProxy/SAML2") + .assertingPartyDetails(details -> details.entityId(ipdBaseUrl + "/gw/metadata") + .singleSignOnServiceLocation(ipdBaseUrl + "/gw/SSOProxy/SAML2") .singleSignOnServiceBinding(Saml2MessageBinding.POST) .wantAuthnRequestsSigned(true) .verificationX509Credentials(credentials -> { @@ -158,7 +164,7 @@ private RequestedAuthnContext buildRequestedAuthnContext() { public PrivateKey readPrivateKey() throws Exception { // Path to your private key PEM file - try (PemReader pemReader = new PemReader(new InputStreamReader(readKey("dev/saml/private-key.pem")))) { + try (PemReader pemReader = new PemReader(new InputStreamReader(readKey(activeProfileFolder + "/saml/private-key.pem")))) { // Read the PEM content byte[] pemContent = pemReader.readPemObject().getContent(); // Decode the PEM content @@ -170,7 +176,7 @@ private RequestedAuthnContext buildRequestedAuthnContext() { } public X509Certificate readCertificate() throws Exception { // Path to your certificate PEM fileFile - try (InputStream inStream = readKey("dev/saml/public-cert.pem")) { + try (InputStream inStream = readKey(activeProfileFolder + "/saml/public-cert.pem")) { CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); return (X509Certificate) certFactory.generateCertificate(inStream); } @@ -178,7 +184,7 @@ private RequestedAuthnContext buildRequestedAuthnContext() { public X509Certificate readIdpCertificate() throws Exception { // Path to your IDP public certificate PEM file - try (InputStream inStream = readKey("dev/saml/idp-certificate.pem")) { + try (InputStream inStream = readKey(activeProfileFolder + "/saml/idp-certificate.pem")) { CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); return (X509Certificate) certFactory.generateCertificate(inStream); } diff --git a/src/main/java/net/gepafin/tendermanagement/config/SamlSuccessHandler.java b/src/main/java/net/gepafin/tendermanagement/config/SamlSuccessHandler.java index a8af08a7..08f1a30e 100644 --- a/src/main/java/net/gepafin/tendermanagement/config/SamlSuccessHandler.java +++ b/src/main/java/net/gepafin/tendermanagement/config/SamlSuccessHandler.java @@ -45,6 +45,7 @@ public class SamlSuccessHandler implements AuthenticationSuccessHandler { public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { try { + logger.info("SAML login in Authentication Success Handler"); Saml2Authentication samlAuth = (Saml2Authentication) authentication; Saml2AuthenticatedPrincipal principal = (Saml2AuthenticatedPrincipal) samlAuth.getPrincipal(); diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 8acc1e0c..f4ea18fa 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -9,4 +9,8 @@ spring.h2.console.enabled=true base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false -fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com \ No newline at end of file +fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com + +#SPID configuration +spid.ipd.base.url=https://login.regione.umbria.it +active.profile.folder=production \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1c16a251..3ce9ed17 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -44,3 +44,7 @@ isVatCheckGloballyDisabled = true vatCheckNewToken: 66026bd891a51044e90e08c4 fe.base.url=http://gepafin-staging-fe.s3-website.eu-central-1.amazonaws.com +#SPID configuration +spid.ipd.base.url=https://federatest.umbriadigitale.it +active.profile.folder=dev + diff --git a/src/main/resources/production/saml/idp-certificate.pem b/src/main/resources/production/saml/idp-certificate.pem new file mode 100644 index 00000000..dd9e7b96 --- /dev/null +++ b/src/main/resources/production/saml/idp-certificate.pem @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIIHBzCCBe+gAwIBAgIQBa/5uQoACfZc0a+0cFPKaDANBgkqhkiG9w0BAQsFADBwMQswCQYDVQQG EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMS8w LQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNzdXJhbmNlIFNlcnZlciBDQTAeFw0xNDAyMDMw MDAwMDBaFw0xNzAyMDcxMjAwMDBaMIGRMQswCQYDVQQGEwJJVDEOMAwGA1UECBMFSXRhbHkxEDAO BgNVBAcTB1BlcnVnaWExFzAVBgNVBAoTDlJlZ2lvbmUgVW1icmlhMSkwJwYDVQQLEyBTZXJ2aXpp byBJbmZyYXN0cnV0dHVyZSBEaWdpdGFsaTEcMBoGA1UEAwwTKi5yZWdpb25lLnVtYnJpYS5pdDCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALx+hg0/SsF+kpakHw24sO8LFawtMiILsEKS jLbqU8LjUcvDj50CVDa/jz21OwdBfCEB6SBVEKp0a61x5RZFKBUnL795y7Na56VWzqA0kyLg7QNn 73Tu0SJPRF0Hm+2ePLLypU+TkIFfC85GO5iXn82E5rb6XRA8blLj/GauQ0DSHkY3ZTQGGzN3La9a ZJ1Tl80cIATY10iuwQdVkLXRx8VriVrS4jVJOOl8vGJ4VWLVwGYUkhmwvoR/zfeNkSQe7USjHmdf Zm4lLMYZjLM0S2wJMRQbj3MscVBKaXMHc6POqMlKrgO1nRK4/1dRYtnJeMCK/uK/ms/MYpxIX2ZG G/MCAwEAAaOCA3kwggN1MB8GA1UdIwQYMBaAFFFo/5CvAgd1PMzZZWRiohK4WXI7MB0GA1UdDgQW BBShweIeUSOk3EJgXqB9164xrkURDDAxBgNVHREEKjAoghMqLnJlZ2lvbmUudW1icmlhLml0ghFy ZWdpb25lLnVtYnJpYS5pdDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG AQUFBwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWhh LXNlcnZlci1nMS5jcmwwNKAyoDCGLmh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWhhLXNl cnZlci1nMS5jcmwwggHEBgNVHSAEggG7MIIBtzCCAbMGCWCGSAGG/WwBATCCAaQwOgYIKwYBBQUH AgEWLmh0dHA6Ly93d3cuZGlnaWNlcnQuY29tL3NzbC1jcHMtcmVwb3NpdG9yeS5odG0wggFkBggr BgEFBQcCAjCCAVYeggFSAEEAbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBzACAAQwBlAHIAdABp AGYAaQBjAGEAdABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBzACAAYQBjAGMAZQBwAHQAYQBuAGMA ZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBDAGUAcgB0ACAAQwBQAC8AQwBQAFMAIABhAG4AZAAg AHQAaABlACAAUgBlAGwAeQBpAG4AZwAgAFAAYQByAHQAeQAgAEEAZwByAGUAZQBtAGUAbgB0ACAA dwBoAGkAYwBoACAAbABpAG0AaQB0ACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBl ACAAaQBuAGMAbwByAHAAbwByAGEAdABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAgAHIAZQBmAGUA cgBlAG4AYwBlAC4wgYMGCCsGAQUFBwEBBHcwdTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlM aWNlcnQuY29tME0GCCsGAQUFBzAChkFodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl cnRTSEEySGlnaEFzc3VyYW5jZVNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEB CwUAA4IBAQBPWrp7uoj9qX8h+7iGwyNOB7274/GDQZSqnk52FTQ3Qi8AzM7YV/tNDZG2j1Ran7vG /q214cqsv/gtyxSBfRR4/WgGCIylw5uZv35FsEC0lyAyPJGLKsZSMALqKkeBGQlzsmkNo7TyZgQV XMzoeuQz2mocC+ShpQjn4Uug/FptmbnYKCiKFShc0IAwAj5+U3kPmOhskml2tj+BTXDKpq4m9onY C8eN928I7tkJPvCYGDwdsBkf3EHyM/AUB4oZ/zcnT/8F7SoRfexmD9Eojslzs+hEMKkKg7M/UxJt ySAVQF/BznGvWiWfZtHrtvBCKgXsvUJ3h/7M/SqtRQnpNZ0C +-----END CERTIFICATE----- diff --git a/src/main/resources/production/saml/private-key.pem b/src/main/resources/production/saml/private-key.pem new file mode 100644 index 00000000..12869e56 --- /dev/null +++ b/src/main/resources/production/saml/private-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCKHE1L4E95N6jG +4bED1vd7c5ZMry6J0qIqojpHAzG1YIEtfL28twxBfN9voNhFL9TD6dGsfWDwYaa7 +LXyMAHLRi7pI+sH852d7sq3xRd1ynKDmt+cU+6kMlDtUPulkbzeU9Z0lGFuS9qJw +CdjYliCuwUxwJsU3tVHTHlV8nAz5RaXw31Gl6u11QpgxLPeFP5AUWHzfduTA2Wr0 +5ePtx5iuMj1oIMv0o50DJaqGmCKtQAtGZMGSKIrtXhLerUAfEteH6M+6POzoKg0F +ZyfLEiuqAE1Ymt16P5PLfTPjRHz4XRBCcd6a+iAAvIpG0yQE9dS7PfNtY1akk51J +La150Ef1AgMBAAECggEAIH3MCX+58rCPekp6VIbsLhThVSUZc78j+5ey0iYEOcF8 +YnEoSg9eSMHR5vcWKiC4k2act1G/zo2KphprZJxuZrHSn3yuyoq+I7HDjjF7iY0j +pWO6b4tNF/J/irBKRCCOGPM3hxSV5pszV9xZMYsQIUzEaNYWK6bymxJV1jz4KGRL +w3nPIpeu8MwMZwOzQwz980bZ2vbr67Ft3GmsflKzM5SesmsW8ZyaYbVfHExvfQxV +nsf9ya0PLQqE9Gi81xY1sVkL3V+niU+AXYZ3w/neuXPz6eaJrxlu4hFdJifWlrQV +vW7mgfOmUuR/bEXr/1c95nZQykobrMqHCRVPpfesQQKBgQDCBrlYKD1XJXfXENnG +32O3TksbxVtL0Eyw1lstp20j6txetHn3F/rx/SFy70J02r2jdFHeP/V1iLrEJ81/ +5QVpsA+Au5Oxwdfee/izUFqhXwSpgvtLoVypBUNcglw/qi2tCKrL10nb0i+bocoD +PGaTIECJ0MWUxTX3SrzqC8XX2QKBgQC2OWw7gGu12eutQBHujTbaZXhjwv2QEBup +UZcVYeVn8KrPrK5621aLgQXUq5Db7GoelB09SXOoqy04WZkYy5XeF+ULRtz0M5ZD +cNgAaQXuuZZdxKWFVXbK1iliGJjcMkd9PEpx5BjM49Gq2r5n3FS5KK9A44iSPMbB +IZoYWsIbfQKBgQCeME08itI4Etw6BAsKEWeDM9oYsjdVAGcGZj3AYxigiANTU2F9 +C5gVY4O56UgNbanfch6tTQga43ciJjFtbJOVL230TvqDmr8dLYX+7Cx4FLgAXEH1 +z4F0bE4XRlFftqe2w7I8rzIQfrVB9g51xPD8UvdLZWMxf/gXvl93klGjQQKBgQCw +JWv5TJdR73jBPZjX50up68JndRrUwq1qjAMm2T3/roX/QCZdfl73dV4kiT/7R1oB +ex2Um8cguW959Cpo7ItPZ/uxXevCZ4eOY6t5IgxpCp9OvwNdkxLE2iagu7Qvzq6K +Ydh4pYxPqr2HkfHSxgpj/e8DI69l5TgfgxLJDhpqpQKBgAgSgck834l8lNZwVPa8 ++Vi9nOtoWy7pyf8pv7sDEKcVkTmUU6+53eZoccW8AUu6ilL1PtrQ7cNPTJcUom80 +IVyJsVTQjDy17mj1DU8Fw15pjFWE4zRfQo9vondblJaxs9aIIG/6x9vDQVjN0hwe +jTOz1k3Du8fEEpKQMgn97J/+ +-----END PRIVATE KEY----- diff --git a/src/main/resources/production/saml/public-cert.pem b/src/main/resources/production/saml/public-cert.pem new file mode 100644 index 00000000..55254d2d --- /dev/null +++ b/src/main/resources/production/saml/public-cert.pem @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID7TCCAtWgAwIBAgIUQ2G093CKO3nbHlyw68f5998BIjkwDQYJKoZIhvcNAQEL +BQAwgYUxCzAJBgNVBAYTAklUMQ4wDAYDVQQIDAVJdGFseTEQMA4GA1UEBwwHUGVy +dWdpYTEQMA4GA1UECgwHR2VwYWZpbjELMAkGA1UECwwCSVQxEDAOBgNVBAMMB0dl +cGFmaW4xIzAhBgkqhkiG9w0BCQEWFGMubW9yZXR0aUBnZXBhZmluLml0MB4XDTI0 +MTAwMTA5MjIwMloXDTI1MTAwMTA5MjIwMlowgYUxCzAJBgNVBAYTAklUMQ4wDAYD +VQQIDAVJdGFseTEQMA4GA1UEBwwHUGVydWdpYTEQMA4GA1UECgwHR2VwYWZpbjEL +MAkGA1UECwwCSVQxEDAOBgNVBAMMB0dlcGFmaW4xIzAhBgkqhkiG9w0BCQEWFGMu +bW9yZXR0aUBnZXBhZmluLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAihxNS+BPeTeoxuGxA9b3e3OWTK8uidKiKqI6RwMxtWCBLXy9vLcMQXzfb6DY +RS/Uw+nRrH1g8GGmuy18jABy0Yu6SPrB/Odne7Kt8UXdcpyg5rfnFPupDJQ7VD7p +ZG83lPWdJRhbkvaicAnY2JYgrsFMcCbFN7VR0x5VfJwM+UWl8N9RpertdUKYMSz3 +hT+QFFh833bkwNlq9OXj7ceYrjI9aCDL9KOdAyWqhpgirUALRmTBkiiK7V4S3q1A +HxLXh+jPujzs6CoNBWcnyxIrqgBNWJrdej+Ty30z40R8+F0QQnHemvogALyKRtMk +BPXUuz3zbWNWpJOdSS2tedBH9QIDAQABo1MwUTAdBgNVHQ4EFgQUQ+GP6sby5ZQX +KTgq0/MsCWfdcHcwHwYDVR0jBBgwFoAUQ+GP6sby5ZQXKTgq0/MsCWfdcHcwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAWnzvIOhK4Z/GQA2H0jb+ +tkpPiwXucybEEOwQyb6+ErNGLjM7aj/HXJv70zibchmuPN5yd6C9dmrlajf/qLFz +T+Dfy6zl3r0mNErcT/bgaJzVA87u0z2/DRP77XqwV23zDGK56bp8G2C1nZGq6x2k +zswESJYBquXtBWNEJnreDKOLic9AucSyf8T0C9aeWhC8L0Hz4Bd825J2n54L4YZD +ShkCDSdCOZVdaZNikRv+KyD1SI6HM3KeUNNknW6z7g2jb5PG4dn5U9+lpzOsfoYD +QEBrNG8qFZ7k9DYzh8l1dTo9izSNmudaiyjhgFw+5DZ0pcrhti6h3hnPPysSA8q/ +Mg== +-----END CERTIFICATE----- From ea3423e6ff03e149244f6859b251e39f16f44db3 Mon Sep 17 00:00:00 2001 From: harish Date: Mon, 7 Oct 2024 15:09:16 +0530 Subject: [PATCH 05/14] Added DateOfBirth in UserSamlResponse --- .../tendermanagement/model/response/UserSamlResponse.java | 4 ++++ .../service/impl/AuthenticationService.java | 8 ++++++++ src/main/resources/application-production.properties | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/UserSamlResponse.java b/src/main/java/net/gepafin/tendermanagement/model/response/UserSamlResponse.java index da732bd4..8fdcbdea 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/UserSamlResponse.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/UserSamlResponse.java @@ -2,6 +2,8 @@ package net.gepafin.tendermanagement.model.response; import lombok.Data; +import java.time.LocalDateTime; + @Data public class UserSamlResponse { @@ -10,4 +12,6 @@ public class UserSamlResponse { private String firstName; private String lastName; + + private LocalDateTime dateOfBirth; } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java b/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java index a84b325c..03ce8b1c 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java @@ -33,6 +33,7 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -182,6 +183,13 @@ public class AuthenticationService { && !userAttributes.get("cognome").isEmpty()) { userSamlResponse.setLastName(userAttributes.get("cognome").get(0).toString()); } + if (userAttributes.containsKey("dataNascita") && userAttributes.get("dataNascita") != null + && !userAttributes.get("dataNascita").isEmpty()) { + String dateString =userAttributes.get("dataNascita").get(0).toString(); + LocalDate dateOfBirth = LocalDate.parse(dateString); + LocalDateTime dateOfBirthWithTime = dateOfBirth.atStartOfDay(); + userSamlResponse.setDateOfBirth(dateOfBirthWithTime); + } userSamlResponse.setCodiceFiscale(cf); return userSamlResponse; } diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index f4ea18fa..968d5ac5 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -9,8 +9,8 @@ spring.h2.console.enabled=true base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false -fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com - +#fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com +fe.base.url=http://bandi.gepafin.it #SPID configuration spid.ipd.base.url=https://login.regione.umbria.it active.profile.folder=production \ No newline at end of file From 6f9df2ab50934fc662abc17c5dc2b986882ca8fb Mon Sep 17 00:00:00 2001 From: harish Date: Tue, 8 Oct 2024 17:27:27 +0530 Subject: [PATCH 06/14] updated production FE base url --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 968d5ac5..0aba783c 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -10,7 +10,7 @@ base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false #fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com -fe.base.url=http://bandi.gepafin.it +fe.base.url=https://bandi.gepafin.it #SPID configuration spid.ipd.base.url=https://login.regione.umbria.it active.profile.folder=production \ No newline at end of file From 38415f942f46c58ccc42d352b3d12d647b8e391d Mon Sep 17 00:00:00 2001 From: rbonazzo-KZ <66477605+rbonazzo-KZ@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:08:24 +0200 Subject: [PATCH 07/14] Update application-production.properties Base URL Bandi API --- src/main/resources/application-production.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 0aba783c..7aed447a 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -6,11 +6,11 @@ spring.datasource.driver-class-name=org.postgresql.Driver # JPA Configuration spring.h2.console.enabled=true -base-url=http://bandi-api.gepafin.it +base-url=https://bandi-api.gepafin.it isVatCheckGloballyDisabled = false #fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com fe.base.url=https://bandi.gepafin.it #SPID configuration spid.ipd.base.url=https://login.regione.umbria.it -active.profile.folder=production \ No newline at end of file +active.profile.folder=production From 5b1d0f435ac8c3d5885734791470a85ffa0e4d33 Mon Sep 17 00:00:00 2001 From: rbonazzo-KZ <66477605+rbonazzo-KZ@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:14:04 +0200 Subject: [PATCH 08/14] Update application-production.properties --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 7aed447a..135cf1aa 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -6,7 +6,7 @@ spring.datasource.driver-class-name=org.postgresql.Driver # JPA Configuration spring.h2.console.enabled=true -base-url=https://bandi-api.gepafin.it +base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false #fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com From e69a17abfe92d1162bcfd4a3baa40508c1279c6a Mon Sep 17 00:00:00 2001 From: rajesh Date: Tue, 8 Oct 2024 20:03:48 -0700 Subject: [PATCH 09/14] Updated config --- .../net/gepafin/tendermanagement/config/SamlFailureHandler.java | 2 +- .../net/gepafin/tendermanagement/config/SecurityConfig.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java b/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java index 81df79e3..171b7e12 100644 --- a/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java +++ b/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java @@ -15,7 +15,7 @@ import jakarta.servlet.http.HttpServletResponse; @Component public class SamlFailureHandler implements AuthenticationFailureHandler { - private final Logger logger = LoggerFactory.getLogger(SamlSuccessHandler.class); + private final Logger logger = LoggerFactory.getLogger(SamlFailureHandler.class); @Value("${fe.base.url}") private String feBaseUrl; diff --git a/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java b/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java index 91424195..ec38b268 100644 --- a/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java +++ b/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java @@ -107,7 +107,7 @@ public class SecurityConfig { .requestMatchers("/swagger-ui/**").permitAll() // Swagger docs .requestMatchers("/v1/api-docs/**").permitAll() // API docs .anyRequest().authenticated()) - .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)) .addFilterBefore(corsFilter(), UsernamePasswordAuthenticationFilter.class) .addFilterBefore(new JWTFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class) // Add SAML2 login configuration (for BENEFICIARI) From d47fda85f0dd4330ef837bb175d5ac5779a9b71a Mon Sep 17 00:00:00 2001 From: rajesh Date: Tue, 8 Oct 2024 20:19:31 -0700 Subject: [PATCH 10/14] Temp commented code --- .../tendermanagement/service/impl/AuthenticationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java b/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java index 03ce8b1c..106f42b4 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java @@ -153,7 +153,7 @@ public class AuthenticationService { UserEntity userEntity = userRepository.findByBeneficiaryCodiceFiscale(cf) .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG))); - samlResponseLogRepository.delete(samlResponseLogEntity); + //samlResponseLogRepository.delete(samlResponseLogEntity); return getJWTTokenBean(userEntity, Boolean.TRUE); } From 13cc0a032426bd5709ea9581a56439034d84f53b Mon Sep 17 00:00:00 2001 From: rbonazzo-KZ <66477605+rbonazzo-KZ@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:05:54 +0200 Subject: [PATCH 11/14] Update application-production.properties CHange base_url --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 135cf1aa..7aed447a 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -6,7 +6,7 @@ spring.datasource.driver-class-name=org.postgresql.Driver # JPA Configuration spring.h2.console.enabled=true -base-url=http://bandi-api.gepafin.it +base-url=https://bandi-api.gepafin.it isVatCheckGloballyDisabled = false #fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com From e2be043c73c25ca2cfd6a1b9b05edad249ef4442 Mon Sep 17 00:00:00 2001 From: rbonazzo-KZ <66477605+rbonazzo-KZ@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:11:35 +0200 Subject: [PATCH 12/14] Update application-production.properties --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 7aed447a..135cf1aa 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -6,7 +6,7 @@ spring.datasource.driver-class-name=org.postgresql.Driver # JPA Configuration spring.h2.console.enabled=true -base-url=https://bandi-api.gepafin.it +base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false #fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com From 77068ee7f4085841944f23a4ae27118874c74798 Mon Sep 17 00:00:00 2001 From: rajeshkhore <36757840+rajeshkhore@users.noreply.github.com> Date: Wed, 9 Oct 2024 16:06:01 +0530 Subject: [PATCH 13/14] Update application-production.properties updated base-url --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 135cf1aa..7aed447a 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -6,7 +6,7 @@ spring.datasource.driver-class-name=org.postgresql.Driver # JPA Configuration spring.h2.console.enabled=true -base-url=http://bandi-api.gepafin.it +base-url=https://bandi-api.gepafin.it isVatCheckGloballyDisabled = false #fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com From 571a14e1fdebcb59f6474520c1efb60b03e5a7fb Mon Sep 17 00:00:00 2001 From: rajesh Date: Thu, 10 Oct 2024 11:56:08 -0700 Subject: [PATCH 14/14] resolved conflicts --- .../gepafin/tendermanagement/config/SecurityConfig.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java b/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java index ec38b268..90c278d4 100644 --- a/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java +++ b/src/main/java/net/gepafin/tendermanagement/config/SecurityConfig.java @@ -24,12 +24,12 @@ import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; import org.springframework.web.servlet.handler.HandlerMappingIntrospector; - import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.servers.Server; +import jakarta.servlet.http.HttpServletResponse; import net.gepafin.tendermanagement.config.jwt.JWTFilter; import net.gepafin.tendermanagement.config.jwt.TokenProvider; @@ -108,6 +108,12 @@ public class SecurityConfig { .requestMatchers("/v1/api-docs/**").permitAll() // API docs .anyRequest().authenticated()) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)) + .exceptionHandling(exceptionHandling -> exceptionHandling + .authenticationEntryPoint((request, response, authException) -> { + // Send 403 Forbidden when there is no JWT token provided + response.sendError(HttpServletResponse.SC_FORBIDDEN, "Forbidden: Authentication token is missing or invalid"); + }) + ) .addFilterBefore(corsFilter(), UsernamePasswordAuthenticationFilter.class) .addFilterBefore(new JWTFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class) // Add SAML2 login configuration (for BENEFICIARI)