From 3094b10599c02d56dbaa97a270a9fed43c21c5de Mon Sep 17 00:00:00 2001 From: "marco.spasiano" Date: Thu, 16 Sep 2021 18:50:16 +0200 Subject: [PATCH] Add method for create PEC MAIL with parameter: pec.host.name= pec.host.sslSmtpPort= pec.host.sSLOnConnect= pec.host.smtpPort= pec.host.startTLSEnabled= --- pom.xml | 2 +- .../bulk/DocumentoEleTestataHome.java | 3 +++ .../FatturaPassivaElettronicaService.java | 17 ++++++-------- .../service/DocumentiContabiliService.java | 9 ++++---- .../contab/spring/service/UtilService.java | 23 +++++++++++++++++++ .../spring/default-repository.properties | 4 ++++ 6 files changed, 43 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 5cd47271ab..7fc43c9a9f 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 0.0.1 0.0.5 5.2.5.RELEASE - 7.0.21 + 7.0.22 UTF-8 target ${maven.build.timestamp} diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataHome.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataHome.java index 363e5d160d..ba86825c09 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataHome.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/fatturapa/bulk/DocumentoEleTestataHome.java @@ -256,10 +256,13 @@ public void notificaEsito(UserContext userContext, TipoIntegrazioneSDI tipoInteg logger.error("Errore applicativo durante la Notifica di Esito Committente, contattare il servizio di HelpDesk!"); throw new ApplicationException("Errore applicativo durante la Notifica di Esito Committente, contattare il servizio di HelpDesk!"); } + /* storeEsitoDocument(documentoEleTestataBulk, new ByteArrayInputStream(outputStreamNotificaEsito.toByteArray()), documentoEleTestataBulk.getStatoDocumentoEle().equals(StatoDocumentoEleEnum.RIFIUTATO)? StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_RIFIUTATO.value(): StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_ACCETTATO.value()); + + */ fatturaService.notificaEsito(authentication.getUserName(), authentication.getPassword(), documentoEleTestataBulk, notificaEsitoCommittente); } catch(ApplicationException _ex) { diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/service/FatturaPassivaElettronicaService.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/service/FatturaPassivaElettronicaService.java index 31b9e49eb0..70dfdbea06 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/service/FatturaPassivaElettronicaService.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/service/FatturaPassivaElettronicaService.java @@ -22,6 +22,7 @@ import it.cnr.contab.docamm00.ejb.*; import it.cnr.contab.docamm00.fatturapa.bulk.*; import it.cnr.contab.pdd.ws.client.FatturazioneElettronicaClient; +import it.cnr.contab.spring.service.UtilService; import it.cnr.contab.utenze00.bp.WSUserContext; import it.cnr.contab.util.StringEncrypter; import it.cnr.contab.util.StringEncrypter.EncryptionException; @@ -86,11 +87,11 @@ public class FatturaPassivaElettronicaService implements InitializingBean { @Autowired private StoreService storeService; + @Autowired + private UtilService utilService; @Value("${pec.sdi.replyTo:}") private String replyTo; - @Value("${pec.host.port:465}") - private String port; private String pecHostName, pecURLName, pecSDIAddress, pecSDISubjectFatturaAttivaInvioTerm, pecSDISubjectNotificaPecTerm, pecSDISubjectFatturaPassivaNotificaScartoEsitoTerm, pecSDIFromStringTerm, pecSDISubjectRiceviFattureTerm, pecSDISubjectFatturaAttivaRicevutaConsegnaTerm, pecSDISubjectFatturaAttivaNotificaScartoTerm, pecSDISubjectFatturaAttivaMancataConsegnaTerm, @@ -1033,8 +1034,7 @@ private String extractFileName(BodyPart bodyPart) throws MessagingException, public void notificaEsito(String userName, String password, DocumentoEleTestataBulk bulk, JAXBElement notificaEsitoCommittenteType) throws EmailException, XmlMappingException, IOException { // Create the email message - SimplePECMail email = new SimplePECMail(userName, password, this.port); - email.setHostName(pecHostName); + SimplePECMail email = utilService.createSimplePECMail(userName, password); String replyTo = null; if (bulk.getDocumentoEleTrasmissione() != null) { replyTo = Optional.ofNullable(this.replyTo).filter(s -> !s.isEmpty()).orElse(bulk.getDocumentoEleTrasmissione().getReplyTo()); @@ -1058,8 +1058,7 @@ public void notificaEsito(String userName, String password, DocumentoEleTestataB public void inviaFatturaElettronica(String userName, String password, File fatturaAttivaSigned, String idFattura) throws EmailException, XmlMappingException, IOException { // Create the email message - SimplePECMail email = new SimplePECMail(userName, password, this.port); - email.setHostName(pecHostName); + SimplePECMail email = utilService.createSimplePECMail(userName, password); email.addTo(pecSDIAddress, "SdI - Sistema Di Interscambio"); email.setFrom(userName, userName); email.setSubject(pecSDISubjectFatturaAttivaInvioTerm + " " + idFattura); @@ -1071,8 +1070,7 @@ public void inviaFatturaElettronica(String userName, String password, File fattu public void inviaFatturaElettronica(String userName, String password, DataSource fatturaAttivaSigned, String idFattura) throws EmailException, XmlMappingException, IOException { // Create the email message - SimplePECMail email = new SimplePECMail(userName, password, this.port); - email.setHostName(pecHostName); + SimplePECMail email = utilService.createSimplePECMail(userName, password); email.addTo(pecSDIAddress, "SdI - Sistema Di Interscambio"); email.setFrom(userName, userName); email.setSubject(pecSDISubjectFatturaAttivaInvioTerm + " " + idFattura); @@ -1092,8 +1090,7 @@ public void inviaPECFornitore(UserContext userContext, DataSource attach, String new AuthenticationFailedException("Cannot decrypt password"); } // Create the email message - SimplePECMail email = new SimplePECMail(userName, password, this.port); - email.setHostName(pecHostName); + SimplePECMail email = utilService.createSimplePECMail(userName, password); email.addTo(emailPEC); email.setFrom(userName, userName); email.setSubject(subject); diff --git a/sigla-ejb/src/main/java/it/cnr/contab/doccont00/service/DocumentiContabiliService.java b/sigla-ejb/src/main/java/it/cnr/contab/doccont00/service/DocumentiContabiliService.java index 9599989e42..ea931dbbc1 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/doccont00/service/DocumentiContabiliService.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/doccont00/service/DocumentiContabiliService.java @@ -39,6 +39,7 @@ import it.cnr.contab.doccont00.intcass.giornaliera.MovimentoContoEvidenzaBulk; import it.cnr.contab.siope.plus.bulk.SIOPEPlusEsitoBulk; import it.cnr.contab.siope.plus.bulk.SIOPEPlusRisultatoBulk; +import it.cnr.contab.spring.service.UtilService; import it.cnr.contab.utenze00.bp.WSUserContext; import it.cnr.contab.utenze00.bulk.UtenteBulk; import it.cnr.contab.util.*; @@ -109,6 +110,8 @@ public class DocumentiContabiliService extends StoreService implements Initializ private OrdinativiSiopePlusService ordinativiSiopePlusService; @Autowired private GiornaleDiCassaSiopePlusService giornaleDiCassaSiopePlusService; + @Autowired + private UtilService utilService; @Value("${sign.document.png.url}") private String signDocumentURL; @@ -272,8 +275,7 @@ public void inviaDistintaPEC1210(List nodes) throws EmailException, Appl public void inviaDistintaPEC1210(List nodes, boolean isNoEuroOrSepa, String nrDistinta) throws EmailException, ApplicationException, IOException { // Create the email message - SimplePECMail email = new SimplePECMail(pecMailFromBanca, pecMailFromBancaPassword); - email.setHostName(pecHostName); + SimplePECMail email = utilService.createSimplePECMail(pecMailFromBanca, pecMailFromBancaPassword); String subject = ""; if (isNoEuroOrSepa) { subject += "Bonifici Estero - "; @@ -310,8 +312,7 @@ public void inviaDistintaPEC1210(List nodes, boolean isNoEuroOrSepa, Str public void inviaDistintaPEC(List nodes, boolean isNoEuroOrSepa, String nrDistinta, boolean isDistintaStipendi) throws EmailException, ApplicationException, IOException { // Create the email message - SimplePECMail email = new SimplePECMail(pecMailFromBanca, pecMailFromBancaPassword); - email.setHostName(pecHostName); + SimplePECMail email = utilService.createSimplePECMail(pecMailFromBanca, pecMailFromBancaPassword); String subject = ""; if (isDistintaStipendi) { email.addTo( diff --git a/sigla-ejb/src/main/java/it/cnr/contab/spring/service/UtilService.java b/sigla-ejb/src/main/java/it/cnr/contab/spring/service/UtilService.java index 826d221595..fd3b389118 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/spring/service/UtilService.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/spring/service/UtilService.java @@ -23,6 +23,7 @@ import it.cnr.jada.DetailedRuntimeException; import it.cnr.jada.UserContext; import it.cnr.jada.util.ejb.EJBCommonServices; +import it.cnr.jada.util.mail.SimplePECMail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; @@ -45,6 +46,18 @@ public class UtilService implements InitializingBean { @Value("${help.base.url}") private String helpBaseURL; + @Value("${pec.host.name}") + private String pecHostName; + @Value("${pec.host.sslSmtpPort}") + private String sslSmtpPort; + @Value("${pec.host.sSLOnConnect}") + private Boolean sSLOnConnect; + @Value("${pec.host.smtpPort}") + private Integer smtpPort; + @Value("${pec.host.startTLSEnabled}") + private Boolean startTLSEnabled; + + public void executeAggiornaGECO() { UserContext userContext = new CNRUserContext(GECO, null, LocalDate.now().getYear(), null, null, null); try { @@ -84,4 +97,14 @@ public Integer getAnniResidui() { public String getHelpBaseURL() { return helpBaseURL; } + + public SimplePECMail createSimplePECMail(String userName, String password) { + SimplePECMail simplePECMail = new SimplePECMail(userName, password); + simplePECMail.setHostName(pecHostName); + Optional.ofNullable(sslSmtpPort).ifPresent(s -> simplePECMail.setSslSmtpPort(s)); + Optional.ofNullable(sSLOnConnect).ifPresent(b -> simplePECMail.setSSLOnConnect(b)); + Optional.ofNullable(smtpPort).ifPresent(i -> simplePECMail.setSmtpPort(i)); + Optional.ofNullable(startTLSEnabled).ifPresent(b -> simplePECMail.setStartTLSEnabled(b)); + return simplePECMail; + } } diff --git a/sigla-ejb/src/main/resources/META-INF/spring/default-repository.properties b/sigla-ejb/src/main/resources/META-INF/spring/default-repository.properties index f6dfd07c11..348676d2cf 100644 --- a/sigla-ejb/src/main/resources/META-INF/spring/default-repository.properties +++ b/sigla-ejb/src/main/resources/META-INF/spring/default-repository.properties @@ -50,6 +50,10 @@ siopeplus.cron.expression=0 30 5-23 * * ? contratto.flows.folder=flows-demo pec.host.name=smtps.pec.aruba.it +pec.host.sslSmtpPort=465 +pec.host.sSLOnConnect=true +pec.host.smtpPort= +pec.host.startTLSEnabled= pec.mail.imap.host=imaps.pec.aruba.it pec.mail.imap.auth=true