PorteApplicativeVerificaConnettore.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.pa;

  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.PortaApplicativa;
  32. import org.openspcoop2.core.config.PortaApplicativaServizioApplicativo;
  33. import org.openspcoop2.core.config.ServizioApplicativo;
  34. import org.openspcoop2.core.config.constants.CostantiConfigurazione;
  35. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  36. import org.openspcoop2.pdd.core.jmx.JMXUtils;
  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.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
  41. import org.openspcoop2.web.ctrlstat.servlet.aps.erogazioni.ErogazioniCostanti;
  42. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
  43. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCostanti;
  44. import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriCore;
  45. import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCore;
  46. import org.openspcoop2.web.lib.mvc.Costanti;
  47. import org.openspcoop2.web.lib.mvc.DataElement;
  48. import org.openspcoop2.web.lib.mvc.DataElementType;
  49. import org.openspcoop2.web.lib.mvc.ForwardParams;
  50. import org.openspcoop2.web.lib.mvc.GeneralData;
  51. import org.openspcoop2.web.lib.mvc.PageData;
  52. import org.openspcoop2.web.lib.mvc.Parameter;
  53. import org.openspcoop2.web.lib.mvc.ServletUtils;
  54. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  55. /***
  56.  *
  57.  * PorteApplicativeVerificaConnettore
  58.  *
  59.  * @author Giuliano Pintori (pintori@link.it)
  60.  * @author $Author$
  61.  * @version $Rev$, $Date$
  62.  */
  63. public class PorteApplicativeVerificaConnettore extends Action {

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

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

  67.         // Inizializzo PageData
  68.         PageData pd = new PageData();

  69.         GeneralHelper generalHelper = new GeneralHelper(session);

  70.         // Inizializzo GeneralData
  71.         GeneralData gd = generalHelper.initGeneralData(request);

  72.         try {

  73.             PorteApplicativeHelper porteApplicativeHelper = new PorteApplicativeHelper(request, pd, session);
  74.             Boolean vistaErogazioni = ServletUtils.getBooleanAttributeFromSession(ErogazioniCostanti.ASPS_EROGAZIONI_ATTRIBUTO_VISTA_EROGAZIONI, session, request).getValue();
  75.             // prelevo il flag che mi dice da quale pagina ho acceduto la sezione delle porte applicative
  76.             Integer parentPA = ServletUtils.getIntegerAttributeFromSession(PorteApplicativeCostanti.ATTRIBUTO_PORTE_APPLICATIVE_PARENT, session, request);
  77.             if(parentPA == null) parentPA = PorteApplicativeCostanti.ATTRIBUTO_PORTE_APPLICATIVE_PARENT_NONE;
  78.            
  79.             boolean isModalitaCompleta = porteApplicativeHelper.isModalitaCompleta();
  80.            
  81.             String id = porteApplicativeHelper.getParameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_ID);
  82.             int idInt = Integer.parseInt(id);
  83.             String idsogg = porteApplicativeHelper.getParameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_ID_SOGGETTO);
  84.             String idAsps = porteApplicativeHelper.getParameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_ID_ASPS);
  85.             if(idAsps == null)
  86.                 idAsps = "";
  87.            
  88.             String idTab = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_ID_TAB);
  89.             if(!porteApplicativeHelper.isModalitaCompleta() && StringUtils.isNotEmpty(idTab)) {
  90.                 ServletUtils.setObjectIntoSession(request, session, idTab, CostantiControlStation.PARAMETRO_ID_TAB);
  91.             }
  92.            
  93.             String idConnTab = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_ID_CONN_TAB);
  94.             if(StringUtils.isNotEmpty(idConnTab)) {
  95.                 ServletUtils.setObjectIntoSession(request, session, idConnTab, CostantiControlStation.PARAMETRO_ID_CONN_TAB);
  96.             }

  97.             // Preparo il menu
  98.             porteApplicativeHelper.makeMenu();

  99.             PorteApplicativeCore porteApplicativeCore = new PorteApplicativeCore();
  100.             ConfigurazioneCore confCore = new ConfigurazioneCore(porteApplicativeCore);
  101.             ConnettoriCore connettoriCore = new ConnettoriCore(porteApplicativeCore);
  102.             ServiziApplicativiCore saCore = new ServiziApplicativiCore(porteApplicativeCore);

  103.             String tmpIdConnettore = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_VERIFICA_CONNETTORE_ID);
  104.             long idConnettore = Long.parseLong(tmpIdConnettore);
  105.            
  106.             String tmpAccessoDaGruppi = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_VERIFICA_CONNETTORE_ACCESSO_DA_GRUPPI);
  107.             boolean accessoDaGruppi = "true".equalsIgnoreCase(tmpAccessoDaGruppi);
  108.            
  109.             String tmpConnettoreRegistro = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_VERIFICA_CONNETTORE_REGISTRO);
  110.             boolean connettoreRegistro = "true".equalsIgnoreCase(tmpConnettoreRegistro);
  111.            
  112.             boolean accessoDaListaAPS = false;
  113.             String accessoDaAPSParametro = null;
  114.             // nell'erogazione vale sempre
  115.             accessoDaAPSParametro = porteApplicativeHelper.getParameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_CONNETTORE_DA_LISTA_APS);
  116.             if(Costanti.CHECK_BOX_ENABLED_TRUE.equals(accessoDaAPSParametro)) {
  117.                 accessoDaListaAPS = true;
  118.             }
  119.            
  120.             boolean accessoDaListaConnettoriMultipli = false;
  121.             String accessoDaListaConnettoriMultipliParametro = null;
  122.             accessoDaListaConnettoriMultipliParametro = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_VERIFICA_CONNETTORE_ACCESSO_DA_LISTA_CONNETTORI_MULTIPLI);
  123.             if(Costanti.CHECK_BOX_ENABLED_TRUE.equals(accessoDaListaConnettoriMultipliParametro)) {
  124.                 accessoDaListaConnettoriMultipli = true;
  125.             }

  126.             String alias = porteApplicativeHelper.getParameter(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_SISTEMA_NODO_CLUSTER);
  127.                        
  128.             // Prendo la lista di aliases
  129.             List<String> aliases = confCore.getJmxPdDAliases();
  130.             if(aliases==null || aliases.isEmpty()){
  131.                 throw new Exception("Pagina non prevista, la sezione configurazione non permette di accedere a questa pagina, se la configurazione non e' corretta");
  132.             }
  133.            
  134.            
  135.             org.openspcoop2.core.config.Connettore connettore = null;
  136.             if(connettoreRegistro) {
  137.                 connettore = connettoriCore.getConnettoreRegistro(idConnettore).mappingIntoConnettoreConfigurazione();
  138.             }
  139.             else {
  140.                 connettore = connettoriCore.getConnettoreConfig(idConnettore);
  141.             }
  142.             String labelConnettore = porteApplicativeHelper.getLabelConnettore(connettore,false,false);
  143.            
  144.             long idSA = saCore.getIdServizioApplicativoByConnettore(idConnettore);
  145.             ServizioApplicativo sa = null;
  146.             String nomeServer = null;
  147.             if(idSA>0) {
  148.                 sa = saCore.getServizioApplicativo(idSA);
  149.                 if(CostantiConfigurazione.SERVER.equals(sa.getTipo())) {
  150.                     nomeServer = sa.getNome();
  151.                 }
  152.             }
  153.            
  154.             PortaApplicativa pa = porteApplicativeCore.getPortaApplicativa(idInt);
  155.             String idporta = pa.getNome();

  156.            
  157.             List<Parameter> lstParam = porteApplicativeHelper.getTitoloPA(parentPA, idsogg, idAsps);
  158.            
  159.             String labelPerPorta = null;
  160.             if(parentPA!=null && (parentPA.intValue() == PorteApplicativeCostanti.ATTRIBUTO_PORTE_APPLICATIVE_PARENT_CONFIGURAZIONE)) {
  161.                 if(!accessoDaGruppi) {
  162.                     lstParam.remove(lstParam.size()-1);
  163.                 }
  164.                 labelPerPorta = porteApplicativeCore.getLabelRegolaMappingErogazionePortaApplicativa(
  165.                         PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_VERIFICA_CONNETTORE_CONFIGURAZIONE_CONFIG_DI,
  166.                         PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_VERIFICA_CONNETTORE_CONFIGURAZIONE,
  167.                         pa);
  168.             }
  169.             else {
  170.                 labelPerPorta = PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_VERIFICA_CONNETTORE_CONFIGURAZIONE_CONFIG_DI+idporta;
  171.             }
  172.            
  173.             if(!accessoDaGruppi &&
  174.                 labelPerPorta.contains(CostantiControlStation.LABEL_DEL_GRUPPO)) {
  175.                 labelPerPorta = labelPerPorta.substring(0, labelPerPorta.indexOf(CostantiControlStation.LABEL_DEL_GRUPPO));
  176.             }
  177.            
  178.             if(accessoDaListaConnettoriMultipli) {
  179.                 String labelListaConnettoriMultipli = null;
  180.                 if(parentPA!=null && (parentPA.intValue() == PorteApplicativeCostanti.ATTRIBUTO_PORTE_APPLICATIVE_PARENT_CONFIGURAZIONE)) {
  181.                    
  182.                     AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(saCore);
  183.                     AccordoServizioParteSpecifica asps = apsCore.getAccordoServizioParteSpecifica(Integer.parseInt(idAsps));
  184.                    
  185.                     if(accessoDaListaAPS) {
  186.                         if(!isModalitaCompleta) {
  187.                             if(vistaErogazioni != null && vistaErogazioni.booleanValue()) {
  188.                                 labelListaConnettoriMultipli = PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI;
  189.                             } else {
  190.                                 labelListaConnettoriMultipli = PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI_DI+
  191.                                         porteApplicativeHelper.getLabelIdServizio(asps);
  192.                             }
  193.                         }
  194.                         else {
  195.                             labelListaConnettoriMultipli = PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI;
  196.                         }
  197.                     }
  198.                     else {
  199.                         labelListaConnettoriMultipli = porteApplicativeCore.getLabelRegolaMappingErogazionePortaApplicativa(
  200.                                 PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI_DI,
  201.                                 PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI,
  202.                                 pa);
  203.                     }
  204.                 }
  205.                 else {
  206.                     labelListaConnettoriMultipli = PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI_DI+pa.getNome();
  207.                 }
  208.                
  209.                 List<Parameter> listParametersConfigutazioneConnettoriMultipli = new ArrayList<>();
  210.                 Parameter pIdPorta = new Parameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_ID, id);
  211.                 Parameter pNomePorta = new Parameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_NOME, pa.getNome());
  212.                 Parameter pIdSogg = new Parameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_ID_SOGGETTO, idsogg);
  213.                 Parameter pIdAsps = new Parameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_ID_ASPS, idAsps);
  214.                 String idTabP = porteApplicativeHelper.getParameter(CostantiControlStation.PARAMETRO_ID_TAB);
  215.                 Parameter pIdTab = new Parameter(CostantiControlStation.PARAMETRO_ID_TAB, idTabP != null ? idTabP : "");
  216.                 Parameter pAccessoDaAPS = new Parameter(PorteApplicativeCostanti.PARAMETRO_PORTE_APPLICATIVE_CONNETTORE_DA_LISTA_APS, accessoDaAPSParametro != null ? accessoDaAPSParametro : "");
  217.                
  218.                 Parameter pConnettoreAccessoDaGruppi = new Parameter(CostantiControlStation.PARAMETRO_VERIFICA_CONNETTORE_ACCESSO_DA_GRUPPI, tmpAccessoDaGruppi);
  219.                 Parameter pConnettoreAccesso = new Parameter(CostantiControlStation.PARAMETRO_VERIFICA_CONNETTORE_REGISTRO, tmpConnettoreRegistro);
  220.                
  221.                 listParametersConfigutazioneConnettoriMultipli.add(pIdSogg);
  222.                 listParametersConfigutazioneConnettoriMultipli.add(pIdPorta);
  223.                 listParametersConfigutazioneConnettoriMultipli.add(pNomePorta);
  224.                 listParametersConfigutazioneConnettoriMultipli.add(pIdAsps);
  225.                 listParametersConfigutazioneConnettoriMultipli.add(pIdTab);
  226.                 listParametersConfigutazioneConnettoriMultipli.add(pAccessoDaAPS);
  227.                 listParametersConfigutazioneConnettoriMultipli.add(pConnettoreAccessoDaGruppi);
  228.                 listParametersConfigutazioneConnettoriMultipli.add(pConnettoreAccesso);
  229.                
  230.                 lstParam.add(new Parameter(labelListaConnettoriMultipli,  PorteApplicativeCostanti.SERVLET_NAME_PORTE_APPLICATIVE_CONNETTORI_MULTIPLI_LIST, listParametersConfigutazioneConnettoriMultipli.toArray(new Parameter[1])));
  231.                
  232.                 PortaApplicativaServizioApplicativo paSA = null;
  233.                 for (PortaApplicativaServizioApplicativo paSATmp : pa.getServizioApplicativoList()) {
  234.                     if(paSATmp.getNome().equals(sa.getNome())) {
  235.                         paSA = paSATmp;
  236.                         break;
  237.                     }
  238.                 }
  239.                
  240.                 labelPerPorta = porteApplicativeHelper.getLabelNomePortaApplicativaServizioApplicativo(paSA);
  241.             }
  242.            
  243.             lstParam.add(new Parameter(labelPerPorta,  null));

  244.            
  245.            
  246.             ServletUtils.setPageDataTitle(pd, lstParam);
  247.            
  248.             // imposta menu' contestuale
  249.             porteApplicativeHelper.impostaComandiMenuContestualePA(idsogg, idAsps);
  250.            
  251.             // preparo i campi
  252.             List<DataElement> dati = new ArrayList<>();
  253.             dati.add(ServletUtils.getDataElementForEditModeFinished());

  254.             DataElement deTestConnettivita = new DataElement();
  255.             deTestConnettivita.setType(DataElementType.TITLE);
  256.             deTestConnettivita.setLabel(PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_VERIFICA_CONNETTORE_TITLE);
  257.             dati.add(deTestConnettivita);
  258.            
  259.             if(aliases.size()==1 || alias!=null) {

  260.                 porteApplicativeHelper.addDescrizioneVerificaConnettoreToDati(dati, nomeServer, labelConnettore, connettore, false,
  261.                         (CostantiControlStation.LABEL_VERIFICA_CONNETTORE_TUTTI_I_NODI.equals(alias)) ? aliases.get(0) : (alias!=null ? alias : aliases.get(0))
  262.                         );
  263.                
  264.                 if (!porteApplicativeHelper.isEditModeInProgress()) {
  265.                
  266.                     List<String> aliasesForCheck = new ArrayList<>();
  267.                     if(aliases.size()==1) {
  268.                         aliasesForCheck.add(aliases.get(0));
  269.                     }
  270.                     else if(CostantiControlStation.LABEL_VERIFICA_CONNETTORE_TUTTI_I_NODI.equals(alias)) {
  271.                         aliasesForCheck.addAll(aliases);
  272.                     }
  273.                     else {
  274.                         aliasesForCheck.add(alias);
  275.                     }
  276.                                    
  277.                     boolean rilevatoErrore = false;
  278.                     String messagePerOperazioneEffettuata = "";
  279.                     int index = 0;
  280.                     for (String aliasForVerificaConnettore : aliasesForCheck) {
  281.                        
  282.                         String risorsa = null;
  283.                         if(connettoreRegistro) {
  284.                             risorsa = confCore.getJmxPdDConfigurazioneSistemaNomeRisorsaAccessoRegistroServizi(aliasForVerificaConnettore);
  285.                         }
  286.                         else {
  287.                             risorsa = confCore.getJmxPdDConfigurazioneSistemaNomeRisorsaConfigurazionePdD(aliasForVerificaConnettore);
  288.                         }
  289.                        
  290.                         StringBuilder bfExternal = new StringBuilder();
  291.                         String descrizione = confCore.getJmxPdDDescrizione(aliasForVerificaConnettore);
  292.                         if(aliases.size()>1) {
  293.                             if(index>0) {
  294.                                 bfExternal.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
  295.                             }
  296.                             bfExternal.append(ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_SISTEMA_NODO_CLUSTER).append(" ").append(descrizione).append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
  297.                         }                      
  298.                         try{
  299.                             Boolean slowOperation = true; // altrimenti un eventuale connection timeout (es. 10 secondi) termina dopo il readTimeout associato all'invocazione dell'operazione via http check e quindi viene erroneamenteo ritornato un readTimeout
  300.                             String stato = confCore.getInvoker().invokeJMXMethod(aliasForVerificaConnettore, confCore.getJmxPdDConfigurazioneSistemaType(aliasForVerificaConnettore),
  301.                                     risorsa,
  302.                                     confCore.getJmxPdDConfigurazioneSistemaNomeMetodoCheckConnettoreById(aliasForVerificaConnettore),
  303.                                     slowOperation,
  304.                                     idConnettore+"");
  305.                             if(
  306.                                     JMXUtils.MSG_OPERAZIONE_EFFETTUATA_SUCCESSO.equals(stato)
  307.                                     ||
  308.                                     (stato!=null && stato.startsWith(JMXUtils.MSG_OPERAZIONE_EFFETTUATA_SUCCESSO_PREFIX))
  309.                                    
  310.                                 ){
  311.                                 bfExternal.append(CostantiControlStation.LABEL_CONFIGURAZIONE_VERIFICA_CONNETTORE_EFFETTUATO_CON_SUCCESSO);
  312.                             }
  313.                             else{
  314.                                 rilevatoErrore = true;
  315.                                 bfExternal.append(CostantiControlStation.LABEL_CONFIGURAZIONE_VERIFICA_CONNETTORE_FALLITA);
  316.                                 if(stato!=null) {
  317.                                     if(stato.startsWith(JMXUtils.MSG_OPERAZIONE_NON_EFFETTUATA)) {
  318.                                         bfExternal.append(stato.substring(JMXUtils.MSG_OPERAZIONE_NON_EFFETTUATA.length()));
  319.                                     }
  320.                                     else {
  321.                                         bfExternal.append(stato);
  322.                                     }
  323.                                 }
  324.                             }
  325.                         }catch(Exception e){
  326.                             ControlStationCore.logError("Errore durante la verifica del connettore (jmxResource '"+risorsa+"') (node:"+aliasForVerificaConnettore+"): "+e.getMessage(),e);
  327.                             rilevatoErrore = true;
  328.                             String stato = e.getMessage();
  329.                             bfExternal.append(CostantiControlStation.LABEL_CONFIGURAZIONE_VERIFICA_CONNETTORE_FALLITA);
  330.                             if(stato.startsWith(JMXUtils.MSG_OPERAZIONE_NON_EFFETTUATA)) {
  331.                                 bfExternal.append(stato.substring(JMXUtils.MSG_OPERAZIONE_NON_EFFETTUATA.length()));
  332.                             }
  333.                             else {
  334.                                 bfExternal.append(stato);
  335.                             }
  336.                         }
  337.    
  338.                         if(messagePerOperazioneEffettuata.length()>0){
  339.                             messagePerOperazioneEffettuata+= org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE;
  340.                         }
  341.                         messagePerOperazioneEffettuata+= bfExternal.toString();
  342.                        
  343.                         index++;
  344.                     }
  345.                     if(messagePerOperazioneEffettuata!=null){
  346.                         if(rilevatoErrore)
  347.                             pd.setMessage(messagePerOperazioneEffettuata);
  348.                         else
  349.                             pd.setMessage(messagePerOperazioneEffettuata,Costanti.MESSAGE_TYPE_INFO);
  350.                     }
  351.    
  352.                     pd.disableEditMode();
  353.                    
  354.                 }
  355.                
  356.             }
  357.             else {
  358.                 porteApplicativeHelper.addVerificaConnettoreSceltaAlias(aliases, dati);        
  359.             }
  360.            
  361.             pd.setLabelBottoneInvia(CostantiControlStation.LABEL_CONFIGURAZIONE_VERIFICA_CONNETTORE_BOTTONE);
  362.            
  363.             porteApplicativeHelper.addVerificaConnettoreHidden(dati,
  364.                     id, idsogg, idAsps, null,
  365.                     idConnettore, accessoDaGruppi, connettoreRegistro);
  366.            
  367.             dati = porteApplicativeHelper.addInformazioniGruppiAsHiddenToDati(TipoOperazione.OTHER, dati, idTab, idConnTab, accessoDaAPSParametro != null ? accessoDaAPSParametro : "",
  368.                     null, null, accessoDaListaConnettoriMultipliParametro);
  369.            
  370.             dati = porteApplicativeHelper.addHiddenFieldsToDati(TipoOperazione.OTHER,id, idsogg, null, idAsps, dati);

  371.             pd.setDati(dati);

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

  373.             return ServletUtils.getStrutsForwardEditModeInProgress(mapping, PorteApplicativeCostanti.OBJECT_NAME_PORTE_APPLICATIVE_VERIFICA_CONNETTORE, ForwardParams.OTHER(""));
  374.            
  375.         } catch (Exception e) {
  376.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  377.                     PorteApplicativeCostanti.OBJECT_NAME_PORTE_APPLICATIVE_VERIFICA_CONNETTORE, ForwardParams.OTHER(""));
  378.         }
  379.     }

  380. }