ConfigurazioneTracciamentoTransazioni.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.util.ArrayList;
  22. import java.util.List;

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

  26. import org.apache.commons.lang.StringUtils;
  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.ConfigurazioneTracciamentoPorta;
  33. import org.openspcoop2.core.config.Dump;
  34. import org.openspcoop2.core.config.MessaggiDiagnostici;
  35. import org.openspcoop2.core.config.Tracciamento;
  36. import org.openspcoop2.core.config.TracciamentoConfigurazione;
  37. import org.openspcoop2.core.config.TracciamentoConfigurazioneFiletrace;
  38. import org.openspcoop2.core.config.TracciamentoConfigurazioneFiletraceConnector;
  39. import org.openspcoop2.core.config.Transazioni;
  40. import org.openspcoop2.core.config.constants.Severita;
  41. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  42. import org.openspcoop2.core.config.utils.TracciamentoCompatibilitaFiltroEsiti;
  43. import org.openspcoop2.protocol.sdk.constants.EsitoTransazioneName;
  44. import org.openspcoop2.protocol.utils.EsitiConfigUtils;
  45. import org.openspcoop2.protocol.utils.EsitiProperties;
  46. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  47. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  48. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  49. import org.openspcoop2.web.lib.mvc.Costanti;
  50. import org.openspcoop2.web.lib.mvc.DataElement;
  51. import org.openspcoop2.web.lib.mvc.ForwardParams;
  52. import org.openspcoop2.web.lib.mvc.GeneralData;
  53. import org.openspcoop2.web.lib.mvc.PageData;
  54. import org.openspcoop2.web.lib.mvc.Parameter;
  55. import org.openspcoop2.web.lib.mvc.ServletUtils;
  56. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  57. /**
  58.  * ConfigurazioneTracciamentoTransazioni
  59.  *
  60.  * @author Andrea Poli (apoli@link.it)
  61.  * @author Giuliano Pintori (pintori@link.it)
  62.  * @author $Author$
  63.  * @version $Rev$, $Date$
  64.  *
  65.  */
  66. public class ConfigurazioneTracciamentoTransazioni extends Action {

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

  69.         TipoOperazione tipoOperazione = TipoOperazione.OTHER;
  70.        
  71.         HttpSession session = request.getSession(true);

  72.         // Inizializzo PageData
  73.         PageData pd = new PageData();

  74.         GeneralHelper generalHelper = new GeneralHelper(session);

  75.         // Inizializzo GeneralData
  76.         GeneralData gd = generalHelper.initGeneralData(request);

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

  78.         try {
  79.             ConfigurazioneHelper confHelper = new ConfigurazioneHelper(request, pd, session);
  80.            
  81.             Boolean contaListe = ServletUtils.getContaListeFromSession(session);
  82.            
  83.             // Preparo il menu
  84.             confHelper.makeMenu();
  85.            
  86.             ConfigurazioneCore confCore = new ConfigurazioneCore();
  87.            
  88.             Configurazione oldConfigurazione = confCore.getConfigurazioneGenerale();
  89.            
  90.             // Stato [si usa per capire se sono entrato per la prima volta nella schermata]    
  91.             boolean first = confHelper.isFirstTimeFromHttpParameters(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_FIRST_TIME);
  92.            
  93.             String tipoConfigurazione = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE);
  94.            
  95.             String severita = null;
  96.             String severitaLog4j = null;
  97.             String registrazioneTracce = null;
  98.            
  99.             ConfigurazioneTracciamentoPorta oldConfigurazioneTracciamento = null;
  100.            
  101.             String dbStato = null;
  102.             String dbStatoReqIn = null;
  103.             String dbStatoReqOut = null;
  104.             String dbStatoResOut = null;
  105.             String dbStatoResOutComplete = null;
  106.             boolean dbFiltroEsiti = false;
  107.            
  108.             String fsStato = null;
  109.             String fsStatoReqIn = null;
  110.             String fsStatoReqOut = null;
  111.             String fsStatoResOut = null;
  112.             String fsStatoResOutComplete = null;
  113.             boolean fsFiltroEsiti = false;
  114.            
  115.             String nuovaConfigurazioneEsiti = null;
  116.             String tracciamentoEsitiSelezionePersonalizzataOk = null;
  117.             String tracciamentoEsitiSelezionePersonalizzataFault = null;
  118.             String tracciamentoEsitiSelezionePersonalizzataFallite = null;
  119.             String tracciamentoEsitiSelezionePersonalizzataScartate = null;
  120.             String tracciamentoEsitiSelezionePersonalizzataRateLimiting = null;
  121.             String tracciamentoEsitiSelezionePersonalizzataMax = null;
  122.             String tracciamentoEsitiSelezionePersonalizzataCors = null;
  123.            
  124.             String tracciamentoEsitiSelezionePersonalizzataAll = null;
  125.             boolean selectAll = false;
  126.            
  127.             String transazioniTempiElaborazione = null;
  128.             String transazioniToken = null;
  129.            
  130.             String fileTraceStato = null;
  131.             String fileTraceConfigFile = null;
  132.             String fileTraceClient = null;
  133.             String fileTraceClientHdr = null;
  134.             String fileTraceClientBody = null;
  135.             String fileTraceServer = null;
  136.             String fileTraceServerHdr = null;
  137.             String fileTraceServerBody = null;
  138.            
  139.             String dumpApplicativo = null;
  140.             String dumpPD = null;
  141.             String dumpPA = null;
  142.            
  143.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  144.                
  145.                 severita = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_LIVELLO_SEVERITA);
  146.                 severitaLog4j = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_LIVELLO_SEVERITA_LOG4J);
  147.                 registrazioneTracce = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_TRACCE);
  148.                
  149.             }
  150.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  151.                     ||
  152.                     ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  153.                
  154.                 dbStato = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO);
  155.                 dbStatoReqIn = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_REQ_IN);
  156.                 dbStatoReqOut = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_REQ_OUT);
  157.                 dbStatoResOut = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_RES_OUT);
  158.                 dbStatoResOutComplete = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_RES_OUT_COMPLETE);
  159.                 String dbFiltroEsitiParam = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_FILTRA_ESITI);
  160.                 dbFiltroEsiti = ServletUtils.isCheckBoxEnabled(dbFiltroEsitiParam);
  161.                
  162.                 fsStato = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO);
  163.                 fsStatoReqIn = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_REQ_IN);
  164.                 fsStatoReqOut = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_REQ_OUT);
  165.                 fsStatoResOut = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_RES_OUT);
  166.                 fsStatoResOutComplete = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_RES_OUT_COMPLETE);
  167.                 String fsFiltroEsitiParam = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_FILTRA_ESITI);
  168.                 fsFiltroEsiti = ServletUtils.isCheckBoxEnabled(fsFiltroEsitiParam);
  169.                
  170.                 if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)) {
  171.                     oldConfigurazioneTracciamento = oldConfigurazione.getTracciamento().getPortaDelegata();
  172.                 }
  173.                 else {
  174.                     oldConfigurazioneTracciamento = oldConfigurazione.getTracciamento().getPortaApplicativa();
  175.                 }
  176.                 nuovaConfigurazioneEsiti = confHelper.readConfigurazioneRegistrazioneEsitiFromHttpParameters(oldConfigurazioneTracciamento!=null ? oldConfigurazioneTracciamento.getEsiti() : null, first);
  177.                
  178.                 tracciamentoEsitiSelezionePersonalizzataOk = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_OK);
  179.                 tracciamentoEsitiSelezionePersonalizzataFault = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_FAULT);
  180.                 tracciamentoEsitiSelezionePersonalizzataFallite = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_FALLITE);
  181.                 tracciamentoEsitiSelezionePersonalizzataScartate = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_SCARTATE);
  182.                 tracciamentoEsitiSelezionePersonalizzataRateLimiting = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_RATE_LIMITING);
  183.                 tracciamentoEsitiSelezionePersonalizzataMax = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_MAX_REQUEST);
  184.                 tracciamentoEsitiSelezionePersonalizzataCors = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_CORS);
  185.                
  186.                 tracciamentoEsitiSelezionePersonalizzataAll = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_ESITI_ALL);
  187.                 selectAll = ServletUtils.isCheckBoxEnabled(tracciamentoEsitiSelezionePersonalizzataAll);
  188.                
  189.                 transazioniTempiElaborazione = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_TRANSAZIONE_TEMPI);
  190.                 transazioniToken = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_REGISTRAZIONE_TRANSAZIONE_TOKEN);
  191.                
  192.                 fileTraceStato = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_STATO);
  193.                 fileTraceConfigFile = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_CONFIGURAZIONE);
  194.                 fileTraceClient = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_CLIENT);
  195.                 fileTraceClientHdr = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_CLIENT_HEADER);
  196.                 fileTraceClientBody = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_CLIENT_PAYLOAD);
  197.                 fileTraceServer = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_SERVER);
  198.                 fileTraceServerHdr = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_SERVER_HEADER);
  199.                 fileTraceServerBody = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_FILETRACE_SERVER_PAYLOAD);
  200.             }
  201.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  202.                
  203.                 dumpApplicativo = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_DUMP_APPLICATIVO);
  204.                 dumpPD = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_DUMP_CONNETTORE_PD);
  205.                 dumpPA = confHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_DUMP_CONNETTORE_PA);
  206.             }
  207.            
  208.                    
  209.            
  210.            
  211.             // setto la barra del titolo
  212.             List<Parameter> lstParam = new ArrayList<>();
  213.             Parameter pMenu = null;
  214.             String servlet = null;
  215.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  216.                         ||
  217.                         ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  218.                 pMenu = new Parameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE, ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO);
  219.                 servlet = ConfigurazioneCostanti.SERVLET_NAME_CONFIGURAZIONE_TRACCIAMENTO_TRANSAZIONI;
  220.             }
  221.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  222.                 lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_REGISTRAZIONE_MESSAGGI, null));
  223.             }
  224.             else {
  225.                 if(pMenu!=null) {
  226.                     lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_TRACCIAMENTO, servlet, pMenu));
  227.                 }
  228.                 else {
  229.                     lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_TRACCIAMENTO, null));
  230.                 }
  231.             }
  232.            
  233.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)){
  234.                 lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_TRACCIAMENTO_CONFIGURAZIONE_EROGAZIONI, null));
  235.             }
  236.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)){
  237.                 lstParam.add(new Parameter(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_TRACCIAMENTO_CONFIGURAZIONE_FRUIZIONI, null));
  238.             }
  239.            
  240.            
  241.             // edit in progress
  242.             if (confHelper.isEditModeInProgress()) {
  243.                 ServletUtils.setPageDataTitle(pd, lstParam);
  244.                
  245.                 if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  246.                     if(severita == null) {
  247.                         if(oldConfigurazione.getMessaggiDiagnostici().getSeverita()!=null)
  248.                             severita = oldConfigurazione.getMessaggiDiagnostici().getSeverita().toString();
  249.                         if(oldConfigurazione.getMessaggiDiagnostici().getSeveritaLog4j()!=null)
  250.                             severitaLog4j = oldConfigurazione.getMessaggiDiagnostici().getSeveritaLog4j().toString();
  251.                         if(oldConfigurazione.getTracciamento().getStato()!=null)
  252.                             registrazioneTracce = oldConfigurazione.getTracciamento().getStato().toString();
  253.                     }
  254.                 }
  255.                 else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  256.                         ||
  257.                         ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  258.                    
  259.                     boolean initDB = false;
  260.                     boolean initFileTrace = false;
  261.                     if(first && oldConfigurazioneTracciamento!=null) {
  262.                                                    
  263.                         if(oldConfigurazioneTracciamento.getDatabase()!=null) {
  264.                             dbStato = (oldConfigurazioneTracciamento.getDatabase().getStato()!=null) ? oldConfigurazioneTracciamento.getDatabase().getStato().getValue() :
  265.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO;
  266.                             dbStatoReqIn = (oldConfigurazioneTracciamento.getDatabase().getRequestIn()!=null) ? oldConfigurazioneTracciamento.getDatabase().getRequestIn().getValue() :
  267.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_REQ_IN;
  268.                             dbStatoReqOut = (oldConfigurazioneTracciamento.getDatabase().getRequestOut()!=null) ? oldConfigurazioneTracciamento.getDatabase().getRequestOut().getValue() :
  269.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_REQ_OUT;
  270.                             dbStatoResOut = (oldConfigurazioneTracciamento.getDatabase().getResponseOut()!=null) ? oldConfigurazioneTracciamento.getDatabase().getResponseOut().getValue() :
  271.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_RES_OUT;
  272.                             dbStatoResOutComplete = (oldConfigurazioneTracciamento.getDatabase().getResponseOutComplete()!=null) ? oldConfigurazioneTracciamento.getDatabase().getResponseOutComplete().getValue() :
  273.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_RES_OUT_COMPLETE;
  274.                             dbFiltroEsiti = (oldConfigurazioneTracciamento.getDatabase().getFiltroEsiti()!=null) ? StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getDatabase().getFiltroEsiti()) :
  275.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_FILTRA_ESITI;
  276.                             initDB=true;
  277.                         }
  278.                        
  279.                         if(oldConfigurazioneTracciamento.getFiletrace()!=null) {
  280.                             fsStato = (oldConfigurazioneTracciamento.getFiletrace().getStato()!=null) ? oldConfigurazioneTracciamento.getFiletrace().getStato().getValue() :
  281.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO;
  282.                             fsStatoReqIn = (oldConfigurazioneTracciamento.getFiletrace().getRequestIn()!=null) ? oldConfigurazioneTracciamento.getFiletrace().getRequestIn().getValue() :
  283.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_REQ_IN;
  284.                             fsStatoReqOut = (oldConfigurazioneTracciamento.getFiletrace().getRequestOut()!=null) ? oldConfigurazioneTracciamento.getFiletrace().getRequestOut().getValue() :
  285.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_REQ_OUT;
  286.                             fsStatoResOut = (oldConfigurazioneTracciamento.getFiletrace().getResponseOut()!=null) ? oldConfigurazioneTracciamento.getFiletrace().getResponseOut().getValue() :
  287.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_RES_OUT;
  288.                             fsStatoResOutComplete = (oldConfigurazioneTracciamento.getFiletrace().getResponseOutComplete()!=null) ? oldConfigurazioneTracciamento.getFiletrace().getResponseOutComplete().getValue() :
  289.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_RES_OUT_COMPLETE;
  290.                             fsFiltroEsiti = (oldConfigurazioneTracciamento.getFiletrace().getFiltroEsiti()!=null) ? StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletrace().getFiltroEsiti()) :
  291.                                 ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_FILTRA_ESITI;
  292.                             initFileTrace=true;
  293.                         }
  294.                        
  295.                     }
  296.                     if(first && !initDB) {
  297.                         dbStato = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO;
  298.                         dbStatoReqIn = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_REQ_IN;
  299.                         dbStatoReqOut = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_REQ_OUT;
  300.                         dbStatoResOut = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_RES_OUT;
  301.                         dbStatoResOutComplete = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_STATO_RES_OUT_COMPLETE;
  302.                         dbFiltroEsiti = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_DATABASE_FILTRA_ESITI;
  303.                     }
  304.                     if(first && !initFileTrace) {
  305.                         fsStato = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO;
  306.                         fsStatoReqIn = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_REQ_IN;
  307.                         fsStatoReqOut = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_REQ_OUT;
  308.                         fsStatoResOut = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_RES_OUT;
  309.                         fsStatoResOutComplete = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_STATO_RES_OUT_COMPLETE;
  310.                         fsFiltroEsiti = ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_AVANZATA_TRACCIAMENTO_FILETRACE_FILTRA_ESITI;
  311.                     }
  312.                    
  313.                     if(tracciamentoEsitiSelezionePersonalizzataOk==null) {
  314.                        
  315.                         List<String> attivi = new ArrayList<>();
  316.                         if(nuovaConfigurazioneEsiti!=null){
  317.                             String [] tmp = nuovaConfigurazioneEsiti.split(",");
  318.                             if(tmp!=null){
  319.                                 for (int i = 0; i < tmp.length; i++) {
  320.                                     attivi.add(tmp[i].trim());
  321.                                 }
  322.                             }
  323.                         }
  324.                        
  325.                         EsitiProperties esiti = EsitiConfigUtils.getEsitiPropertiesForConfiguration(ControlStationCore.getLog());
  326.                        
  327.                         boolean isOkTotale = false;
  328.                         List<Integer> listOk = confHelper.getListaEsitiOkSenzaCors(esiti);
  329.                         if(confHelper.isCompleteEnabled(attivi, listOk)) {
  330.                             tracciamentoEsitiSelezionePersonalizzataOk = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  331.                             isOkTotale = true;
  332.                         }
  333.                         else if(confHelper.isCompleteDisabled(attivi, listOk)) {
  334.                             tracciamentoEsitiSelezionePersonalizzataOk = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  335.                         }
  336.                         else {
  337.                             tracciamentoEsitiSelezionePersonalizzataOk = ConfigurazioneCostanti.TRACCIAMENTO_ESITI_PERSONALIZZATO;
  338.                         }
  339.                        
  340.                         boolean isFaultTotale = false;
  341.                         List<Integer> listFault = esiti.getEsitiCodeFaultApplicativo();
  342.                         if(confHelper.isCompleteEnabled(attivi, listFault)) {
  343.                             tracciamentoEsitiSelezionePersonalizzataFault = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  344.                             isFaultTotale = true;
  345.                         }
  346.                         else if(confHelper.isCompleteDisabled(attivi, listFault)) {
  347.                             tracciamentoEsitiSelezionePersonalizzataFault = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  348.                         }
  349.                         else {
  350.                             tracciamentoEsitiSelezionePersonalizzataFault = ConfigurazioneCostanti.TRACCIAMENTO_ESITI_PERSONALIZZATO;
  351.                         }
  352.                        
  353.                         boolean isFalliteSenzaMaxThreadsScartateTotale = false;
  354.                         List<Integer> listFalliteSenzaMaxThreadsScartate = confHelper.getListaEsitiFalliteSenza_RateLimiting_MaxThreads_Scartate(esiti);
  355.                         if(confHelper.isCompleteEnabled(attivi, listFalliteSenzaMaxThreadsScartate)) {
  356.                             tracciamentoEsitiSelezionePersonalizzataFallite = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  357.                             isFalliteSenzaMaxThreadsScartateTotale = true;
  358.                         }
  359.                         else if(confHelper.isCompleteDisabled(attivi, listFalliteSenzaMaxThreadsScartate)) {
  360.                             tracciamentoEsitiSelezionePersonalizzataFallite = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  361.                         }
  362.                         else {
  363.                             tracciamentoEsitiSelezionePersonalizzataFallite = ConfigurazioneCostanti.TRACCIAMENTO_ESITI_PERSONALIZZATO;
  364.                         }
  365.                        
  366.                         boolean isScartateTotale = false;
  367.                         List<Integer> listScartate = esiti.getEsitiCodeRichiestaScartate();
  368.                         if(confHelper.isCompleteEnabled(attivi, listScartate)) {
  369.                             tracciamentoEsitiSelezionePersonalizzataScartate = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  370.                             isScartateTotale = true;
  371.                         }
  372.                         else if(confHelper.isCompleteDisabled(attivi, listScartate)) {
  373.                             tracciamentoEsitiSelezionePersonalizzataScartate = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  374.                         }
  375.                         else {
  376.                             tracciamentoEsitiSelezionePersonalizzataScartate = ConfigurazioneCostanti.TRACCIAMENTO_ESITI_PERSONALIZZATO;
  377.                         }
  378.                        
  379.                         boolean isRateLimiting = false;
  380.                         if(attivi.contains((esiti.convertoToCode(EsitoTransazioneName.CONTROLLO_TRAFFICO_POLICY_VIOLATA)+""))) {
  381.                             tracciamentoEsitiSelezionePersonalizzataRateLimiting = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  382.                             isRateLimiting = true;
  383.                         }  
  384.                         else {
  385.                             tracciamentoEsitiSelezionePersonalizzataRateLimiting = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  386.                         }
  387.                        
  388.                         boolean isMaxThreads = false;
  389.                         if(attivi.contains((esiti.convertoToCode(EsitoTransazioneName.CONTROLLO_TRAFFICO_MAX_THREADS)+""))) {
  390.                             tracciamentoEsitiSelezionePersonalizzataMax = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  391.                             isMaxThreads = true;
  392.                         }  
  393.                         else {
  394.                             tracciamentoEsitiSelezionePersonalizzataMax = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  395.                         }
  396.                        
  397.                         boolean isCorsTotale = false;
  398.                         List<Integer> listCors = confHelper.getListaEsitiCors(esiti);
  399.                         if(confHelper.isCompleteEnabled(attivi, listCors)) {
  400.                             tracciamentoEsitiSelezionePersonalizzataCors = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  401.                             isCorsTotale = true;
  402.                         }
  403.                         else if(confHelper.isCompleteDisabled(attivi, listCors)) {
  404.                             tracciamentoEsitiSelezionePersonalizzataCors = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  405.                         }
  406.                         else {
  407.                             tracciamentoEsitiSelezionePersonalizzataCors = ConfigurazioneCostanti.TRACCIAMENTO_ESITI_PERSONALIZZATO;
  408.                         }
  409.                        
  410.                         selectAll = isOkTotale && isFaultTotale &&
  411.                                 isFalliteSenzaMaxThreadsScartateTotale && isScartateTotale &&
  412.                                 isRateLimiting && isMaxThreads && isCorsTotale;
  413.                     }
  414.                    
  415.                     if(first &&
  416.                         oldConfigurazioneTracciamento!=null && oldConfigurazioneTracciamento.getTransazioni()!=null) {
  417.                         if(oldConfigurazioneTracciamento.getTransazioni().getTempiElaborazione()!=null) {
  418.                             transazioniTempiElaborazione = oldConfigurazioneTracciamento.getTransazioni().getTempiElaborazione().toString();
  419.                         }
  420.                         if(oldConfigurazioneTracciamento.getTransazioni().getToken()!=null) {
  421.                             transazioniToken = oldConfigurazioneTracciamento.getTransazioni().getToken().toString();
  422.                         }
  423.                     }
  424.                    
  425.                     if( ConfigurazioneCostanti.PARAMETRO_FILETRACE_STATO.equals(confHelper.getPostBackElementName())) {
  426.                         if(fileTraceClient==null || StringUtils.isEmpty(fileTraceClient)) {
  427.                             fileTraceClient = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  428.                         }
  429.                         if(fileTraceClientHdr==null || StringUtils.isEmpty(fileTraceClientHdr)) {
  430.                             fileTraceClientHdr = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  431.                         }
  432.                         if(fileTraceClientBody==null || StringUtils.isEmpty(fileTraceClientBody)) {
  433.                             fileTraceClientBody = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  434.                         }
  435.                         if(fileTraceServer==null || StringUtils.isEmpty(fileTraceServer)) {
  436.                             fileTraceServer = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  437.                         }
  438.                         if(fileTraceServerHdr==null || StringUtils.isEmpty(fileTraceServerHdr)) {
  439.                             fileTraceServerHdr = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  440.                         }
  441.                         if(fileTraceServerBody==null || StringUtils.isEmpty(fileTraceServerBody)) {
  442.                             fileTraceServerBody = ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO;
  443.                         }
  444.                     }
  445.                     else if( first &&
  446.                             oldConfigurazioneTracciamento!=null) {
  447.                         if(oldConfigurazioneTracciamento.getFiletraceConfig()!=null) {
  448.                             fileTraceStato = CostantiControlStation.VALUE_PARAMETRO_DUMP_STATO_RIDEFINITO;
  449.                             fileTraceConfigFile = oldConfigurazioneTracciamento.getFiletraceConfig().getConfig();
  450.                             if(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpIn()!=null) {
  451.                                 fileTraceClient = StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpIn().getStato()) ?
  452.                                         ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO : ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  453.                                 fileTraceClientHdr = StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpIn().getHeader()) ?
  454.                                         ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO : ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  455.                                 fileTraceClientBody = StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpIn().getPayload()) ?
  456.                                         ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO : ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  457.                             }
  458.                             else {
  459.                                 fileTraceClient = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  460.                             }
  461.                             if(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpOut()!=null) {
  462.                                 fileTraceServer = StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpOut().getStato()) ?
  463.                                         ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO : ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  464.                                 fileTraceServerHdr = StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpOut().getHeader()) ?
  465.                                         ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO : ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  466.                                 fileTraceServerBody = StatoFunzionalita.ABILITATO.equals(oldConfigurazioneTracciamento.getFiletraceConfig().getDumpOut().getPayload()) ?
  467.                                         ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO : ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  468.                             }
  469.                             else {
  470.                                 fileTraceServer = ConfigurazioneCostanti.DEFAULT_VALUE_DISABILITATO;
  471.                             }
  472.                         }
  473.                         else {
  474.                             fileTraceStato = CostantiControlStation.VALUE_PARAMETRO_DUMP_STATO_DEFAULT;
  475.                         }
  476.                     }
  477.                 }
  478.                 else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  479.                     if(first &&
  480.                         oldConfigurazione.getDump().getStato()!=null) {
  481.                         dumpApplicativo = oldConfigurazione.getDump().getStato().toString();
  482.                     }
  483.                     if(first) {
  484.                         if(oldConfigurazione.getDump().getDumpBinarioPortaDelegata()!=null)
  485.                             dumpPD = oldConfigurazione.getDump().getDumpBinarioPortaDelegata().toString();
  486.                         if(oldConfigurazione.getDump().getDumpBinarioPortaApplicativa()!=null)
  487.                             dumpPA = oldConfigurazione.getDump().getDumpBinarioPortaApplicativa().toString();
  488.                     }
  489.                 }
  490.                

  491.                
  492.                
  493.                
  494.                 // preparo i campi
  495.                 List<DataElement> dati = new ArrayList<>();
  496.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  497.                
  498.                 // Set First is false
  499.                 confHelper.addToDatiFirstTimeDisabled(dati,ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_FIRST_TIME);
  500.                 // Set Tipo Operazione
  501.                 confHelper.addToDatiHiddenParameter(dati, ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE, tipoConfigurazione);
  502.                
  503.                 if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  504.                    
  505.                     confHelper.addConfigurazioneTracciamentoToDati(dati);
  506.                    
  507.                     confHelper.addMessaggiDiagnosticiToDati(severita, severitaLog4j, oldConfigurazione, dati, contaListe);

  508.                     confHelper.addTracciamentoToDati(registrazioneTracce, oldConfigurazione, dati, contaListe);
  509.                    
  510.                 }
  511.                 else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  512.                         ||
  513.                         ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  514.                    
  515.                     confHelper.addToDatiConfigurazioneAvanzataTracciamento(dati, tipoOperazione,
  516.                             dbStato,
  517.                             dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  518.                             dbFiltroEsiti,
  519.                             fsStato,
  520.                             fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  521.                             fsFiltroEsiti,
  522.                             false);
  523.                    
  524.                     TracciamentoConfigurazione database = confCore.buildTracciamentoConfigurazioneDatabase(dbStato,
  525.                             dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  526.                             dbFiltroEsiti);
  527.                     TracciamentoConfigurazione filetrace = confCore.buildTracciamentoConfigurazioneFiletrace(fsStato,
  528.                             fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  529.                             fsFiltroEsiti);
  530.                     TracciamentoCompatibilitaFiltroEsiti tracciamentoCompatibilitaFiltroEsiti = new TracciamentoCompatibilitaFiltroEsiti(database, filetrace);
  531.                    
  532.                     confHelper.addToDatiRegistrazioneEsiti(dati, tipoOperazione, nuovaConfigurazioneEsiti,
  533.                             selectAll,
  534.                             tracciamentoEsitiSelezionePersonalizzataOk, tracciamentoEsitiSelezionePersonalizzataFault,
  535.                             tracciamentoEsitiSelezionePersonalizzataFallite, tracciamentoEsitiSelezionePersonalizzataScartate,  
  536.                             tracciamentoEsitiSelezionePersonalizzataRateLimiting, tracciamentoEsitiSelezionePersonalizzataMax, tracciamentoEsitiSelezionePersonalizzataCors,
  537.                             tracciamentoCompatibilitaFiltroEsiti);
  538.                    
  539.                     confHelper.addToDatiRegistrazioneTransazione(dati, tipoOperazione,
  540.                             transazioniTempiElaborazione, transazioniToken);
  541.                    
  542.                     confHelper.addToDatiRegistrazioneConfigurazioneFileTrace(dati,
  543.                             fileTraceStato, fileTraceConfigFile,
  544.                             fileTraceClient, fileTraceClientHdr, fileTraceClientBody,
  545.                             fileTraceServer, fileTraceServerHdr, fileTraceServerBody,
  546.                             tracciamentoCompatibilitaFiltroEsiti);
  547.                    
  548.                 }
  549.                 else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  550.                    
  551.                     confHelper.addRegistrazioneMessaggiToDati(dumpApplicativo, dumpPD, dumpPA, oldConfigurazione, dati, contaListe);
  552.                
  553.                 }
  554.                
  555.                 pd.setDati(dati);

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

  557.                 return ServletUtils.getStrutsForwardEditModeInProgress(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_TRACCIAMENTO_TRANSAZIONI, ForwardParams.OTHER(""));
  558.             }
  559.            
  560.             // Controlli sui campi immessi
  561.             boolean isOk = confHelper.checkConfigurazioneTracciamento(tipoOperazione, nuovaConfigurazioneEsiti, tipoConfigurazione);
  562.             if (!isOk) {
  563.                
  564.                 ServletUtils.setPageDataTitle(pd, lstParam);
  565.                
  566.                 // preparo i campi
  567.                 List<DataElement> dati = new ArrayList<>();
  568.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  569.                
  570.                 // Set First is false
  571.                 confHelper.addToDatiFirstTimeDisabled(dati,ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_FIRST_TIME);
  572.                 // Set Tipo Operazione
  573.                 confHelper.addToDatiHiddenParameter(dati, ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE, tipoConfigurazione);
  574.                
  575.                 if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  576.                    
  577.                     confHelper.addConfigurazioneTracciamentoToDati(dati);
  578.                    
  579.                     confHelper.addMessaggiDiagnosticiToDati(severita, severitaLog4j, oldConfigurazione, dati, contaListe);

  580.                     confHelper.addTracciamentoToDati(registrazioneTracce, oldConfigurazione, dati, contaListe);
  581.                    
  582.                 }
  583.                 else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  584.                         ||
  585.                         ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  586.                    
  587.                     confHelper.addToDatiConfigurazioneAvanzataTracciamento(dati, tipoOperazione,
  588.                             dbStato,
  589.                             dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  590.                             dbFiltroEsiti,
  591.                             fsStato,
  592.                             fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  593.                             fsFiltroEsiti,
  594.                             false);
  595.                    
  596.                     TracciamentoConfigurazione database = confCore.buildTracciamentoConfigurazioneDatabase(dbStato,
  597.                             dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  598.                             dbFiltroEsiti);
  599.                     TracciamentoConfigurazione filetrace = confCore.buildTracciamentoConfigurazioneFiletrace(fsStato,
  600.                             fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  601.                             fsFiltroEsiti);
  602.                     TracciamentoCompatibilitaFiltroEsiti tracciamentoCompatibilitaFiltroEsiti = new TracciamentoCompatibilitaFiltroEsiti(database, filetrace);
  603.                    
  604.                     confHelper.addToDatiRegistrazioneEsiti(dati, tipoOperazione, nuovaConfigurazioneEsiti,
  605.                             selectAll,
  606.                             tracciamentoEsitiSelezionePersonalizzataOk, tracciamentoEsitiSelezionePersonalizzataFault,
  607.                             tracciamentoEsitiSelezionePersonalizzataFallite, tracciamentoEsitiSelezionePersonalizzataScartate,  
  608.                             tracciamentoEsitiSelezionePersonalizzataRateLimiting, tracciamentoEsitiSelezionePersonalizzataMax, tracciamentoEsitiSelezionePersonalizzataCors,
  609.                             tracciamentoCompatibilitaFiltroEsiti);
  610.                    
  611.                     confHelper.addToDatiRegistrazioneTransazione(dati, tipoOperazione,
  612.                             transazioniTempiElaborazione, transazioniToken);
  613.                    
  614.                     confHelper.addToDatiRegistrazioneConfigurazioneFileTrace(dati,
  615.                             fileTraceStato, fileTraceConfigFile,
  616.                             fileTraceClient, fileTraceClientHdr, fileTraceClientBody,
  617.                             fileTraceServer, fileTraceServerHdr, fileTraceServerBody,
  618.                             tracciamentoCompatibilitaFiltroEsiti);
  619.                            
  620.                 }
  621.                 else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  622.                    
  623.                     confHelper.addRegistrazioneMessaggiToDati(dumpApplicativo, dumpPD, dumpPA, oldConfigurazione, dati, contaListe);
  624.                
  625.                 }
  626.                
  627.                
  628.                 pd.setDati(dati);

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

  630.                 return ServletUtils.getStrutsForwardEditModeCheckError(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_TRACCIAMENTO_TRANSAZIONI, ForwardParams.OTHER(""));
  631.             }
  632.            
  633.             Configurazione newConfigurazione = confCore.getConfigurazioneGenerale();
  634.            
  635.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  636.                
  637.                 if (newConfigurazione.getMessaggiDiagnostici() != null) {
  638.                     newConfigurazione.getMessaggiDiagnostici().setSeverita(Severita.toEnumConstant(severita));
  639.                     newConfigurazione.getMessaggiDiagnostici().setSeveritaLog4j(Severita.toEnumConstant(severitaLog4j));
  640.                 } else {
  641.                     MessaggiDiagnostici md = new MessaggiDiagnostici();
  642.                     md.setSeverita(Severita.toEnumConstant(severita));
  643.                     md.setSeveritaLog4j(Severita.toEnumConstant(severitaLog4j));
  644.                     newConfigurazione.setMessaggiDiagnostici(md);
  645.                 }
  646.                
  647.                 if (newConfigurazione.getTracciamento() != null) {
  648.                     newConfigurazione.getTracciamento().setStato(StatoFunzionalita.toEnumConstant(registrazioneTracce));
  649.                 } else {
  650.                     Tracciamento t = new Tracciamento();
  651.                     t.setStato(StatoFunzionalita.toEnumConstant(registrazioneTracce));
  652.                     newConfigurazione.setTracciamento(t);
  653.                 }
  654.                
  655.             }
  656.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  657.                     ||
  658.                     ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  659.                
  660.                 ConfigurazioneTracciamentoPorta porta = null;
  661.                 if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)) {
  662.                     porta = newConfigurazione.getTracciamento().getPortaDelegata();
  663.                 }
  664.                 else {
  665.                     porta = newConfigurazione.getTracciamento().getPortaApplicativa();
  666.                 }
  667.                 if(porta==null) {
  668.                     porta = new ConfigurazioneTracciamentoPorta();
  669.                     if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)) {
  670.                         newConfigurazione.getTracciamento().setPortaDelegata(porta);
  671.                     }
  672.                     else {
  673.                         newConfigurazione.getTracciamento().setPortaApplicativa(porta);
  674.                     }
  675.                 }
  676.                
  677.                 TracciamentoConfigurazione database = confCore.buildTracciamentoConfigurazioneDatabase(dbStato,
  678.                         dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  679.                         dbFiltroEsiti);
  680.                 porta.setDatabase(database);
  681.                
  682.                 TracciamentoConfigurazione filetrace = confCore.buildTracciamentoConfigurazioneFiletrace(fsStato,
  683.                         fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  684.                         fsFiltroEsiti);
  685.                 porta.setFiletrace(filetrace);
  686.                
  687.                 if(StringUtils.isEmpty(nuovaConfigurazioneEsiti)) {
  688.                     porta.setEsiti(EsitiConfigUtils.TUTTI_ESITI_DISABILITATI+"");
  689.                 }
  690.                 else {
  691.                     porta.setEsiti(nuovaConfigurazioneEsiti);
  692.                 }
  693.                
  694.                 if(porta.getTransazioni()==null) {
  695.                     porta.setTransazioni( new Transazioni() );
  696.                 }
  697.                 porta.getTransazioni().setTempiElaborazione(StatoFunzionalita.toEnumConstant(transazioniTempiElaborazione));
  698.                 porta.getTransazioni().setToken(StatoFunzionalita.toEnumConstant(transazioniToken));
  699.                
  700.                 if(CostantiControlStation.VALUE_PARAMETRO_DUMP_STATO_RIDEFINITO.equals(fileTraceStato)) {
  701.                     porta.setFiletraceConfig(new TracciamentoConfigurazioneFiletrace());
  702.                     porta.getFiletraceConfig().setConfig(fileTraceConfigFile);
  703.                    
  704.                     porta.getFiletraceConfig().setDumpIn(new TracciamentoConfigurazioneFiletraceConnector());          
  705.                     porta.getFiletraceConfig().getDumpIn().setStato(ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO.equals(fileTraceClient) ?
  706.                             StatoFunzionalita.ABILITATO : StatoFunzionalita.DISABILITATO);
  707.                     porta.getFiletraceConfig().getDumpIn().setHeader(ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO.equals(fileTraceClientHdr) ?
  708.                             StatoFunzionalita.ABILITATO : StatoFunzionalita.DISABILITATO);
  709.                     porta.getFiletraceConfig().getDumpIn().setPayload(ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO.equals(fileTraceClientBody) ?
  710.                             StatoFunzionalita.ABILITATO : StatoFunzionalita.DISABILITATO);
  711.                    
  712.                     porta.getFiletraceConfig().setDumpOut(new TracciamentoConfigurazioneFiletraceConnector());          
  713.                     porta.getFiletraceConfig().getDumpOut().setStato(ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO.equals(fileTraceServer) ?
  714.                             StatoFunzionalita.ABILITATO : StatoFunzionalita.DISABILITATO);
  715.                     porta.getFiletraceConfig().getDumpOut().setHeader(ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO.equals(fileTraceServerHdr) ?
  716.                             StatoFunzionalita.ABILITATO : StatoFunzionalita.DISABILITATO);
  717.                     porta.getFiletraceConfig().getDumpOut().setPayload(ConfigurazioneCostanti.DEFAULT_VALUE_ABILITATO.equals(fileTraceServerBody) ?
  718.                             StatoFunzionalita.ABILITATO : StatoFunzionalita.DISABILITATO);
  719.                 }
  720.                 else {
  721.                     porta.setFiletraceConfig(null);
  722.                 }
  723.                
  724.             }
  725.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  726.                
  727.                 if (newConfigurazione.getDump() != null) {
  728.                     newConfigurazione.getDump().setStato(StatoFunzionalita.toEnumConstant(dumpApplicativo));
  729.                     newConfigurazione.getDump().setDumpBinarioPortaDelegata(StatoFunzionalita.toEnumConstant(dumpPD));
  730.                     newConfigurazione.getDump().setDumpBinarioPortaApplicativa(StatoFunzionalita.toEnumConstant(dumpPA));
  731.                 } else {
  732.                     Dump d = new Dump();
  733.                     d.setStato(StatoFunzionalita.toEnumConstant(dumpApplicativo));
  734.                     d.setDumpBinarioPortaDelegata(StatoFunzionalita.toEnumConstant(dumpPD));
  735.                     d.setDumpBinarioPortaApplicativa(StatoFunzionalita.toEnumConstant(dumpPA));
  736.                     newConfigurazione.setDump(d);
  737.                 }
  738.                
  739.                 if(StatoFunzionalita.DISABILITATO.equals(newConfigurazione.getDump().getStato())) {
  740.                     newConfigurazione.getDump().setConfigurazionePortaApplicativa(null);
  741.                     newConfigurazione.getDump().setConfigurazionePortaDelegata(null);
  742.                 }
  743.                
  744.             }
  745.            
  746.            
  747.             confCore.performUpdateOperation(userLogin, confHelper.smista(), newConfigurazione);

  748.             // Preparo la lista
  749.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  750.                 pd.setMessage(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_DUMP_CONFIGURAZIONE_CON_SUCCESSO, Costanti.MESSAGE_TYPE_INFO);
  751.             }
  752.             else {
  753.                 pd.setMessage(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_TRACCIAMENTO_ESITI_CON_SUCCESSO, Costanti.MESSAGE_TYPE_INFO);
  754.             }
  755.            
  756.             ServletUtils.setPageDataTitle(pd, lstParam);
  757.            
  758.             // preparo i campi
  759.             List<DataElement> dati = new ArrayList<>();
  760.            
  761.             // ricarico la configurazione
  762.             newConfigurazione = confCore.getConfigurazioneGenerale();
  763.            
  764.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  765.                
  766.                 if(newConfigurazione.getMessaggiDiagnostici().getSeverita()!=null)
  767.                     severita = newConfigurazione.getMessaggiDiagnostici().getSeverita().toString();
  768.                 if(newConfigurazione.getMessaggiDiagnostici().getSeveritaLog4j()!=null)
  769.                     severitaLog4j = newConfigurazione.getMessaggiDiagnostici().getSeveritaLog4j().toString();
  770.                 if(newConfigurazione.getTracciamento().getStato()!=null)
  771.                     registrazioneTracce = newConfigurazione.getTracciamento().getStato().toString();
  772.                
  773.             }
  774.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  775.                     ||
  776.                     ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  777.                
  778.                 if(newConfigurazione.getTransazioni()!=null) {
  779.                     if(newConfigurazione.getTransazioni().getTempiElaborazione()!=null) {
  780.                         transazioniTempiElaborazione = newConfigurazione.getTransazioni().getTempiElaborazione().toString();
  781.                     }
  782.                     if(newConfigurazione.getTransazioni().getToken()!=null) {
  783.                         transazioniToken = newConfigurazione.getTransazioni().getToken().toString();
  784.                     }
  785.                 }
  786.                
  787.             }
  788.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  789.                
  790.                 if(newConfigurazione.getDump().getStato()!=null)
  791.                     dumpApplicativo = newConfigurazione.getDump().getStato().toString();
  792.                 if(newConfigurazione.getDump().getDumpBinarioPortaDelegata()!=null)
  793.                     dumpPD = newConfigurazione.getDump().getDumpBinarioPortaDelegata().toString();
  794.                 if(newConfigurazione.getDump().getDumpBinarioPortaApplicativa()!=null)
  795.                     dumpPA = newConfigurazione.getDump().getDumpBinarioPortaApplicativa().toString();
  796.                
  797.             }

  798.            
  799.             // Set First is false
  800.             confHelper.addToDatiFirstTimeDisabled(dati,ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_FIRST_TIME);
  801.             // Set Tipo Operazione
  802.             confHelper.addToDatiHiddenParameter(dati, ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE, tipoConfigurazione);
  803.            
  804.             if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO.equals(tipoConfigurazione)) {
  805.                
  806.                 confHelper.addConfigurazioneTracciamentoToDati(dati);
  807.                
  808.                 confHelper.addMessaggiDiagnosticiToDati(severita, severitaLog4j, newConfigurazione, dati, contaListe);

  809.                 confHelper.addTracciamentoToDati(registrazioneTracce, newConfigurazione, dati, contaListe);
  810.                
  811.             }
  812.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PD.equals(tipoConfigurazione)
  813.                     ||
  814.                     ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_TRACCIAMENTO_PA.equals(tipoConfigurazione)) {
  815.            
  816.                 confHelper.addToDatiConfigurazioneAvanzataTracciamento(dati, tipoOperazione,
  817.                         dbStato,
  818.                         dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  819.                         dbFiltroEsiti,
  820.                         fsStato,
  821.                         fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  822.                         fsFiltroEsiti,
  823.                         false);
  824.                
  825.                 TracciamentoConfigurazione database = confCore.buildTracciamentoConfigurazioneDatabase(dbStato,
  826.                         dbStatoReqIn, dbStatoReqOut, dbStatoResOut, dbStatoResOutComplete,
  827.                         dbFiltroEsiti);
  828.                 TracciamentoConfigurazione filetrace = confCore.buildTracciamentoConfigurazioneFiletrace(fsStato,
  829.                         fsStatoReqIn, fsStatoReqOut, fsStatoResOut, fsStatoResOutComplete,
  830.                         fsFiltroEsiti);
  831.                 TracciamentoCompatibilitaFiltroEsiti tracciamentoCompatibilitaFiltroEsiti = new TracciamentoCompatibilitaFiltroEsiti(database, filetrace);
  832.                
  833.                 confHelper.addToDatiRegistrazioneEsiti(dati, tipoOperazione, newConfigurazione.getTracciamento().getEsiti(),
  834.                         selectAll,
  835.                         tracciamentoEsitiSelezionePersonalizzataOk, tracciamentoEsitiSelezionePersonalizzataFault,
  836.                         tracciamentoEsitiSelezionePersonalizzataFallite, tracciamentoEsitiSelezionePersonalizzataScartate,  
  837.                         tracciamentoEsitiSelezionePersonalizzataRateLimiting, tracciamentoEsitiSelezionePersonalizzataMax, tracciamentoEsitiSelezionePersonalizzataCors,
  838.                         tracciamentoCompatibilitaFiltroEsiti);
  839.                
  840.                 confHelper.addToDatiRegistrazioneTransazione(dati, tipoOperazione,
  841.                         transazioniTempiElaborazione, transazioniToken);
  842.                
  843.                 confHelper.addToDatiRegistrazioneConfigurazioneFileTrace(dati,
  844.                         fileTraceStato, fileTraceConfigFile,
  845.                         fileTraceClient, fileTraceClientHdr, fileTraceClientBody,
  846.                         fileTraceServer, fileTraceServerHdr, fileTraceServerBody,
  847.                         tracciamentoCompatibilitaFiltroEsiti);
  848.                
  849.             }
  850.             else if(ConfigurazioneCostanti.VALORE_PARAMETRO_CONFIGURAZIONE_TIPO_OPERAZIONE_REGISTRAZIONE_MESSAGGI.equals(tipoConfigurazione)) {
  851.            
  852.                 confHelper.addRegistrazioneMessaggiToDati(dumpApplicativo, dumpPD, dumpPA, newConfigurazione, dati, contaListe);
  853.                
  854.             }
  855.            
  856.            
  857.            
  858.             pd.setDati(dati);
  859.             pd.disableEditMode();

  860.             ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
  861.            
  862.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_TRACCIAMENTO_TRANSAZIONI, ForwardParams.OTHER(""));
  863.         } catch (Exception e) {
  864.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  865.                     ConfigurazioneCostanti.OBJECT_NAME_CONFIGURAZIONE_TRACCIAMENTO_TRANSAZIONI, ForwardParams.OTHER(""));
  866.         }
  867.     }
  868. }