ConfigurazioneDumpConfigurazione.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.web.ctrlstat.servlet.config;

  21. import java.text.MessageFormat;
  22. import java.util.ArrayList;
  23. import java.util.List;

  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import javax.servlet.http.HttpSession;

  27. import org.apache.struts.action.Action;
  28. import org.apache.struts.action.ActionForm;
  29. import org.apache.struts.action.ActionForward;
  30. import org.apache.struts.action.ActionMapping;
  31. import org.openspcoop2.core.config.Configurazione;
  32. import org.openspcoop2.core.config.Dump;
  33. import org.openspcoop2.core.config.DumpConfigurazione;
  34. import org.openspcoop2.core.config.DumpConfigurazioneRegola;
  35. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  36. import org.openspcoop2.core.constants.TipoPdD;
  37. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  38. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  39. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  40. import org.openspcoop2.web.lib.mvc.Costanti;
  41. import org.openspcoop2.web.lib.mvc.DataElement;
  42. import org.openspcoop2.web.lib.mvc.ForwardParams;
  43. import org.openspcoop2.web.lib.mvc.GeneralData;
  44. import org.openspcoop2.web.lib.mvc.MessageType;
  45. import org.openspcoop2.web.lib.mvc.PageData;
  46. import org.openspcoop2.web.lib.mvc.Parameter;
  47. import org.openspcoop2.web.lib.mvc.ServletUtils;
  48. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  49. /**
  50.  * ConfigurazioneDumpConfigurazione
  51.  *
  52.  * @author Andrea Poli (apoli@link.it)
  53.  * @author Giuliano Pintori (pintori@link.it)
  54.  * @author $Author$
  55.  * @version $Rev$, $Date$
  56.  *
  57.  */
  58. public class ConfigurazioneDumpConfigurazione extends Action {

  59.     @Override
  60.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

  61.         TipoOperazione tipoOperazione = TipoOperazione.OTHER;

  62.         HttpSession session = request.getSession(true);

  63.         // Inizializzo PageData
  64.         PageData pd = new PageData();

  65.         GeneralHelper generalHelper = new GeneralHelper(session);

  66.         // Inizializzo GeneralData
  67.         GeneralData gd = generalHelper.initGeneralData(request);

  68.         String userLogin = ServletUtils.getUserLoginFromSession(session);  

  69.         try {
  70.             ConfigurazioneHelper confHelper = new ConfigurazioneHelper(request, pd, session);

  71.             // Preparo il menu
  72.             confHelper.makeMenu();
  73.            
  74.             ConfigurazioneCore confCore = new ConfigurazioneCore();
  75.            
  76.             boolean showStato = false;
  77.             String statoDump = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_STATO);
  78.             boolean showRealtime = confCore.isDumpShowConfigurazioneDumpRealtime();
  79.             String realtime = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_REALTIME);
  80.             String statoDumpRichiesta = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_STATO);
  81.             String statoDumpRisposta = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_STATO);
  82.            
  83.             String dumpRichiestaIngressoHeader = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_INGRESSO_HEADERS);
  84.             String dumpRichiestaIngressoPayload = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_INGRESSO_PAYLOAD);
  85.             String dumpRichiestaIngressoPayloadParsing = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_INGRESSO_PAYLOAD_PARSING);
  86.             String dumpRichiestaIngressoBody = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_INGRESSO_BODY);
  87.             String dumpRichiestaIngressoAttachments = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_INGRESSO_ATTACHMENTS);
  88.            
  89.             String dumpRichiestaUscitaHeader = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_USCITA_HEADERS);
  90.             String dumpRichiestaUscitaPayload = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_USCITA_PAYLOAD);
  91.             String dumpRichiestaUscitaPayloadParsing = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_USCITA_PAYLOAD_PARSING);
  92.             String dumpRichiestaUscitaBody = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_USCITA_BODY);
  93.             String dumpRichiestaUscitaAttachments = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_USCITA_ATTACHMENTS);
  94.            
  95.             String dumpRispostaIngressoHeader = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_INGRESSO_HEADERS);
  96.             String dumpRispostaIngressoPayload = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_INGRESSO_PAYLOAD);
  97.             String dumpRispostaIngressoPayloadParsing = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_INGRESSO_PAYLOAD_PARSING);
  98.             String dumpRispostaIngressoBody = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_INGRESSO_BODY);
  99.             String dumpRispostaIngressoAttachments = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_INGRESSO_ATTACHMENTS);
  100.            
  101.             String dumpRispostaUscitaHeader = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_USCITA_HEADERS);
  102.             String dumpRispostaUscitaPayload = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_USCITA_PAYLOAD);
  103.             String dumpRispostaUscitaPayloadParsing = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_USCITA_PAYLOAD_PARSING);
  104.             String dumpRispostaUscitaBody = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_USCITA_BODY);
  105.             String dumpRispostaUscitaAttachments = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_USCITA_ATTACHMENTS);
  106.            
  107.             String actionConferma = confHelper.getParameter(Costanti.PARAMETRO_ACTION_CONFIRM);

  108.             String tipoConfigurazione = confHelper.getParameter(CostantiControlStation.PARAMETRO_DUMP_TIPO_CONFIGURAZIONE);
  109.             TipoPdD tipoPdD = TipoPdD.toTipoPdD(tipoConfigurazione);
  110.             boolean portaApplicativa = TipoPdD.APPLICATIVA.equals(tipoPdD);
  111.            
  112.             Configurazione configurazioneGenerale = confCore.getConfigurazioneGenerale();
  113.            
  114.             Dump dump = configurazioneGenerale.getDump();
  115.             DumpConfigurazione oldConfigurazione = portaApplicativa ? dump.getConfigurazionePortaApplicativa() : dump.getConfigurazionePortaDelegata();
  116.            
  117.             // creo una configurazione di default
  118.             if(oldConfigurazione == null) {
  119.                 oldConfigurazione = new DumpConfigurazione();
  120.                
  121.                 oldConfigurazione.setRichiestaIngresso(new DumpConfigurazioneRegola());
  122.                 oldConfigurazione.getRichiestaIngresso().setPayload(StatoFunzionalita.DISABILITATO);
  123.                 oldConfigurazione.getRichiestaIngresso().setPayloadParsing(StatoFunzionalita.DISABILITATO);
  124.                 oldConfigurazione.getRichiestaIngresso().setBody(StatoFunzionalita.DISABILITATO);
  125.                 oldConfigurazione.getRichiestaIngresso().setAttachments(StatoFunzionalita.DISABILITATO);
  126.                 oldConfigurazione.getRichiestaIngresso().setHeaders(StatoFunzionalita.DISABILITATO);
  127.                
  128.                 oldConfigurazione.setRichiestaUscita(new DumpConfigurazioneRegola());
  129.                 oldConfigurazione.getRichiestaUscita().setPayload(StatoFunzionalita.DISABILITATO);
  130.                 oldConfigurazione.getRichiestaUscita().setPayloadParsing(StatoFunzionalita.DISABILITATO);
  131.                 oldConfigurazione.getRichiestaUscita().setBody(StatoFunzionalita.DISABILITATO);
  132.                 oldConfigurazione.getRichiestaUscita().setAttachments(StatoFunzionalita.DISABILITATO);
  133.                 oldConfigurazione.getRichiestaUscita().setHeaders(StatoFunzionalita.DISABILITATO);
  134.                
  135.                 oldConfigurazione.setRispostaIngresso(new DumpConfigurazioneRegola());
  136.                 oldConfigurazione.getRispostaIngresso().setPayload(StatoFunzionalita.DISABILITATO);
  137.                 oldConfigurazione.getRispostaIngresso().setPayloadParsing(StatoFunzionalita.DISABILITATO);
  138.                 oldConfigurazione.getRispostaIngresso().setBody(StatoFunzionalita.DISABILITATO);
  139.                 oldConfigurazione.getRispostaIngresso().setAttachments(StatoFunzionalita.DISABILITATO);
  140.                 oldConfigurazione.getRispostaIngresso().setHeaders(StatoFunzionalita.DISABILITATO);
  141.                
  142.                 oldConfigurazione.setRispostaUscita(new DumpConfigurazioneRegola());
  143.                 oldConfigurazione.getRispostaUscita().setPayload(StatoFunzionalita.DISABILITATO);
  144.                 oldConfigurazione.getRispostaUscita().setPayloadParsing(StatoFunzionalita.DISABILITATO);
  145.                 oldConfigurazione.getRispostaUscita().setBody(StatoFunzionalita.DISABILITATO);
  146.                 oldConfigurazione.getRispostaUscita().setAttachments(StatoFunzionalita.DISABILITATO);
  147.                 oldConfigurazione.getRispostaUscita().setHeaders(StatoFunzionalita.DISABILITATO);
  148.             }

  149.             // setto la barra del titolo
  150.             List<Parameter> lstParam = new ArrayList<>();

  151.             lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_REGISTRAZIONE_MESSAGGI,
  152.                     ConfigurazioneCostanti.SERVLET_NAME_CONFIGURAZIONE_TRACCIAMENTO_TRANSAZIONI,
  153.                     new Parameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE, ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI)));
  154.             if(portaApplicativa) {
  155.                 lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_DUMP_CONFIGURAZIONE_EROGAZIONI, null));
  156.             }
  157.             else {
  158.                 lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_DUMP_CONFIGURAZIONE_FRUIZIONI, null));
  159.             }
  160.            
  161.             String postBackElementName = confHelper.getPostBackElementName();
  162.             if(postBackElementName != null) {
  163.                 if(postBackElementName.equals(CostantiControlStation.PARAMETRO_DUMP_RICHIESTA_STATO)) {
  164.                     if(!confHelper.isDumpConfigurazioneAbilitato(oldConfigurazione, false) && statoDumpRichiesta.equals(StatoFunzionalita.ABILITATO.getValue())) {
  165.                        
  166.                         dumpRichiestaIngressoHeader = StatoFunzionalita.DISABILITATO.getValue();
  167.                         dumpRichiestaIngressoPayload = StatoFunzionalita.DISABILITATO.getValue();
  168.                         dumpRichiestaIngressoPayloadParsing = StatoFunzionalita.DISABILITATO.getValue();
  169.                         dumpRichiestaIngressoBody = StatoFunzionalita.DISABILITATO.getValue();
  170.                         dumpRichiestaIngressoAttachments = StatoFunzionalita.DISABILITATO.getValue();
  171.                        
  172.                         dumpRichiestaUscitaHeader = StatoFunzionalita.DISABILITATO.getValue();  
  173.                         dumpRichiestaUscitaPayload = StatoFunzionalita.DISABILITATO.getValue();
  174.                         dumpRichiestaUscitaPayloadParsing = StatoFunzionalita.DISABILITATO.getValue();
  175.                         dumpRichiestaUscitaBody = StatoFunzionalita.DISABILITATO.getValue();
  176.                         dumpRichiestaUscitaAttachments = StatoFunzionalita.DISABILITATO.getValue();
  177.                     }
  178.                 }
  179.                
  180.                 if(postBackElementName.equals(CostantiControlStation.PARAMETRO_DUMP_RISPOSTA_STATO)) {
  181.                     if(!confHelper.isDumpConfigurazioneAbilitato(oldConfigurazione, true) && statoDumpRisposta.equals(StatoFunzionalita.ABILITATO.getValue())) {
  182.                        
  183.                         dumpRispostaIngressoHeader = StatoFunzionalita.DISABILITATO.getValue();
  184.                         dumpRispostaIngressoPayload = StatoFunzionalita.DISABILITATO.getValue();
  185.                         dumpRispostaIngressoPayloadParsing = StatoFunzionalita.DISABILITATO.getValue();
  186.                         dumpRispostaIngressoBody = StatoFunzionalita.DISABILITATO.getValue();
  187.                         dumpRispostaIngressoAttachments = StatoFunzionalita.DISABILITATO.getValue();
  188.                        
  189.                         dumpRispostaUscitaHeader = StatoFunzionalita.DISABILITATO.getValue();  
  190.                         dumpRispostaUscitaPayload = StatoFunzionalita.DISABILITATO.getValue();
  191.                         dumpRispostaUscitaPayloadParsing = StatoFunzionalita.DISABILITATO.getValue();
  192.                         dumpRispostaUscitaBody = StatoFunzionalita.DISABILITATO.getValue();
  193.                         dumpRispostaUscitaAttachments = StatoFunzionalita.DISABILITATO.getValue();
  194.                     }
  195.                 }
  196.             }

  197.             // edit in progress
  198.             if (confHelper.isEditModeInProgress()) {
  199.                 ServletUtils.setPageDataTitle(pd, lstParam);
  200.                
  201.                 if(statoDump == null) {
  202.                     statoDump = "";
  203.                     realtime = oldConfigurazione.getRealtime().getValue();
  204.                     statoDumpRichiesta = confHelper.isDumpConfigurazioneAbilitato(oldConfigurazione, false) ? StatoFunzionalita.ABILITATO.getValue() : StatoFunzionalita.DISABILITATO.getValue();
  205.                     statoDumpRisposta = confHelper.isDumpConfigurazioneAbilitato(oldConfigurazione, true) ? StatoFunzionalita.ABILITATO.getValue() : StatoFunzionalita.DISABILITATO.getValue();
  206.                    
  207.                     dumpRichiestaIngressoHeader = oldConfigurazione.getRichiestaIngresso().getHeadersRawEnumValue();    
  208.                     dumpRichiestaIngressoPayload = oldConfigurazione.getRichiestaIngresso().getPayloadRawEnumValue();
  209.                     dumpRichiestaIngressoPayloadParsing = oldConfigurazione.getRichiestaIngresso().getPayloadParsingRawEnumValue();
  210.                     dumpRichiestaIngressoBody = oldConfigurazione.getRichiestaIngresso().getBodyRawEnumValue();
  211.                     dumpRichiestaIngressoAttachments = oldConfigurazione.getRichiestaIngresso().getAttachmentsRawEnumValue();
  212.                    
  213.                     dumpRichiestaUscitaHeader = oldConfigurazione.getRichiestaUscita().getHeadersRawEnumValue();    
  214.                     dumpRichiestaUscitaPayload = oldConfigurazione.getRichiestaUscita().getPayloadRawEnumValue();
  215.                     dumpRichiestaUscitaPayloadParsing = oldConfigurazione.getRichiestaUscita().getPayloadParsingRawEnumValue();
  216.                     dumpRichiestaUscitaBody = oldConfigurazione.getRichiestaUscita().getBodyRawEnumValue();
  217.                     dumpRichiestaUscitaAttachments = oldConfigurazione.getRichiestaUscita().getAttachmentsRawEnumValue();
  218.                    
  219.                     dumpRispostaIngressoHeader = oldConfigurazione.getRispostaIngresso().getHeadersRawEnumValue();  
  220.                     dumpRispostaIngressoPayload = oldConfigurazione.getRispostaIngresso().getPayloadRawEnumValue();
  221.                     dumpRispostaIngressoPayloadParsing = oldConfigurazione.getRispostaIngresso().getPayloadParsingRawEnumValue();
  222.                     dumpRispostaIngressoBody = oldConfigurazione.getRispostaIngresso().getBodyRawEnumValue();
  223.                     dumpRispostaIngressoAttachments = oldConfigurazione.getRispostaIngresso().getAttachmentsRawEnumValue();
  224.                    
  225.                     dumpRispostaUscitaHeader = oldConfigurazione.getRispostaUscita().getHeadersRawEnumValue();  
  226.                     dumpRispostaUscitaPayload = oldConfigurazione.getRispostaUscita().getPayloadRawEnumValue();
  227.                     dumpRispostaUscitaPayloadParsing = oldConfigurazione.getRispostaUscita().getPayloadParsingRawEnumValue();
  228.                     dumpRispostaUscitaBody = oldConfigurazione.getRispostaUscita().getBodyRawEnumValue();
  229.                     dumpRispostaUscitaAttachments = oldConfigurazione.getRispostaUscita().getAttachmentsRawEnumValue();
  230.                 }

  231.                 // preparo i campi
  232.                 List<DataElement> dati = new ArrayList<>();
  233.                 dati.add(ServletUtils.getDataElementForEditModeFinished());

  234.                 confHelper.addConfigurazioneDumpToDati(tipoOperazione, dati, showStato, statoDump, showRealtime, realtime, statoDumpRichiesta, statoDumpRisposta,
  235.                         dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  236.                         dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  237.                         dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  238.                         dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments,
  239.                         portaApplicativa);

  240.                 pd.setDati(dati);

  241.                 ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  242.                 return ServletUtils.getStrutsForwardEditModeInProgress(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_DUMP_CONFIGURAZIONE,  ForwardParams.OTHER(""));
  243.             }

  244.             // Controlli sui campi immessi
  245.             boolean isOk = confHelper.checkDataConfigurazioneDump(tipoOperazione, showStato, statoDump, showRealtime, realtime, statoDumpRichiesta, statoDumpRisposta,
  246.                     dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  247.                     dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  248.                     dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  249.                     dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments);
  250.             if (!isOk) {

  251.                 ServletUtils.setPageDataTitle(pd, lstParam);

  252.                 // preparo i campi
  253.                 List<DataElement> dati = new ArrayList<>();
  254.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  255.                
  256.                 confHelper.addConfigurazioneDumpToDati(tipoOperazione, dati, showStato, statoDump, showRealtime, realtime, statoDumpRichiesta, statoDumpRisposta,
  257.                         dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  258.                         dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  259.                         dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  260.                         dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments,
  261.                         portaApplicativa);

  262.                 pd.setDati(dati);

  263.                 ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  264.                 return ServletUtils.getStrutsForwardEditModeCheckError(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_DUMP_CONFIGURAZIONE,  ForwardParams.OTHER(""));
  265.             }
  266.            
  267.             boolean showConfermaRichiesta = false;
  268.             boolean showConfermaRisposta = false;
  269.             // se ho abilitato entrambi i dump di ingresso e uscita per richiesta o risposta informo l'utente che lo spazio occupato sara' il doppio
  270.             if(statoDumpRichiesta.equals(StatoFunzionalita.ABILITATO.getValue())) {
  271.                            
  272.                 boolean bodyIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaIngressoPayload);
  273.                 boolean attachmentsIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaIngressoPayload);
  274.                 if(StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaIngressoPayloadParsing)) {
  275.                     bodyIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaIngressoBody);
  276.                     attachmentsIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaIngressoAttachments);
  277.                 }
  278.                 boolean bodyUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaUscitaPayload);
  279.                 boolean attachmentsUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaUscitaPayload);
  280.                 if(StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaUscitaPayloadParsing)) {
  281.                     bodyUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaUscitaBody);
  282.                     attachmentsUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRichiestaUscitaAttachments);
  283.                 }
  284.                
  285.                 // doppio body
  286.                 if(bodyIngresso && bodyUscita) {
  287.                     showConfermaRichiesta = true;
  288.                 }
  289.                
  290.                 // doppi attachments
  291.                 if(attachmentsIngresso && attachmentsUscita) {
  292.                     showConfermaRichiesta = true;
  293.                 }
  294.             }
  295.            
  296.             // se ho abilitato entrambi i dump di ingresso e uscita per richiesta o risposta informo l'utente che lo spazio occupato sara' il doppio
  297.             if(statoDumpRisposta.equals(StatoFunzionalita.ABILITATO.getValue())) {
  298.                
  299.                 boolean bodyIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaIngressoPayload);
  300.                 boolean attachmentsIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaIngressoPayload);
  301.                 if(StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaIngressoPayloadParsing)) {
  302.                     bodyIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaIngressoBody);
  303.                     attachmentsIngresso = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaIngressoAttachments);
  304.                 }
  305.                 boolean bodyUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaUscitaPayload);
  306.                 boolean attachmentsUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaUscitaPayload);
  307.                 if(StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaUscitaPayloadParsing)) {
  308.                     bodyUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaUscitaBody);
  309.                     attachmentsUscita = StatoFunzionalita.ABILITATO.getValue().equals(dumpRispostaUscitaAttachments);
  310.                 }
  311.                
  312.                 // doppio body
  313.                 if(bodyIngresso && bodyUscita) {
  314.                     showConfermaRisposta = true;
  315.                 }
  316.                
  317.                 // doppi attachments
  318.                 if(attachmentsIngresso && attachmentsUscita) {
  319.                     showConfermaRisposta = true;
  320.                 }
  321.             }
  322.            
  323.             if(showConfermaRichiesta  || showConfermaRisposta) {
  324.                 if(actionConferma == null) {
  325.                    
  326.                     ServletUtils.setPageDataTitle(pd, lstParam);

  327.                     // preparo i campi
  328.                     List<DataElement> dati = new ArrayList<>();
  329.                     dati.add(ServletUtils.getDataElementForEditModeFinished());
  330.                    
  331.                     confHelper.addConfigurazioneDumpToDati(tipoOperazione, dati, showStato, statoDump, showRealtime, realtime, statoDumpRichiesta, statoDumpRisposta,
  332.                             dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  333.                             dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  334.                             dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  335.                             dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments,
  336.                             portaApplicativa);
  337.                    
  338.                    
  339.                     confHelper.addConfigurazioneDumpToDatiAsHidden(tipoOperazione, dati, showStato, statoDump, showRealtime, realtime, statoDumpRichiesta, statoDumpRisposta,
  340.                             dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  341.                             dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  342.                             dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  343.                             dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments,
  344.                             portaApplicativa);
  345.                    
  346.                     pd.setDati(dati);
  347.                    
  348.                    
  349.                     String msg ="";
  350.                     if(showConfermaRichiesta)
  351.                         msg = CostantiControlStation.LABEL_PARAMETRO_RICHIESTA;

  352.                     if(showConfermaRichiesta && showConfermaRisposta)
  353.                         msg += " e ";
  354.                    
  355.                     if(showConfermaRisposta)
  356.                         msg = CostantiControlStation.LABEL_PARAMETRO_RISPOSTA;
  357.                    
  358.                     String messaggio =  MessageFormat.format(CostantiControlStation.MESSAGGIO_CONFERMA_REGISTRAZIONE_MESSAGGI_DOPPIO_SPAZIO, msg);
  359.                    
  360.                     pd.setMessage(messaggio, MessageType.CONFIRM);
  361.                    
  362.                     String[][] bottoni = {
  363.                             { Costanti.LABEL_MONITOR_BUTTON_ANNULLA,
  364.                                 Costanti.LABEL_MONITOR_BUTTON_ANNULLA_CONFERMA_PREFIX +
  365.                                 Costanti.LABEL_MONITOR_BUTTON_ANNULLA_CONFERMA_SUFFIX
  366.                                
  367.                             },
  368.                             { Costanti.LABEL_MONITOR_BUTTON_CONFERMA,
  369.                                 Costanti.LABEL_MONITOR_BUTTON_ESEGUI_OPERAZIONE_CONFERMA_PREFIX +
  370.                                 Costanti.LABEL_MONITOR_BUTTON_ESEGUI_OPERAZIONE_CONFERMA_SUFFIX }};

  371.                     pd.setBottoni(bottoni);
  372.                    
  373.                     // disabilito la form
  374.                     pd.disableEditMode();

  375.                     ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  376.                     return ServletUtils.getStrutsForwardEditModeInProgress(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_DUMP_CONFIGURAZIONE,  ForwardParams.OTHER(""));
  377.                 }
  378.             }
  379.            
  380.             // se ho confermato effettuo la modifica altrimenti torno direttamente alla lista
  381.             if( !(showConfermaRichiesta  || showConfermaRisposta)
  382.                 ||
  383.                 (actionConferma != null && actionConferma.equals(Costanti.PARAMETRO_ACTION_CONFIRM_VALUE_OK))
  384.                 ) {

  385.                 Configurazione newConfigurazione = confCore.getConfigurazioneGenerale();
  386.                
  387.                 DumpConfigurazione newDumpConfigurazione = confHelper.getConfigurazioneDump(tipoOperazione, showStato, statoDump, showRealtime, realtime,
  388.                             statoDumpRichiesta, statoDumpRisposta,
  389.                             dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  390.                             dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  391.                             dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  392.                             dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments);
  393.                
  394.                 if(portaApplicativa) {
  395.                     newConfigurazione.getDump().setConfigurazionePortaApplicativa(newDumpConfigurazione);
  396.                 }
  397.                 else {
  398.                     newConfigurazione.getDump().setConfigurazionePortaDelegata(newDumpConfigurazione);
  399.                 }
  400.    
  401.                 confCore.performUpdateOperation(userLogin, confHelper.smista(), newConfigurazione);
  402.    
  403.                 // Preparo la lista
  404.                 pd.setMessage(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_DUMP_CONFIGURAZIONE_CON_SUCCESSO, Costanti.MESSAGE_TYPE_INFO);
  405.    
  406.                 // ricarico la configurazione
  407.                 newConfigurazione = confCore.getConfigurazioneGenerale();
  408.                
  409.                 DumpConfigurazione configurazioneAggiornata = portaApplicativa ? newConfigurazione.getDump().getConfigurazionePortaApplicativa() : newConfigurazione.getDump().getConfigurazionePortaDelegata();
  410.                 statoDump = "";
  411.                 realtime = configurazioneAggiornata.getRealtime().getValue();
  412.                 statoDumpRichiesta = confHelper.isDumpConfigurazioneAbilitato(configurazioneAggiornata, false) ? StatoFunzionalita.ABILITATO.getValue() : StatoFunzionalita.DISABILITATO.getValue();
  413.                 statoDumpRisposta = confHelper.isDumpConfigurazioneAbilitato(configurazioneAggiornata, true) ? StatoFunzionalita.ABILITATO.getValue() : StatoFunzionalita.DISABILITATO.getValue();
  414.                
  415.                 dumpRichiestaIngressoHeader = configurazioneAggiornata.getRichiestaIngresso().getHeadersRawEnumValue();
  416.                 dumpRichiestaIngressoPayload = configurazioneAggiornata.getRichiestaIngresso().getPayloadRawEnumValue();
  417.                 dumpRichiestaIngressoPayloadParsing = configurazioneAggiornata.getRichiestaIngresso().getPayloadParsingRawEnumValue();
  418.                 dumpRichiestaIngressoBody = configurazioneAggiornata.getRichiestaIngresso().getBodyRawEnumValue();
  419.                 dumpRichiestaIngressoAttachments = configurazioneAggiornata.getRichiestaIngresso().getAttachmentsRawEnumValue();
  420.                
  421.                 dumpRichiestaUscitaHeader = configurazioneAggiornata.getRichiestaUscita().getHeadersRawEnumValue();
  422.                 dumpRichiestaUscitaPayload = configurazioneAggiornata.getRichiestaUscita().getPayloadRawEnumValue();
  423.                 dumpRichiestaUscitaPayloadParsing = configurazioneAggiornata.getRichiestaUscita().getPayloadParsingRawEnumValue();
  424.                 dumpRichiestaUscitaBody = configurazioneAggiornata.getRichiestaUscita().getBodyRawEnumValue();
  425.                 dumpRichiestaUscitaAttachments = configurazioneAggiornata.getRichiestaUscita().getAttachmentsRawEnumValue();
  426.                
  427.                 dumpRispostaIngressoHeader = configurazioneAggiornata.getRispostaIngresso().getHeadersRawEnumValue();  
  428.                 dumpRispostaIngressoPayload = configurazioneAggiornata.getRispostaIngresso().getPayloadRawEnumValue();
  429.                 dumpRispostaIngressoPayloadParsing = configurazioneAggiornata.getRispostaIngresso().getPayloadParsingRawEnumValue();
  430.                 dumpRispostaIngressoBody = configurazioneAggiornata.getRispostaIngresso().getBodyRawEnumValue();
  431.                 dumpRispostaIngressoAttachments = configurazioneAggiornata.getRispostaIngresso().getAttachmentsRawEnumValue();
  432.                
  433.                 dumpRispostaUscitaHeader = configurazioneAggiornata.getRispostaUscita().getHeadersRawEnumValue();  
  434.                 dumpRispostaUscitaPayload = configurazioneAggiornata.getRispostaUscita().getPayloadRawEnumValue();
  435.                 dumpRispostaUscitaPayloadParsing = configurazioneAggiornata.getRispostaUscita().getPayloadParsingRawEnumValue();
  436.                 dumpRispostaUscitaBody = configurazioneAggiornata.getRispostaUscita().getBodyRawEnumValue();
  437.                 dumpRispostaUscitaAttachments = configurazioneAggiornata.getRispostaUscita().getAttachmentsRawEnumValue();
  438.            
  439.             }
  440.            
  441.             ServletUtils.setPageDataTitle(pd, lstParam);
  442.            
  443.             // preparo i campi
  444.             List<DataElement> dati = new ArrayList<>();
  445.            
  446.             confHelper.addConfigurazioneDumpToDati(tipoOperazione, dati, showStato, statoDump, showRealtime, realtime, statoDumpRichiesta, statoDumpRisposta,
  447.                     dumpRichiestaIngressoHeader, dumpRichiestaIngressoPayload, dumpRichiestaIngressoPayloadParsing, dumpRichiestaIngressoBody, dumpRichiestaIngressoAttachments,
  448.                     dumpRichiestaUscitaHeader, dumpRichiestaUscitaPayload, dumpRichiestaUscitaPayloadParsing, dumpRichiestaUscitaBody, dumpRichiestaUscitaAttachments,
  449.                     dumpRispostaIngressoHeader, dumpRispostaIngressoPayload, dumpRispostaIngressoPayloadParsing, dumpRispostaIngressoBody, dumpRispostaIngressoAttachments,
  450.                     dumpRispostaUscitaHeader, dumpRispostaUscitaPayload, dumpRispostaUscitaPayloadParsing, dumpRispostaUscitaBody, dumpRispostaUscitaAttachments,
  451.                     portaApplicativa);

  452.             pd.setDati(dati);
  453.             pd.disableEditMode();

  454.             ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  455.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_DUMP_CONFIGURAZIONE, ForwardParams.OTHER(""));
  456.         } catch (Exception e) {
  457.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  458.                     ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_DUMP_CONFIGURAZIONE, ForwardParams.OTHER(""));
  459.         }
  460.     }

  461. }