ErogazioniDetailsUtilities.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.aps.erogazioni;

  21. import java.text.MessageFormat;
  22. import java.util.ArrayList;
  23. import java.util.Collections;
  24. import java.util.List;
  25. import java.util.Map;
  26. import java.util.Properties;

  27. import org.apache.commons.lang.StringUtils;
  28. import org.openspcoop2.core.allarmi.constants.RuoloPorta;
  29. import org.openspcoop2.core.config.AttributeAuthority;
  30. import org.openspcoop2.core.config.CanaleConfigurazione;
  31. import org.openspcoop2.core.config.CanaliConfigurazione;
  32. import org.openspcoop2.core.config.ConfigurazionePortaHandler;
  33. import org.openspcoop2.core.config.CorrelazioneApplicativa;
  34. import org.openspcoop2.core.config.CorrelazioneApplicativaRisposta;
  35. import org.openspcoop2.core.config.DumpConfigurazione;
  36. import org.openspcoop2.core.config.GestioneToken;
  37. import org.openspcoop2.core.config.GestioneTokenAutenticazione;
  38. import org.openspcoop2.core.config.InvocazioneServizio;
  39. import org.openspcoop2.core.config.MessageSecurity;
  40. import org.openspcoop2.core.config.MtomProcessor;
  41. import org.openspcoop2.core.config.PortaApplicativa;
  42. import org.openspcoop2.core.config.PortaApplicativaAutorizzazioneServizioApplicativo;
  43. import org.openspcoop2.core.config.PortaApplicativaAutorizzazioneSoggetto;
  44. import org.openspcoop2.core.config.PortaApplicativaServizioApplicativo;
  45. import org.openspcoop2.core.config.PortaDelegata;
  46. import org.openspcoop2.core.config.PortaDelegataLocalForward;
  47. import org.openspcoop2.core.config.PortaDelegataServizioApplicativo;
  48. import org.openspcoop2.core.config.PortaTracciamento;
  49. import org.openspcoop2.core.config.Proprieta;
  50. import org.openspcoop2.core.config.ResponseCachingConfigurazione;
  51. import org.openspcoop2.core.config.Ruolo;
  52. import org.openspcoop2.core.config.Scope;
  53. import org.openspcoop2.core.config.ServizioApplicativo;
  54. import org.openspcoop2.core.config.TrasformazioneRegola;
  55. import org.openspcoop2.core.config.Trasformazioni;
  56. import org.openspcoop2.core.config.ValidazioneContenutiApplicativi;
  57. import org.openspcoop2.core.config.constants.CostantiConfigurazione;
  58. import org.openspcoop2.core.config.constants.MTOMProcessorType;
  59. import org.openspcoop2.core.config.constants.RuoloContesto;
  60. import org.openspcoop2.core.config.constants.RuoloTipoMatch;
  61. import org.openspcoop2.core.config.constants.ScopeTipoMatch;
  62. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  63. import org.openspcoop2.core.config.constants.StatoFunzionalitaConWarning;
  64. import org.openspcoop2.core.config.constants.TipoAutenticazione;
  65. import org.openspcoop2.core.config.constants.TipoAutenticazionePrincipal;
  66. import org.openspcoop2.core.config.constants.TipoAutorizzazione;
  67. import org.openspcoop2.core.constants.CostantiDB;
  68. import org.openspcoop2.core.constants.CostantiLabel;
  69. import org.openspcoop2.core.constants.TipiConnettore;
  70. import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
  71. import org.openspcoop2.core.controllo_traffico.constants.RuoloPolicy;
  72. import org.openspcoop2.core.id.IDPortaApplicativa;
  73. import org.openspcoop2.core.id.IDPortaDelegata;
  74. import org.openspcoop2.core.id.IDServizio;
  75. import org.openspcoop2.core.id.IDServizioApplicativo;
  76. import org.openspcoop2.core.id.IDSoggetto;
  77. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  78. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  79. import org.openspcoop2.core.mvc.properties.utils.ConfigManager;
  80. import org.openspcoop2.core.mvc.properties.utils.PropertiesSourceConfiguration;
  81. import org.openspcoop2.core.plugins.Plugin;
  82. import org.openspcoop2.core.plugins.constants.TipoPlugin;
  83. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  84. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  85. import org.openspcoop2.core.registry.ConfigurazioneServizioAzione;
  86. import org.openspcoop2.core.registry.Connettore;
  87. import org.openspcoop2.core.registry.Fruitore;
  88. import org.openspcoop2.core.registry.Property;
  89. import org.openspcoop2.core.registry.Soggetto;
  90. import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
  91. import org.openspcoop2.core.registry.beans.GruppoSintetico;
  92. import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
  93. import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
  94. import org.openspcoop2.message.constants.ServiceBinding;
  95. import org.openspcoop2.monitor.engine.alarm.wrapper.ConfigurazioneAllarmeBean;
  96. import org.openspcoop2.pdd.config.UrlInvocazioneAPI;
  97. import org.openspcoop2.pdd.core.autenticazione.ParametriAutenticazioneApiKey;
  98. import org.openspcoop2.pdd.core.autorizzazione.CostantiAutorizzazione;
  99. import org.openspcoop2.pdd.core.connettori.ConnettoreUtils;
  100. import org.openspcoop2.pdd.logger.LogLevels;
  101. import org.openspcoop2.protocol.engine.constants.Costanti;
  102. import org.openspcoop2.protocol.utils.EsitiConfigUtils;
  103. import org.openspcoop2.protocol.utils.ModIUtils;
  104. import org.openspcoop2.utils.certificate.ocsp.OCSPManager;
  105. import org.openspcoop2.utils.properties.PropertiesUtilities;
  106. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  107. import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
  108. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  109. import org.openspcoop2.web.ctrlstat.plugins.IExtendedListServlet;
  110. import org.openspcoop2.web.ctrlstat.servlet.ConsoleHelper;
  111. import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCore;
  112. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
  113. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCostanti;
  114. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
  115. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCostanti;
  116. import org.openspcoop2.web.ctrlstat.servlet.gruppi.GruppiCostanti;
  117. import org.openspcoop2.web.ctrlstat.servlet.pa.PorteApplicativeCore;
  118. import org.openspcoop2.web.ctrlstat.servlet.pa.PorteApplicativeCostanti;
  119. import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCore;
  120. import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCostanti;
  121. import org.openspcoop2.web.ctrlstat.servlet.pdd.PddCore;
  122. import org.openspcoop2.web.ctrlstat.servlet.ruoli.RuoliCostanti;
  123. import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCore;
  124. import org.openspcoop2.web.ctrlstat.servlet.scope.ScopeCostanti;
  125. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
  126. import org.openspcoop2.web.lib.mvc.DataElement;
  127. import org.openspcoop2.web.lib.mvc.ServletUtils;

  128. /**
  129.  * ErogazioniDetailsUtilities
  130.  *
  131.  * @author Andrea Poli (poli@link.it)
  132.  * @author $Author$
  133.  * @version $Rev$, $Date$
  134.  *
  135.  */
  136. public class ErogazioniDetailsUtilities {

  137.    
  138.     public static String getDetailsErogazione(IDServizio idServizio,
  139.             SoggettiCore soggettiCore, ConsoleHelper consoleHelper) throws Exception {
  140.         return _getDetails(idServizio, null,
  141.                 soggettiCore, consoleHelper,
  142.                 null, null);
  143.     }
  144.     public static String getDetailsErogazione(IDServizio idServizio,
  145.             SoggettiCore soggettiCore, ConsoleHelper consoleHelper,
  146.             String separator, String newLine) throws Exception {
  147.         return _getDetails(idServizio, null,
  148.                 soggettiCore, consoleHelper,
  149.                 separator, newLine);
  150.     }
  151.     public static String getDetailsFruizione(IDServizio idServizio, IDSoggetto idSoggettoFruitore,
  152.             SoggettiCore soggettiCore, ConsoleHelper consoleHelper) throws Exception {
  153.         return _getDetails(idServizio, idSoggettoFruitore,
  154.                 soggettiCore, consoleHelper,
  155.                 null, null);
  156.     }
  157.     public static String getDetailsFruizione(IDServizio idServizio, IDSoggetto idSoggettoFruitore,
  158.             SoggettiCore soggettiCore, ConsoleHelper consoleHelper,
  159.             String separator, String newLine) throws Exception {
  160.         return _getDetails(idServizio, idSoggettoFruitore,
  161.                 soggettiCore, consoleHelper,
  162.                 separator, newLine);
  163.     }
  164.     private static String _getDetails(IDServizio idServizio, IDSoggetto idSoggettoFruitore,
  165.             SoggettiCore soggettiCore, ConsoleHelper consoleHelper,
  166.             String separator, String newLine) throws Exception {
  167.        
  168.         if(separator == null) {
  169.             separator = ": ";
  170.         }
  171.         if(newLine == null) {
  172.             newLine = "\n";
  173.         }
  174.        
  175.         StringBuilder sb = new StringBuilder();
  176.        
  177.         boolean gestioneFruitori = idSoggettoFruitore!=null;
  178.         boolean gestioneErogatori = !gestioneFruitori;
  179.        
  180.         PddCore pddCore = new PddCore(soggettiCore);
  181.         AccordiServizioParteComuneCore apcCore = new AccordiServizioParteComuneCore(soggettiCore);
  182.         AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(soggettiCore);
  183.         ConfigurazioneCore confCore = new ConfigurazioneCore(soggettiCore);
  184.         PorteApplicativeCore porteApplicativeCore = null;
  185.         PorteDelegateCore porteDelegateCore = null;
  186.         ServiziApplicativiCore saCore = null;
  187.         if(gestioneErogatori) {
  188.             porteApplicativeCore = new PorteApplicativeCore(soggettiCore);
  189.             saCore = new ServiziApplicativiCore(soggettiCore);
  190.         }
  191.         else {
  192.             porteDelegateCore = new PorteDelegateCore(soggettiCore);
  193.         }
  194.        
  195.         boolean showSoggettoErogatoreInErogazioni = false;
  196.         boolean showSoggettoFruitoreInFruizioni = false;
  197.         if(gestioneErogatori) {
  198.             showSoggettoErogatoreInErogazioni = soggettiCore.isMultitenant() &&
  199.                     !consoleHelper.isSoggettoMultitenantSelezionato();
  200.         }
  201.         else {
  202.             showSoggettoFruitoreInFruizioni = gestioneFruitori &&  soggettiCore.isMultitenant() &&
  203.                     !consoleHelper.isSoggettoMultitenantSelezionato();
  204.         }
  205.        
  206.        
  207.         // *** inizializzo oggetti ***
  208.        
  209.         String protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(idServizio.getSoggettoErogatore().getTipo());
  210.         //org.openspcoop2.protocol.sdk.IProtocolFactory<?> protocolFactory = org.openspcoop2.protocol.engine.ProtocolFactoryManager.getInstance().getProtocolFactoryByName(protocollo);
  211.         String labelProtocollo = consoleHelper.getLabelProtocollo(protocollo);
  212.         boolean showProtocolli = consoleHelper.getSession()!=null ? (soggettiCore.countProtocolli(consoleHelper.getRequest(), consoleHelper.getSession())>1) : true;
  213.        
  214.         AccordoServizioParteSpecifica asps = apsCore.getServizio(idServizio);
  215.         AccordoServizioParteComuneSintetico as = apcCore.getAccordoServizioSintetico(asps.getIdAccordo());
  216.         AccordoServizioParteComune asFull = apcCore.getAccordoServizioFull(asps.getIdAccordo());
  217.         ServiceBinding serviceBinding = apcCore.toMessageServiceBinding(as.getServiceBinding());
  218.        
  219.         idServizio.setPortType(asps.getPortType());
  220.         idServizio.setUriAccordoServizioParteComune(asps.getAccordoServizioParteComune());
  221.        
  222.         Soggetto sog = soggettiCore.getSoggettoRegistro(asps.getIdSoggetto());
  223.         boolean isPddEsterna = pddCore.isPddEsterna(sog.getPortaDominio());
  224.        
  225.         List<MappingErogazionePortaApplicativa> listaMappingErogazionePortaApplicativa = new ArrayList<>();
  226.         List<PortaApplicativa> listaPorteApplicativeAssociate = new ArrayList<>();
  227.         if(gestioneErogatori) {
  228.             // lettura delle configurazioni associate
  229.             listaMappingErogazionePortaApplicativa = apsCore.mappingServiziPorteAppList(idServizio,asps.getId(), null);
  230.             for(MappingErogazionePortaApplicativa mappinErogazione : listaMappingErogazionePortaApplicativa) {
  231.                 listaPorteApplicativeAssociate.add(porteApplicativeCore.getPortaApplicativa(mappinErogazione.getIdPortaApplicativa()));
  232.             }
  233.         }

  234.         List<MappingFruizionePortaDelegata> listaMappingFruzionePortaDelegata = new ArrayList<>();
  235.         List<PortaDelegata> listaPorteDelegateAssociate = new ArrayList<>();
  236.         Fruitore fruitore = null;
  237.         if(gestioneFruitori) {
  238.             // In questa modalità ci deve essere un fruitore indirizzato
  239.             for (Fruitore check : asps.getFruitoreList()) {
  240.                 if(check.getTipo().equals(idSoggettoFruitore.getTipo()) && check.getNome().equals(idSoggettoFruitore.getNome())) {
  241.                     fruitore = check;
  242.                     break;
  243.                 }
  244.             }
  245.             if(fruitore!=null) {
  246.                 listaMappingFruzionePortaDelegata = apsCore.serviziFruitoriMappingList(fruitore.getId(), idSoggettoFruitore, idServizio, null);
  247.                 for(MappingFruizionePortaDelegata mappingFruizione : listaMappingFruzionePortaDelegata) {
  248.                     listaPorteDelegateAssociate.add(porteDelegateCore.getPortaDelegata(mappingFruizione.getIdPortaDelegata()));
  249.                 }
  250.             }
  251.         }
  252.        
  253.        
  254.         // *** maschera principale ***
  255.        
  256.         sb.append("=== Informazioni Generali ===");
  257.        
  258.         // Nome
  259.         //String labelServizio = gestioneFruitori ? consoleHelper.getLabelIdServizioSenzaErogatore(idServizio) :  consoleHelper.getLabelIdServizioSenzaErogatore(idServizio);
  260.         String labelServizio = consoleHelper.getLabelIdServizioSenzaErogatore(idServizio);
  261.         String labelServizioConPortType = labelServizio;
  262.         if(asps.getPortType()!=null && !"".equals(asps.getPortType()) && !asps.getNome().equals(asps.getPortType())) {
  263.             labelServizioConPortType = labelServizioConPortType +" ("+asps.getPortType()+")";
  264.         }
  265.         sb.append(newLine);
  266.         sb.append(ErogazioniCostanti.LABEL_ASPS_MODIFICA_SERVIZIO_NOME);
  267.         sb.append(separator);
  268.         sb.append(labelServizioConPortType);
  269.        
  270.         // Stato
  271.         if(gestioneErogatori && listaMappingErogazionePortaApplicativa.size()==1) {
  272.             PortaApplicativa pa = porteApplicativeCore.getPortaApplicativa(listaMappingErogazionePortaApplicativa.get(0).getIdPortaApplicativa());
  273.             boolean statoPA = pa.getStato().equals(StatoFunzionalita.ABILITATO);
  274.             String statoMapping = statoPA ? CostantiControlStation.LABEL_STATO_ABILITATO : CostantiControlStation.LABEL_STATO_DISABILITATO;
  275.             sb.append(newLine);
  276.             sb.append(PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_STATO_PORTA);
  277.             sb.append(separator);
  278.             sb.append(statoMapping);
  279.         }
  280.         else if(gestioneFruitori && listaPorteDelegateAssociate.size()==1) {
  281.             PortaDelegata pd = porteDelegateCore.getPortaDelegata(listaMappingFruzionePortaDelegata.get(0).getIdPortaDelegata());
  282.             boolean statoPD = pd.getStato().equals(StatoFunzionalita.ABILITATO);
  283.             String statoMapping = statoPD ? CostantiControlStation.LABEL_STATO_ABILITATO : CostantiControlStation.LABEL_STATO_DISABILITATO;
  284.             sb.append(newLine);
  285.             sb.append(PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_STATO_PORTA);
  286.             sb.append(separator);
  287.             sb.append(statoMapping);
  288.         }
  289.        
  290.         // soggetto erogatore
  291.         if(gestioneFruitori || showSoggettoErogatoreInErogazioni) {
  292.             String labelSoggetto = consoleHelper.getLabelNomeSoggetto(protocollo,asps.getTipoSoggettoErogatore(),asps.getNomeSoggettoErogatore());
  293.             sb.append(newLine);
  294.             sb.append(AccordiServizioParteSpecificaCostanti.LABEL_APS_SOGGETTO_EROGATORE);
  295.             sb.append(separator);
  296.             sb.append(labelSoggetto);
  297.         }
  298.        
  299.         // API
  300.         String labelAPI = consoleHelper.getLabelIdAccordo(as);
  301.         String labelServiceBinding = null;
  302.         switch (serviceBinding) {
  303.         case REST:
  304.             labelServiceBinding= CostantiControlStation.LABEL_PARAMETRO_SERVICE_BINDING_REST;
  305.             break;
  306.         case SOAP:
  307.         default:
  308.             labelServiceBinding= CostantiControlStation.LABEL_PARAMETRO_SERVICE_BINDING_SOAP;
  309.             break;
  310.         }
  311.         sb.append(newLine);
  312.         sb.append(AccordiServizioParteSpecificaCostanti.LABEL_PARAMETRO_APS_ACCORDO);
  313.         sb.append(separator);
  314.         sb.append(MessageFormat.format(ErogazioniCostanti.MESSAGE_METADATI_SERVIZIO_EROGAZIONI_EDIT, labelServiceBinding, labelAPI));
  315.        
  316.         // Tag
  317.         List<GruppoSintetico> gruppi = as.getGruppo();
  318.         if(gruppi != null && !gruppi.isEmpty()) {
  319.             StringBuilder sbTags = new StringBuilder();
  320.             for (int i = 0; i < gruppi.size(); i++) {
  321.                 GruppoSintetico gruppo = gruppi.get(i);
  322.                 if(sbTags.length()>0) {
  323.                     sbTags.append(",");
  324.                 }
  325.                 sbTags.append(gruppo.getNome());
  326.             }
  327.             sb.append(newLine);
  328.             sb.append(GruppiCostanti.LABEL_GRUPPI);
  329.             sb.append(separator);
  330.             sb.append(sbTags.toString());
  331.         }  
  332.        
  333.         // Profilo Interoperabilità
  334.         if(showProtocolli) {
  335.             sb.append(newLine);
  336.             sb.append(AccordiServizioParteSpecificaCostanti.LABEL_PARAMETRO_APS_PROTOCOLLO);
  337.             sb.append(separator);
  338.             sb.append(labelProtocollo);
  339.         }
  340.        
  341.         // Fruitore
  342.         if(showSoggettoFruitoreInFruizioni) {
  343.             sb.append(newLine);
  344.             sb.append(AccordiServizioParteSpecificaCostanti.LABEL_APS_SOGGETTO_FRUITORE);
  345.             sb.append(separator);
  346.             sb.append(consoleHelper.getLabelNomeSoggetto(protocollo,fruitore.getTipo(),fruitore.getNome()));
  347.         }
  348.        
  349.         boolean connettoreStatic = false;
  350.         if(gestioneFruitori) {
  351.             connettoreStatic = apsCore.isConnettoreStatic(protocollo);
  352.         }
  353.        
  354.         String urlInvocazione = null;
  355.         String urlConnettoreFruitoreModI = null;
  356.         if(gestioneErogatori) {
  357.            
  358.             IDPortaApplicativa idPA = null;
  359.             PortaApplicativa paDefault = null;
  360.             String canalePorta = null;
  361.            
  362.             // Url Invocazione
  363.             if(!isPddEsterna){
  364.                 idPA = porteApplicativeCore.getIDPortaApplicativaAssociataDefault(idServizio);
  365.                 paDefault = porteApplicativeCore.getPortaApplicativa(idPA);
  366.                 canalePorta = paDefault.getCanale();
  367.                 boolean analizeProxyPassRules = true;
  368.                 UrlInvocazioneAPI urlInvocazioneConfig = confCore.getConfigurazioneUrlInvocazione(protocollo, RuoloContesto.PORTA_APPLICATIVA, serviceBinding, paDefault.getNome(),
  369.                         new IDSoggetto(paDefault.getTipoSoggettoProprietario(), paDefault.getNomeSoggettoProprietario()),
  370.                                 as, paDefault.getCanale(),
  371.                                 analizeProxyPassRules);
  372.                 urlInvocazione = urlInvocazioneConfig.getUrl();
  373.             } else {
  374.                 urlInvocazione = "-";
  375.             }
  376.             sb.append(newLine);
  377.             sb.append(PorteApplicativeCostanti.LABEL_PARAMETRO_TITOLO_PORTE_APPLICATIVE_DATI_INVOCAZIONE);
  378.             sb.append(separator);
  379.             sb.append(urlInvocazione);
  380.                        
  381.             // CORS
  382.             sb.append(newLine);
  383.             sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_CORS);
  384.             sb.append(separator);
  385.             sb.append(consoleHelper.getStatoGestioneCorsPortaApplicativa(paDefault, false));
  386.            
  387.             // Canale
  388.             for (int i = 0; i < listaPorteApplicativeAssociate.size(); i++) {
  389.                 PortaApplicativa paAssociata = listaPorteApplicativeAssociate.get(i);
  390.                 MappingErogazionePortaApplicativa mapping = listaMappingErogazionePortaApplicativa.get(i);
  391.                 if(mapping.isDefault()) {
  392.                     canalePorta = paAssociata.getCanale();
  393.                     break;
  394.                 }
  395.             }
  396.             CanaliConfigurazione gestioneCanali = confCore.getCanaliConfigurazione(false);
  397.             boolean gestioneCanaliEnabled = gestioneCanali != null && org.openspcoop2.core.config.constants.StatoFunzionalita.ABILITATO.equals(gestioneCanali.getStato());
  398.             if(gestioneCanaliEnabled) {
  399.                 sb.append(newLine);
  400.                 sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_CANALE);
  401.                 sb.append(separator);
  402.                 String canaleNome = canalePorta;
  403.                 if(canaleNome == null) { // default
  404.                     String canaleAPINome = as.getCanale();
  405.                     if(canaleAPINome == null) { // default sistema
  406.                         List<CanaleConfigurazione> canaleList = gestioneCanali != null ? gestioneCanali.getCanaleList() : new ArrayList<>();
  407.                         CanaleConfigurazione canaleConfigurazioneDefault = consoleHelper.getCanaleDefault(canaleList);
  408.                         canaleNome =  canaleConfigurazioneDefault.getNome();
  409.                     }
  410.                     else { // default API
  411.                         canaleNome = canaleAPINome;
  412.                     }
  413.                 }
  414.                 sb.append(canaleNome);
  415.             }
  416.            
  417.             // Opzioni Avanzate
  418.             if(!consoleHelper.isModalitaStandard() && apsCore.getMessageEngines()!=null && !apsCore.getMessageEngines().isEmpty()) {
  419.                 sb.append(newLine);
  420.                 sb.append(PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_OPZIONI_AVANZATE);
  421.                 sb.append(separator);
  422.                 sb.append(consoleHelper.getStatoOpzioniAvanzatePortaApplicativaDefault(paDefault));
  423.             }
  424.            
  425.            
  426.             // Connettore
  427.             // Quello di default si visualizza sempre in questa posizione.
  428.             // Eventuali altri connettori redefiniti, vengono visualizzati dopo la configurazione del gruppo
  429.            
  430.             sb.append(newLine);
  431.             sb.append(newLine);
  432.             sb.append("=== Connettore ===");
  433.            
  434.             printConnettoreErogazione(paDefault, paDefault,
  435.                     saCore, consoleHelper,
  436.                     sb,
  437.                     separator, newLine);
  438.            
  439.         }
  440.         else {
  441.            
  442.             IDPortaDelegata idPD = porteDelegateCore.getIDPortaDelegataAssociataDefault(idServizio, idSoggettoFruitore);
  443.             PortaDelegata pdDefault = porteDelegateCore.getPortaDelegata(idPD);
  444.             String canalePorta = pdDefault.getCanale();
  445.                        
  446.             // Url Invocazione
  447.             boolean analizeProxyPassRules = true;
  448.             UrlInvocazioneAPI urlInvocazioneConf = confCore.getConfigurazioneUrlInvocazione(protocollo, RuoloContesto.PORTA_DELEGATA, serviceBinding, pdDefault.getNome(), idSoggettoFruitore,
  449.                     as, pdDefault.getCanale(),
  450.                     analizeProxyPassRules);
  451.             urlInvocazione = urlInvocazioneConf.getUrl();
  452.             sb.append(newLine);
  453.             sb.append(PorteDelegateCostanti.LABEL_PARAMETRO_TITOLO_PORTE_DELEGATE_DATI_INVOCAZIONE);
  454.             sb.append(separator);
  455.             sb.append(urlInvocazione);
  456.                        
  457.             // CORS
  458.             sb.append(newLine);
  459.             sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_CORS);
  460.             sb.append(separator);
  461.             sb.append(consoleHelper.getStatoGestioneCorsPortaDelegata(pdDefault, false));
  462.            
  463.             // Canale
  464.             CanaliConfigurazione gestioneCanali = confCore.getCanaliConfigurazione(false);
  465.             boolean gestioneCanaliEnabled = gestioneCanali != null && org.openspcoop2.core.config.constants.StatoFunzionalita.ABILITATO.equals(gestioneCanali.getStato());
  466.             if(gestioneCanaliEnabled) {
  467.                 sb.append(newLine);
  468.                 sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_CANALE);
  469.                 sb.append(separator);
  470.                 String canaleNome = canalePorta;
  471.                 if(canaleNome == null) { // default
  472.                     String canaleAPINome = as.getCanale();
  473.                     if(canaleAPINome == null) { // default sistema
  474.                         List<CanaleConfigurazione> canaleList = gestioneCanali != null ? gestioneCanali.getCanaleList() : new ArrayList<>();
  475.                         CanaleConfigurazione canaleConfigurazioneDefault = canaleList.stream().filter((c) -> c.isCanaleDefault()).findFirst().get();
  476.                         canaleNome =  canaleConfigurazioneDefault.getNome();
  477.                     }
  478.                     else { // default API
  479.                         canaleNome = canaleAPINome;
  480.                     }
  481.                 }
  482.                 sb.append(canaleNome);
  483.             }
  484.            
  485.             // Opzioni Avanzate
  486.             if(!consoleHelper.isModalitaStandard() && apsCore.getMessageEngines()!=null && !apsCore.getMessageEngines().isEmpty()) {
  487.                 sb.append(newLine);
  488.                 sb.append(PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_OPZIONI_AVANZATE);
  489.                 sb.append(separator);
  490.                 sb.append(consoleHelper.getStatoOpzioniAvanzatePortaDelegataDefault(pdDefault));
  491.             }
  492.            
  493.             // Connettore
  494.             // Quello di default si visualizza sempre in questa posizione.
  495.             // Eventuali altri connettori redefiniti, vengono visualizzati dopo la configurazione del gruppo
  496.            
  497.             org.openspcoop2.core.registry.Connettore connettore = null;
  498.             if(fruitore!=null) {
  499.                 connettore = fruitore.getConnettore();
  500.             }
  501.             if(connettore!=null && connettore.sizePropertyList()>0) {
  502.                 for (Property p : connettore.getPropertyList()) {
  503.                     if(CostantiDB.CONNETTORE_HTTP_LOCATION.equals(p.getNome())) {
  504.                         urlConnettoreFruitoreModI = p.getValore();
  505.                     }
  506.                 }
  507.             }
  508.            
  509.             sb.append(newLine);
  510.             sb.append(newLine);
  511.             sb.append("=== Connettore ===");
  512.            
  513.             printConnettoreFruizione(consoleHelper,
  514.                     connettore, null,
  515.                     connettoreStatic,
  516.                     sb,
  517.                     separator, newLine);
  518.            
  519.         }
  520.        
  521.        
  522.        
  523.         // Configurazioni (+ connetori ridefiniti)
  524.        
  525.         if(gestioneErogatori) {
  526.             PortaApplicativa paDefault = null;
  527.             PortaApplicativaServizioApplicativo paSADefault=null;
  528.             for (int i = 0; i < listaPorteApplicativeAssociate.size(); i++) {
  529.                 MappingErogazionePortaApplicativa mapping = listaMappingErogazionePortaApplicativa.get(i);
  530.                 if(mapping.isDefault()) {
  531.                     paDefault = listaPorteApplicativeAssociate.get(i);
  532.                     paSADefault = paDefault.getServizioApplicativoList().get(0);
  533.                     break;
  534.                 }
  535.             }
  536.             for (int i = 0; i < listaPorteApplicativeAssociate.size(); i++) {
  537.                            
  538.                 PortaApplicativa paAssociata = listaPorteApplicativeAssociate.get(i);
  539.                 MappingErogazionePortaApplicativa mapping = listaMappingErogazionePortaApplicativa.get(i);
  540.                
  541.                 sb.append(newLine);
  542.                 sb.append(newLine);
  543.                 String labelGruppo = null;
  544.                 if(listaPorteApplicativeAssociate.size()==1) {
  545.                     sb.append("=== Configurazione ===");
  546.                 }
  547.                 else {
  548.                     labelGruppo = mapping.getDescrizione();
  549.                     if(mapping.isDefault()) {
  550.                         if(labelGruppo==null || StringUtils.isEmpty(labelGruppo)) {
  551.                             labelGruppo = org.openspcoop2.core.constants.Costanti.MAPPING_DESCRIZIONE_DEFAULT;
  552.                         }
  553.                     }
  554.                     sb.append("=== Configurazione Gruppo '"+labelGruppo+"' ===");
  555.                 }
  556.                
  557.                 printConfigurazioneControlloAccessiErogazione(consoleHelper, soggettiCore, protocollo,
  558.                         paAssociata,
  559.                         sb,
  560.                         separator, newLine);
  561.                
  562.                 printConfigurazioneRateLimiting(consoleHelper, soggettiCore,
  563.                         false, paAssociata.getNome(),
  564.                         sb,
  565.                         separator, newLine);
  566.                
  567.                 printConfigurazioneValidazioneContenutiApplicativi(consoleHelper, soggettiCore,
  568.                         asFull, paAssociata.getValidazioneContenutiApplicativi(),
  569.                         sb,
  570.                         separator, newLine);
  571.                
  572.                 printConfigurazioneResponseCaching(consoleHelper, soggettiCore,
  573.                         paAssociata.getResponseCaching(),
  574.                         sb,
  575.                         separator, newLine);
  576.                
  577.                 printConfigurazioneMessageSecurity(consoleHelper, soggettiCore,
  578.                         paAssociata.getMessageSecurity(),
  579.                         sb,
  580.                         separator, newLine);
  581.                
  582.                 printConfigurazioneMTOM(consoleHelper, soggettiCore,
  583.                         paAssociata.getMtomProcessor(),
  584.                         sb,
  585.                         separator, newLine);
  586.                
  587.                 printConfigurazioneTrasformazioni(consoleHelper, soggettiCore,
  588.                         asFull, paAssociata.getTrasformazioni(),
  589.                         sb,
  590.                         separator, newLine);
  591.                
  592.                 printConfigurazioneTracciamento(consoleHelper, soggettiCore,
  593.                         paAssociata.getCorrelazioneApplicativa(),
  594.                         paAssociata.getCorrelazioneApplicativaRisposta(),
  595.                         paAssociata.getTracciamento(),
  596.                         sb,
  597.                         separator, newLine);
  598.                
  599.                 printConfigurazioneRegistrazioneMessaggi(consoleHelper, soggettiCore,
  600.                         paAssociata.getDump(),
  601.                         sb,
  602.                         separator, newLine);
  603.                
  604.                 printConfigurazioneAllarmi(consoleHelper, soggettiCore,
  605.                         false, paAssociata.getNome(),
  606.                         sb,
  607.                         separator, newLine);
  608.                
  609.                 printConfigurazioneProperties(consoleHelper, soggettiCore,
  610.                         paAssociata.getProprietaList(),
  611.                         sb,
  612.                         separator, newLine);
  613.                
  614.                 printConfigurazionePortaApplicativaExtended(consoleHelper, soggettiCore,
  615.                         protocollo, paAssociata, mapping,
  616.                         sb,
  617.                         separator, newLine);
  618.                
  619.                 String behaviour = (!soggettiCore.isConnettoriMultipliEnabled() && paAssociata.getBehaviour()!=null) ? paAssociata.getBehaviour().getNome() : null;
  620.                 printConfigurazioneAltro(consoleHelper, soggettiCore,
  621.                         protocollo, asFull,
  622.                         paAssociata.getAllegaBody(), paAssociata.getScartaBody(),
  623.                         paAssociata.getIntegrazione(), behaviour,
  624.                         paAssociata.getProprietaRateLimitingList(),
  625.                         paAssociata.getStateless(), null,
  626.                         paAssociata.getRicevutaAsincronaSimmetrica(), paAssociata.getRicevutaAsincronaAsimmetrica(),
  627.                         paAssociata.getGestioneManifest(), paAssociata.getConfigurazioneHandler(),
  628.                         sb,
  629.                         separator, newLine);
  630.                
  631.                 PortaApplicativaServizioApplicativo portaApplicativaAssociataServizioApplicativo = paAssociata.getServizioApplicativoList().get(0);
  632.                 boolean connettoreConfigurazioneRidefinito = consoleHelper.isConnettoreRidefinito(paDefault, paSADefault, paAssociata, portaApplicativaAssociataServizioApplicativo, paAssociata.getServizioApplicativoList());
  633.                 if(!mapping.isDefault() && connettoreConfigurazioneRidefinito) {
  634.                
  635.                     sb.append(newLine);
  636.                     sb.append(newLine);
  637.                     sb.append("=== Connettore Gruppo '"+labelGruppo+"' ===");
  638.                    
  639.                     printConnettoreErogazione(paDefault, paAssociata,
  640.                             saCore, consoleHelper,
  641.                             sb,
  642.                             separator, newLine);
  643.                 }
  644.             }
  645.         }
  646.         else {
  647.             for (int i = 0; i < listaPorteDelegateAssociate.size(); i++) {
  648.                 PortaDelegata pdAssociata = listaPorteDelegateAssociate.get(i);
  649.                 MappingFruizionePortaDelegata mapping = listaMappingFruzionePortaDelegata.get(i);
  650.                
  651.                 sb.append(newLine);
  652.                 sb.append(newLine);
  653.                 String labelGruppo = null;
  654.                 if(listaPorteDelegateAssociate.size()==1) {
  655.                     sb.append("=== Configurazione ===");
  656.                 }
  657.                 else {
  658.                     labelGruppo = mapping.getDescrizione();
  659.                     if(mapping.isDefault()) {
  660.                         if(labelGruppo==null || StringUtils.isEmpty(labelGruppo)) {
  661.                             labelGruppo = org.openspcoop2.core.constants.Costanti.MAPPING_DESCRIZIONE_DEFAULT;
  662.                         }
  663.                     }
  664.                     sb.append("=== Configurazione Gruppo '"+labelGruppo+"' ===");
  665.                 }
  666.                
  667.                 printConfigurazioneControlloAccessiFruizione(consoleHelper, soggettiCore, protocollo,
  668.                         pdAssociata,
  669.                         sb,
  670.                         separator, newLine);
  671.                
  672.                 printConfigurazioneRateLimiting(consoleHelper, soggettiCore,
  673.                         true, pdAssociata.getNome(),
  674.                         sb,
  675.                         separator, newLine);
  676.                
  677.                 printConfigurazioneValidazioneContenutiApplicativi(consoleHelper, soggettiCore,
  678.                         asFull, pdAssociata.getValidazioneContenutiApplicativi(),
  679.                         sb,
  680.                         separator, newLine);
  681.                
  682.                 printConfigurazioneResponseCaching(consoleHelper, soggettiCore,
  683.                         pdAssociata.getResponseCaching(),
  684.                         sb,
  685.                         separator, newLine);
  686.                
  687.                 printConfigurazioneMessageSecurity(consoleHelper, soggettiCore,
  688.                         pdAssociata.getMessageSecurity(),
  689.                         sb,
  690.                         separator, newLine);
  691.                
  692.                 printConfigurazioneMTOM(consoleHelper, soggettiCore,
  693.                         pdAssociata.getMtomProcessor(),
  694.                         sb,
  695.                         separator, newLine);
  696.                
  697.                 printConfigurazioneTrasformazioni(consoleHelper, soggettiCore,
  698.                         asFull, pdAssociata.getTrasformazioni(),
  699.                         sb,
  700.                         separator, newLine);
  701.                
  702.                 printConfigurazioneTracciamento(consoleHelper, soggettiCore,
  703.                         pdAssociata.getCorrelazioneApplicativa(),
  704.                         pdAssociata.getCorrelazioneApplicativaRisposta(),
  705.                         pdAssociata.getTracciamento(),
  706.                         sb,
  707.                         separator, newLine);
  708.                
  709.                 printConfigurazioneRegistrazioneMessaggi(consoleHelper, soggettiCore,
  710.                         pdAssociata.getDump(),
  711.                         sb,
  712.                         separator, newLine);
  713.                
  714.                 printConfigurazioneAllarmi(consoleHelper, soggettiCore,
  715.                         true, pdAssociata.getNome(),
  716.                         sb,
  717.                         separator, newLine);
  718.                
  719.                 printConfigurazioneProperties(consoleHelper, soggettiCore,
  720.                         pdAssociata.getProprietaList(),
  721.                         sb,
  722.                         separator, newLine);

  723.                 printConfigurazioneAltro(consoleHelper, soggettiCore,
  724.                         protocollo, asFull,
  725.                         pdAssociata.getAllegaBody(), pdAssociata.getScartaBody(),
  726.                         pdAssociata.getIntegrazione(), null,  
  727.                         pdAssociata.getProprietaRateLimitingList(),
  728.                         pdAssociata.getStateless(), pdAssociata.getLocalForward(),
  729.                         pdAssociata.getRicevutaAsincronaSimmetrica(), pdAssociata.getRicevutaAsincronaAsimmetrica(),
  730.                         pdAssociata.getGestioneManifest(), pdAssociata.getConfigurazioneHandler(),
  731.                         sb,
  732.                         separator, newLine);
  733.                
  734.                 printConfigurazionePortaDelegataExtended(consoleHelper, soggettiCore,
  735.                         protocollo, pdAssociata, mapping,
  736.                         sb,
  737.                         separator, newLine);
  738.                
  739.                 boolean connettoreConfigurazioneRidefinito = false;
  740.                 Connettore connettore = fruitore.getConnettore();
  741.                 if(!mapping.isDefault()) {
  742.                     List<String> listaAzioni = pdAssociata.getAzione().getAzioneDelegataList();
  743.                    
  744.                     String azioneConnettore =  null;
  745.                     if(listaAzioni!=null && listaAzioni.size()>0) {
  746.                         azioneConnettore = listaAzioni.get(0);
  747.                     }
  748.                    
  749.                     if(azioneConnettore!=null && !"".equals(azioneConnettore)) {
  750.                         for (ConfigurazioneServizioAzione check : fruitore.getConfigurazioneAzioneList()) {
  751.                             if(check.getAzioneList().contains(azioneConnettore)) {
  752.                                 connettore = check.getConnettore();
  753.                                 connettoreConfigurazioneRidefinito = true;
  754.                                 break;
  755.                             }
  756.                         }
  757.                     }
  758.                 }
  759.                 if(!mapping.isDefault() && connettoreConfigurazioneRidefinito) {
  760.                    
  761.                     sb.append(newLine);
  762.                     sb.append(newLine);
  763.                     sb.append("=== Connettore Gruppo '"+labelGruppo+"' ===");
  764.                    
  765.                     printConnettoreFruizione(consoleHelper,
  766.                             connettore, labelGruppo,
  767.                             connettoreStatic,
  768.                             sb,
  769.                             separator, newLine);
  770.                            
  771.                 }
  772.             }
  773.         }
  774.        
  775.        
  776.         // Altra sezione dedicata a ModI
  777.         /**org.openspcoop2.protocol.sdk.properties.IConsoleDynamicConfiguration consoleDynamicConfiguration = protocolFactory.createDynamicConfigurationConsole();
  778.         org.openspcoop2.protocol.sdk.registry.IRegistryReader registryReader = apcCore.getRegistryReader(protocolFactory);
  779.         org.openspcoop2.protocol.sdk.registry.IConfigIntegrationReader configRegistryReader = apcCore.getConfigIntegrationReader(protocolFactory);
  780.         org.openspcoop2.protocol.sdk.properties.ConsoleConfiguration consoleConfiguration = null;
  781.         if(gestioneErogatori) {
  782.             consoleConfiguration = consoleDynamicConfiguration.getDynamicConfigAccordoServizioParteSpecifica(org.openspcoop2.protocol.sdk.constants.ConsoleOperationType.CHANGE, consoleHelper,
  783.                     registryReader, configRegistryReader, idServizio );
  784.         }
  785.         else {
  786.             org.openspcoop2.core.id.IDFruizione idFruizione = new org.openspcoop2.core.id.IDFruizione();
  787.             idFruizione.setIdServizio(idServizio);
  788.             idFruizione.setIdFruitore(idSoggettoFruitore);
  789.             consoleConfiguration = consoleDynamicConfiguration.getDynamicConfigFruizioneAccordoServizioParteSpecifica(org.openspcoop2.protocol.sdk.constants.ConsoleOperationType.CHANGE, consoleHelper,  
  790.                     registryReader, configRegistryReader, idFruizione);
  791.         }
  792.         boolean modificaDatiProfilo = false;
  793.         if(consoleConfiguration!=null && consoleConfiguration.getConsoleItem()!=null && !consoleConfiguration.getConsoleItem().isEmpty()) {
  794.             modificaDatiProfilo = true;
  795.         }*/
  796.         boolean modificaDatiProfilo = true; // va sempre controllato, anche solo per visualizzare la sicurezza canale
  797.         if(modificaDatiProfilo && Costanti.MODIPA_PROTOCOL_NAME.equals(protocollo)) {
  798.            
  799.             Map<String, String> map = ModIUtils.configToMap(asFull, asps, urlInvocazione, fruitore, urlConnettoreFruitoreModI);
  800.            
  801.             boolean rest = org.openspcoop2.core.registry.constants.ServiceBinding.REST.equals(as.getServiceBinding());
  802.                        
  803.             boolean digest = "true".equals(map.get(ModIUtils.INTEGRITY));
  804.             boolean corniceSicurezza = "true".equals(map.get(ModIUtils.CORNICE_SICUREZZA));
  805.             String patternDatiCorniceSicurezza = null;
  806.             String schemaDatiCorniceSicurezza = null;
  807.             if(corniceSicurezza) {
  808.                 patternDatiCorniceSicurezza = map.get(ModIUtils.CORNICE_SICUREZZA_PATTERN);
  809.                 schemaDatiCorniceSicurezza = map.get(ModIUtils.CORNICE_SICUREZZA_SCHEMA);
  810.             }
  811.             boolean headerDuplicati = "true".equals(map.get(ModIUtils.HEADER_DUPLICATI));
  812.            
  813.             sb.append(newLine);
  814.             sb.append(newLine);
  815.             sb.append("=== "+labelProtocollo+" ===");
  816.            
  817.             // sicurezza canale
  818.             sb.append(newLine);
  819.             sb.append(CostantiLabel.MODIPA_API_PROFILO_CANALE_LABEL);
  820.             sb.append(separator);
  821.             String v = map.get(ModIUtils.API_SICUREZZA_CANALE_PATTERN);
  822.             if(StringUtils.isNotEmpty(v)) {
  823.                 sb.append(v);
  824.             }
  825.             else {
  826.                 sb.append("-");
  827.             }
  828.            
  829.             // sicurezza messaggio
  830.             boolean sicurezzaMessaggio = false;
  831.             sb.append(newLine);
  832.             sb.append(CostantiLabel.MODIPA_API_PROFILO_SICUREZZA_MESSAGGIO_LABEL);
  833.             sb.append(separator);
  834.             v = map.get(ModIUtils.API_SICUREZZA_MESSAGGIO_PATTERN);
  835.             if(StringUtils.isNotEmpty(v)) {
  836.                 sb.append(v);
  837.                 sicurezzaMessaggio = true;
  838.             }
  839.             else {
  840.                 sb.append("-");
  841.             }
  842.                        
  843.             if(sicurezzaMessaggio) {
  844.                
  845.                 // Sorgente Token
  846.                 v = map.get(ModIUtils.API_SICUREZZA_MESSAGGIO_SORGENTE_TOKEN_ID_AUTH);
  847.                 if(StringUtils.isNotEmpty(v)) {
  848.                     sb.append(newLine);
  849.                     sb.append(CostantiLabel.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_SORGENTE_TOKEN_IDAUTH);
  850.                     sb.append(separator);
  851.                     sb.append(v);
  852.                 }
  853.                
  854.                 if(rest) {
  855.                    
  856.                     // Header
  857.                     v = map.get(ModIUtils.API_SICUREZZA_MESSAGGIO_HTTP_HEADER);
  858.                     if(StringUtils.isNotEmpty(v)) {
  859.                         sb.append(newLine);
  860.                         sb.append(CostantiLabel.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_HEADER_LABEL);
  861.                         sb.append(separator);
  862.                         sb.append(v);
  863.                     }
  864.                    
  865.                 }
  866.                
  867.                 // Applicabilita
  868.                 v = map.get(ModIUtils.API_SICUREZZA_MESSAGGIO_APPLICABILITA);
  869.                 if(StringUtils.isNotEmpty(v)) {
  870.                     sb.append(newLine);
  871.                     sb.append(CostantiLabel.MODIPA_API_CONFIGURAZIONE_SICUREZZA_MESSAGGIO_MODE_LABEL);
  872.                     sb.append(separator);
  873.                     sb.append(v);
  874.                 }
  875.                
  876.                 // Request Digest
  877.                 sb.append(newLine);
  878.                 sb.append(CostantiLabel.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_REQUEST_DIGEST_LABEL);
  879.                 sb.append(separator);
  880.                 sb.append(map.get(ModIUtils.API_SICUREZZA_MESSAGGIO_REQUEST_DIGEST));
  881.                
  882.                 // CorniceSicurezza
  883.                 sb.append(newLine);
  884.                 sb.append(CostantiLabel.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_LABEL);
  885.                 sb.append(separator);
  886.                 sb.append(map.get(ModIUtils.API_SICUREZZA_MESSAGGIO_USER_INFO));
  887.                                
  888.                 boolean request = true;
  889.                 addProfiloModISicurezza(sb,
  890.                         map,
  891.                         labelProtocollo, rest, gestioneFruitori, request,
  892.                         digest,
  893.                         patternDatiCorniceSicurezza, schemaDatiCorniceSicurezza,
  894.                         headerDuplicati,
  895.                         separator, newLine);
  896.                 addProfiloModISicurezza(sb,
  897.                         map,
  898.                         labelProtocollo, rest, gestioneFruitori, !request,
  899.                         digest,
  900.                         patternDatiCorniceSicurezza, schemaDatiCorniceSicurezza,
  901.                         headerDuplicati,
  902.                         separator, newLine);
  903.             }
  904.             else {
  905.                
  906.                 // Sicurezza OAuth
  907.                
  908.                 if( gestioneFruitori ) {
  909.                
  910.                     v = map.get(ModIUtils.API_IMPL_SICUREZZA_OAUTH_IDENTIFICATIVO);
  911.                     if(StringUtils.isNotEmpty(v)) {
  912.                         sb.append(newLine);
  913.                         /**sb.append(CostantiLabel.LABEL_CREDENZIALI_AUTENTICAZIONE_TOKEN_CLIENT_ID);*/
  914.                         sb.append(CostantiLabel.LABEL_CREDENZIALI_AUTENTICAZIONE_TOKEN_CLIENT_ID_SEARCH);
  915.                         sb.append(separator);
  916.                         sb.append(v);
  917.                     }
  918.                    
  919.                     v = map.get(ModIUtils.API_IMPL_SICUREZZA_OAUTH_KID);
  920.                     if(StringUtils.isNotEmpty(v)) {
  921.                         sb.append(newLine);
  922.                         sb.append(CostantiLabel.LABEL_CREDENZIALI_AUTENTICAZIONE_TOKEN_KID);
  923.                         sb.append(separator);
  924.                         sb.append(v);
  925.                     }
  926.                    
  927.                     addStore(sb, map,
  928.                             "", false, false,
  929.                             separator, newLine);
  930.                 }
  931.                
  932.             }
  933.         }

  934.         return sb.toString();
  935.     }
  936.    
  937.    
  938.     private static void printConfigurazioneControlloAccessiErogazione(ConsoleHelper consoleHelper, SoggettiCore soggettiCore, String protocollo,
  939.             PortaApplicativa paAssociata,
  940.             StringBuilder sb,
  941.             String separator, String newLine) throws DriverRegistroServiziNotFound, DriverRegistroServiziException {
  942.         // Controllo Accessi
  943.        
  944.         List<IDSoggetto> authzSoggetti = null;
  945.         List<IDServizioApplicativo> authzApplicativi = null;
  946.         List<String> authzRuoli = null;
  947.         boolean allRuoli = false;
  948.         boolean authzApplicativiTokenEnabled = false;
  949.         List<IDServizioApplicativo> authzApplicativiToken = null;
  950.         boolean authzRuoliTokenEnabled = false;
  951.         List<String> authzRuoliToken = null;
  952.         boolean allRuoliToken = false;
  953.         boolean authzScopeTokenEnabled = false;
  954.         List<String> authzScope = null;
  955.         boolean allScope = false;
  956.         List<String> authzTokenClaims = null;
  957.         if(paAssociata.getSoggetti()!=null && paAssociata.getSoggetti().sizeSoggettoList()>0) {
  958.             authzSoggetti = new ArrayList<>();
  959.             for (PortaApplicativaAutorizzazioneSoggetto soggetto : paAssociata.getSoggetti().getSoggettoList()) {
  960.                 authzSoggetti.add(new IDSoggetto(soggetto.getTipo(), soggetto.getNome()));
  961.             }
  962.         }
  963.         if(paAssociata.getServiziApplicativiAutorizzati()!=null && paAssociata.getServiziApplicativiAutorizzati().sizeServizioApplicativoList()>0) {
  964.             authzApplicativi = new ArrayList<>();
  965.             for (PortaApplicativaAutorizzazioneServizioApplicativo sa : paAssociata.getServiziApplicativiAutorizzati().getServizioApplicativoList()) {
  966.                 IDServizioApplicativo idSA = new IDServizioApplicativo();
  967.                 idSA.setIdSoggettoProprietario(new IDSoggetto(sa.getTipoSoggettoProprietario(), sa.getNomeSoggettoProprietario()));
  968.                 idSA.setNome(sa.getNome());
  969.                 authzApplicativi.add(idSA);
  970.             }
  971.         }
  972.         if(paAssociata.getRuoli()!=null) {
  973.             allRuoli = paAssociata.getRuoli().getMatch()==null || RuoloTipoMatch.ALL.equals(paAssociata.getRuoli().getMatch());
  974.         }
  975.         if(paAssociata.getRuoli()!=null && paAssociata.getRuoli().sizeRuoloList()>0) {
  976.             authzRuoli = new ArrayList<>();
  977.             for (Ruolo ruolo: paAssociata.getRuoli().getRuoloList()) {
  978.                 authzRuoli.add(ruolo.getNome());
  979.             }
  980.         }
  981.         if(paAssociata.getAutorizzazioneToken()!=null) {
  982.             authzApplicativiTokenEnabled = StatoFunzionalita.ABILITATO.equals(paAssociata.getAutorizzazioneToken().getAutorizzazioneApplicativi());
  983.             if(authzApplicativiTokenEnabled) {
  984.                 if(paAssociata.getAutorizzazioneToken().getServiziApplicativi()!=null && paAssociata.getAutorizzazioneToken().getServiziApplicativi().sizeServizioApplicativoList()>0) {
  985.                     authzApplicativiToken = new ArrayList<>();
  986.                     for (PortaApplicativaAutorizzazioneServizioApplicativo sa : paAssociata.getAutorizzazioneToken().getServiziApplicativi().getServizioApplicativoList()) {
  987.                         IDServizioApplicativo idSA = new IDServizioApplicativo();
  988.                         idSA.setIdSoggettoProprietario(new IDSoggetto(sa.getTipoSoggettoProprietario(), sa.getNomeSoggettoProprietario()));
  989.                         idSA.setNome(sa.getNome());
  990.                         authzApplicativiToken.add(idSA);
  991.                     }
  992.                 }
  993.             }
  994.             authzRuoliTokenEnabled = StatoFunzionalita.ABILITATO.equals(paAssociata.getAutorizzazioneToken().getAutorizzazioneRuoli());
  995.             if(authzRuoliTokenEnabled) {
  996.                 if(paAssociata.getAutorizzazioneToken().getRuoli()!=null) {
  997.                     allRuoliToken = paAssociata.getAutorizzazioneToken().getRuoli().getMatch()==null || RuoloTipoMatch.ALL.equals(paAssociata.getAutorizzazioneToken().getRuoli().getMatch());
  998.                 }
  999.                 if(paAssociata.getAutorizzazioneToken().getRuoli()!=null && paAssociata.getAutorizzazioneToken().getRuoli().sizeRuoloList()>0) {
  1000.                     authzRuoliToken = new ArrayList<>();
  1001.                     for (Ruolo ruolo: paAssociata.getAutorizzazioneToken().getRuoli().getRuoloList()) {
  1002.                         authzRuoliToken.add(ruolo.getNome());
  1003.                     }
  1004.                 }
  1005.             }
  1006.         }
  1007.         if(paAssociata.getScope()!=null) {
  1008.             authzScopeTokenEnabled = StatoFunzionalita.ABILITATO.equals(paAssociata.getScope().getStato());
  1009.             if(authzScopeTokenEnabled) {
  1010.                 allScope = paAssociata.getScope().getMatch()==null || ScopeTipoMatch.ALL.equals(paAssociata.getScope().getMatch());
  1011.                 if(paAssociata.getScope().sizeScopeList()>0) {
  1012.                     authzScope = new ArrayList<>();
  1013.                     for (Scope scope: paAssociata.getScope().getScopeList()) {
  1014.                         authzScope.add(scope.getNome());
  1015.                     }
  1016.                 }
  1017.             }
  1018.         }
  1019.         if(paAssociata.getGestioneToken()!=null && paAssociata.getGestioneToken().getOptions()!=null) {
  1020.             Properties properties = PropertiesUtilities.convertTextToProperties(paAssociata.getGestioneToken().getOptions());
  1021.             if(properties!=null && properties.size()>0) {
  1022.                 authzTokenClaims = new ArrayList<>();
  1023.                 for (Object key : properties.keySet()) {
  1024.                     if(key instanceof String) {
  1025.                         authzTokenClaims.add((String)key);
  1026.                     }
  1027.                 }
  1028.                 Collections.sort(authzTokenClaims);
  1029.             }
  1030.         }
  1031.        
  1032.         printConfigurazioneControlloAccessi(consoleHelper, soggettiCore, false,
  1033.                 protocollo,
  1034.                 paAssociata.getGestioneToken(),
  1035.                 paAssociata.getAutenticazione(), paAssociata.getAutenticazioneOpzionale(), paAssociata.getProprietaAutenticazioneList(),
  1036.                 paAssociata.getAttributeAuthorityList(),
  1037.                 paAssociata.getAutorizzazione(), authzSoggetti, authzApplicativi,
  1038.                 authzRuoli, allRuoli,
  1039.                 authzApplicativiTokenEnabled, authzApplicativiToken,
  1040.                 authzRuoliTokenEnabled, authzRuoliToken, allRuoliToken,
  1041.                 authzScopeTokenEnabled, authzScope, allScope,
  1042.                 authzTokenClaims,
  1043.                 paAssociata.getAutorizzazioneContenuto(),
  1044.                 sb,
  1045.                 separator, newLine);
  1046.     }
  1047.    
  1048.     private static void printConfigurazioneControlloAccessiFruizione(ConsoleHelper consoleHelper, SoggettiCore soggettiCore, String protocollo,
  1049.             PortaDelegata pdAssociata,
  1050.             StringBuilder sb,
  1051.             String separator, String newLine) {
  1052.         // Controllo Accessi
  1053.         List<IDSoggetto> authzSoggetti = null;
  1054.         List<IDServizioApplicativo> authzApplicativi = null;
  1055.         List<String> authzRuoli = null;
  1056.         boolean allRuoli = false;
  1057.         boolean authzApplicativiTokenEnabled = false;
  1058.         List<IDServizioApplicativo> authzApplicativiToken = null;
  1059.         boolean authzRuoliTokenEnabled = false;
  1060.         List<String> authzRuoliToken = null;
  1061.         boolean allRuoliToken = false;
  1062.         boolean authzScopeTokenEnabled = false;
  1063.         List<String> authzScope = null;
  1064.         boolean allScope = false;
  1065.         List<String> authzTokenClaims = null;
  1066.         if(pdAssociata.getServizioApplicativoList()!=null && pdAssociata.sizeServizioApplicativoList()>0) {
  1067.             authzApplicativi = new ArrayList<IDServizioApplicativo>();
  1068.             for (PortaDelegataServizioApplicativo sa : pdAssociata.getServizioApplicativoList()) {
  1069.                 IDServizioApplicativo idSA = new IDServizioApplicativo();
  1070.                 idSA.setIdSoggettoProprietario(new IDSoggetto(pdAssociata.getTipoSoggettoProprietario(), pdAssociata.getNomeSoggettoProprietario()));
  1071.                 idSA.setNome(sa.getNome());
  1072.                 authzApplicativi.add(idSA);
  1073.             }
  1074.         }
  1075.         if(pdAssociata.getRuoli()!=null) {
  1076.             allRuoli = pdAssociata.getRuoli().getMatch()==null || RuoloTipoMatch.ALL.equals(pdAssociata.getRuoli().getMatch());
  1077.         }
  1078.         if(pdAssociata.getRuoli()!=null && pdAssociata.getRuoli().sizeRuoloList()>0) {
  1079.             authzRuoli = new ArrayList<>();
  1080.             for (Ruolo ruolo: pdAssociata.getRuoli().getRuoloList()) {
  1081.                 authzRuoli.add(ruolo.getNome());
  1082.             }
  1083.         }
  1084.         if(pdAssociata.getAutorizzazioneToken()!=null) {
  1085.             authzApplicativiTokenEnabled = StatoFunzionalita.ABILITATO.equals(pdAssociata.getAutorizzazioneToken().getAutorizzazioneApplicativi());
  1086.             if(authzApplicativiTokenEnabled) {
  1087.                 if(pdAssociata.getAutorizzazioneToken().getServiziApplicativi()!=null && pdAssociata.getAutorizzazioneToken().getServiziApplicativi().sizeServizioApplicativoList()>0) {
  1088.                     authzApplicativiToken = new ArrayList<IDServizioApplicativo>();
  1089.                     for (PortaDelegataServizioApplicativo sa : pdAssociata.getAutorizzazioneToken().getServiziApplicativi().getServizioApplicativoList()) {
  1090.                         IDServizioApplicativo idSA = new IDServizioApplicativo();
  1091.                         idSA.setIdSoggettoProprietario(new IDSoggetto(pdAssociata.getTipoSoggettoProprietario(), pdAssociata.getNomeSoggettoProprietario()));
  1092.                         idSA.setNome(sa.getNome());
  1093.                         authzApplicativiToken.add(idSA);
  1094.                     }
  1095.                 }
  1096.             }
  1097.             authzRuoliTokenEnabled = StatoFunzionalita.ABILITATO.equals(pdAssociata.getAutorizzazioneToken().getAutorizzazioneRuoli());
  1098.             if(authzRuoliTokenEnabled) {
  1099.                 if(pdAssociata.getAutorizzazioneToken().getRuoli()!=null) {
  1100.                     allRuoliToken = pdAssociata.getAutorizzazioneToken().getRuoli().getMatch()==null || RuoloTipoMatch.ALL.equals(pdAssociata.getAutorizzazioneToken().getRuoli().getMatch());
  1101.                 }
  1102.                 if(pdAssociata.getAutorizzazioneToken().getRuoli()!=null && pdAssociata.getAutorizzazioneToken().getRuoli().sizeRuoloList()>0) {
  1103.                     authzRuoliToken = new ArrayList<>();
  1104.                     for (Ruolo ruolo: pdAssociata.getAutorizzazioneToken().getRuoli().getRuoloList()) {
  1105.                         authzRuoliToken.add(ruolo.getNome());
  1106.                     }
  1107.                 }
  1108.             }
  1109.         }
  1110.         if(pdAssociata.getScope()!=null) {
  1111.             authzScopeTokenEnabled = StatoFunzionalita.ABILITATO.equals(pdAssociata.getScope().getStato());
  1112.             if(authzScopeTokenEnabled) {
  1113.                 allScope = pdAssociata.getScope().getMatch()==null || ScopeTipoMatch.ALL.equals(pdAssociata.getScope().getMatch());
  1114.                 if(pdAssociata.getScope().sizeScopeList()>0) {
  1115.                     authzScope = new ArrayList<>();
  1116.                     for (Scope scope: pdAssociata.getScope().getScopeList()) {
  1117.                         authzScope.add(scope.getNome());
  1118.                     }
  1119.                 }
  1120.             }
  1121.         }
  1122.         if(pdAssociata.getGestioneToken()!=null && pdAssociata.getGestioneToken().getOptions()!=null) {
  1123.             Properties properties = PropertiesUtilities.convertTextToProperties(pdAssociata.getGestioneToken().getOptions());
  1124.             if(properties!=null && properties.size()>0) {
  1125.                 authzTokenClaims = new ArrayList<>();
  1126.                 for (Object key : properties.keySet()) {
  1127.                     if(key!=null && key instanceof String) {
  1128.                         authzTokenClaims.add((String)key);
  1129.                     }
  1130.                 }
  1131.                 Collections.sort(authzTokenClaims);
  1132.             }
  1133.         }
  1134.        
  1135.         printConfigurazioneControlloAccessi(consoleHelper, soggettiCore, true,
  1136.                 protocollo,
  1137.                 pdAssociata.getGestioneToken(),
  1138.                 pdAssociata.getAutenticazione(), pdAssociata.getAutenticazioneOpzionale(), pdAssociata.getProprietaAutenticazioneList(),
  1139.                 pdAssociata.getAttributeAuthorityList(),
  1140.                 pdAssociata.getAutorizzazione(), authzSoggetti, authzApplicativi,
  1141.                 authzRuoli, allRuoli,
  1142.                 authzApplicativiTokenEnabled, authzApplicativiToken,
  1143.                 authzRuoliTokenEnabled, authzRuoliToken, allRuoliToken,
  1144.                 authzScopeTokenEnabled, authzScope, allScope,
  1145.                 authzTokenClaims,
  1146.                 pdAssociata.getAutorizzazioneContenuto(),
  1147.                 sb,
  1148.                 separator, newLine);
  1149.     }
  1150.    
  1151.     private static void printConfigurazioneControlloAccessi(ConsoleHelper consoleHelper, SoggettiCore soggettiCore, boolean gestioneFruitore,
  1152.             String protocollo,
  1153.             GestioneToken gestioneToken,
  1154.             String autenticazioneTrasporto, StatoFunzionalita autenticazioneTrasportoOpzionale, List<Proprieta> autenticazioneProprieta,
  1155.             List<AttributeAuthority> listAA,
  1156.             String autorizzazione, List<IDSoggetto> authzSoggetti, List<IDServizioApplicativo> authzApplicativi,
  1157.             List<String> authzRuoli, boolean allRuoli,
  1158.             boolean authzApplicativiTokenEnabled, List<IDServizioApplicativo> authzApplicativiToken,
  1159.             boolean authzRuoliTokenEnabled, List<String> authzRuoliToken, boolean allRuoliToken,
  1160.             boolean authzScopeTokenEnabled, List<String> authzScope, boolean allScope,
  1161.             List<String> authzTokenClaims,
  1162.             String autorizzazioneContenuti,
  1163.             StringBuilder sb,
  1164.             String separator, String newLine) {
  1165.        
  1166.         boolean modipa = consoleHelper.isProfiloModIPA(protocollo);
  1167.        
  1168.         // Token
  1169.        
  1170.         if(gestioneToken!=null && gestioneToken.getPolicy()!=null) {
  1171.             String policy = gestioneToken.getPolicy();
  1172.            
  1173.             //sb.append(newLine);
  1174.             //sb.append("- "+CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_GESTIONE_TOKEN+" -");
  1175.            
  1176.             sb.append(newLine);
  1177.             //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_POLICY);
  1178.             sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_POLICY_LABEL_COMPLETA);
  1179.             sb.append(separator);
  1180.             sb.append(policy);
  1181.            
  1182.             if(StatoFunzionalita.ABILITATO.equals(gestioneToken.getTokenOpzionale())) {
  1183.                 sb.append(newLine);
  1184.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_OPZIONALE);
  1185.                 sb.append(separator);
  1186.                 sb.append(gestioneToken.getTokenOpzionale());
  1187.             }
  1188.            
  1189.             StringBuilder bf = new StringBuilder();
  1190.             if(StatoFunzionalitaConWarning.ABILITATO.equals(gestioneToken.getValidazione()) || StatoFunzionalitaConWarning.WARNING_ONLY.equals(gestioneToken.getValidazione())) {
  1191.                 if(bf.length()>0) {
  1192.                     bf.append(", ");
  1193.                 }
  1194.                 bf.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_VALIDAZIONE_INPUT);
  1195.                 if(StatoFunzionalitaConWarning.WARNING_ONLY.equals(gestioneToken.getValidazione())) {
  1196.                     bf.append(" [WarningOnly]");
  1197.                 }
  1198.             }
  1199.             if(StatoFunzionalitaConWarning.ABILITATO.equals(gestioneToken.getIntrospection()) || StatoFunzionalitaConWarning.WARNING_ONLY.equals(gestioneToken.getIntrospection())) {
  1200.                 if(bf.length()>0) {
  1201.                     bf.append(", ");
  1202.                 }
  1203.                 bf.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_INTROSPECTION);
  1204.                 if(StatoFunzionalitaConWarning.WARNING_ONLY.equals(gestioneToken.getIntrospection())) {
  1205.                     bf.append(" [WarningOnly]");
  1206.                 }
  1207.             }
  1208.             if(StatoFunzionalitaConWarning.ABILITATO.equals(gestioneToken.getUserInfo()) || StatoFunzionalitaConWarning.WARNING_ONLY.equals(gestioneToken.getUserInfo())) {
  1209.                 if(bf.length()>0) {
  1210.                     bf.append(", ");
  1211.                 }
  1212.                 bf.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_USERINFO);
  1213.                 if(StatoFunzionalitaConWarning.WARNING_ONLY.equals(gestioneToken.getUserInfo())) {
  1214.                     bf.append(" [WarningOnly]");
  1215.                 }
  1216.             }
  1217.             if(StatoFunzionalita.ABILITATO.equals(gestioneToken.getForward())) {
  1218.                 if(bf.length()>0) {
  1219.                     bf.append(", ");
  1220.                 }
  1221.                 bf.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_GESTIONE_TOKEN_TOKEN_FORWARD);
  1222.             }
  1223.                
  1224.             if(bf.length()>0) {
  1225.                 sb.append(newLine);
  1226.                 //sb.append("Configurazione");
  1227.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_MODALITA_GESTIONE_TOKEN);
  1228.                 sb.append(separator);
  1229.                 sb.append(bf.toString());
  1230.             }
  1231.            
  1232.             GestioneTokenAutenticazione gestioneTokenAutenticazione = gestioneToken.getAutenticazione();
  1233.             if(gestioneTokenAutenticazione!=null) {
  1234.                 StringBuilder bfAuth = new StringBuilder();
  1235.                 if(StatoFunzionalita.ABILITATO.equals(gestioneTokenAutenticazione.getIssuer())) {
  1236.                     if(bfAuth.length()>0) {
  1237.                         bfAuth.append(", ");
  1238.                     }
  1239.                     bfAuth.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_ISSUER);
  1240.                 }
  1241.                 if(StatoFunzionalita.ABILITATO.equals(gestioneTokenAutenticazione.getSubject())) {
  1242.                     if(bfAuth.length()>0) {
  1243.                         bfAuth.append(", ");
  1244.                     }
  1245.                     bfAuth.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_SUBJECT);
  1246.                 }
  1247.                 if(StatoFunzionalita.ABILITATO.equals(gestioneTokenAutenticazione.getClientId())) {
  1248.                     if(bfAuth.length()>0) {
  1249.                         bfAuth.append(", ");
  1250.                     }
  1251.                     bfAuth.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_CLIENT_ID);
  1252.                 }
  1253.                 if(StatoFunzionalita.ABILITATO.equals(gestioneTokenAutenticazione.getUsername())) {
  1254.                     if(bfAuth.length()>0) {
  1255.                         bfAuth.append(", ");
  1256.                     }
  1257.                     bfAuth.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_USERNAME);
  1258.                 }
  1259.                 if(StatoFunzionalita.ABILITATO.equals(gestioneTokenAutenticazione.getEmail())) {
  1260.                     if(bfAuth.length()>0) {
  1261.                         bfAuth.append(", ");
  1262.                     }
  1263.                     bfAuth.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_MAIL);
  1264.                 }
  1265.                
  1266.                 if(bfAuth.length()>0) {
  1267.                     sb.append(newLine);
  1268.                     //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTENTICAZIONE);
  1269.                     sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_GESTIONE_TOKEN);
  1270.                     sb.append(separator);
  1271.                     sb.append(bfAuth.toString());
  1272.                 }
  1273.             }
  1274.         }
  1275.        
  1276.         // Autenticazione Trasporto
  1277.         if(autenticazioneTrasporto!=null) {
  1278.            
  1279.             //sb.append(newLine);
  1280.             String label = null;
  1281.             if(modipa && !gestioneFruitore) {
  1282.                 label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTENTICAZIONE+" "+CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTENTICAZIONE_CANALE;
  1283.             }
  1284.             else {
  1285.                 label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTENTICAZIONE+" "+CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTENTICAZIONE_TRASPORTO;
  1286.             }
  1287.             //sb.append("- "+label+" -");
  1288.            
  1289.             sb.append(newLine);
  1290.             //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE);
  1291.             sb.append(label);
  1292.             sb.append(separator);
  1293.             TipoAutenticazione tipoAutenticazione = TipoAutenticazione.toEnumConstant(autenticazioneTrasporto);
  1294.             if(TipoAutenticazione.PRINCIPAL.equals(tipoAutenticazione)) {
  1295.                 TipoAutenticazionePrincipal autenticazionePrincipal = consoleHelper.getCore().getTipoAutenticazionePrincipal(autenticazioneProprieta);
  1296.                 sb.append(tipoAutenticazione.getLabel()).append(" - ").append(autenticazionePrincipal.getLabel());  
  1297.             }
  1298.             else if(TipoAutenticazione.APIKEY.equals(tipoAutenticazione)) {
  1299.                 String appIdV = getProprieta(ParametriAutenticazioneApiKey.APP_ID, autenticazioneProprieta);
  1300.                 boolean appId = ServletUtils.isCheckBoxEnabled(appIdV);
  1301.                 if(appId) {
  1302.                     sb.append(tipoAutenticazione.getLabel()).append(" + ").append("app-id");
  1303.                 }
  1304.                 else {
  1305.                     sb.append(tipoAutenticazione.getLabel());
  1306.                 }
  1307.             }
  1308.             else {
  1309.                 if(tipoAutenticazione!=null) {
  1310.                     sb.append(tipoAutenticazione.getLabel());
  1311.                 }
  1312.                 else {
  1313.                     try {
  1314.                         ConfigurazioneCore confCore = new ConfigurazioneCore(consoleHelper.getCore());
  1315.                         Plugin p = confCore.getPlugin(TipoPlugin.AUTENTICAZIONE, autenticazioneTrasporto, false);
  1316.                         if(p!=null) {
  1317.                             sb.append(p.getLabel());
  1318.                         }
  1319.                         else {
  1320.                             sb.append(autenticazioneTrasporto);
  1321.                         }
  1322.                     }catch(Throwable t) {
  1323.                         sb.append(autenticazioneTrasporto);
  1324.                     }
  1325.                 }
  1326.             }
  1327.                        
  1328.             if(StatoFunzionalita.ABILITATO.equals(autenticazioneTrasportoOpzionale)) {
  1329.                 sb.append(newLine);
  1330.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTENTICAZIONE+" "+CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTENTICAZIONE_OPZIONALE);
  1331.                 sb.append(separator);
  1332.                 sb.append(autenticazioneTrasportoOpzionale);
  1333.             }
  1334.         }
  1335.        
  1336.         // AttributeAuthority (attributi)
  1337.        
  1338.         if(listAA!=null && listAA.size()>0) {
  1339.             StringBuilder sbAA = new StringBuilder();
  1340.             for (AttributeAuthority aa : listAA) {
  1341.                 if(sbAA.length()>0) {
  1342.                     sbAA.append(", ");
  1343.                 }
  1344.                 sbAA.append(aa.getNome());
  1345.             }
  1346.             if(sbAA.length()>0) {
  1347.                
  1348.                 //sb.append(newLine);
  1349.                 //sb.append("- "+CostantiControlStation.LABEL_PARAMETRO_PORTE_ATTRIBUTI_TITLE+" -");
  1350.                                
  1351.                 sb.append(newLine);
  1352.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_ATTRIBUTI_AUTHORITY);
  1353.                 sb.append(separator);
  1354.                 sb.append(sbAA.toString());
  1355.             }
  1356.         }
  1357.        
  1358.         // Autorizzazione Trasporto
  1359.         if(autorizzazione!=null) {
  1360.            
  1361.             //sb.append(newLine);
  1362.             String label = null;
  1363.             if(modipa && !gestioneFruitore) {
  1364.                 label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_CANALE;
  1365.             }
  1366.             else {
  1367.                 if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())
  1368.                         ||
  1369.                         autorizzazione.toLowerCase().contains(TipoAutorizzazione.AUTHENTICATED.getValue().toLowerCase())){
  1370.                     label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_TRASPORTO;
  1371.                 }
  1372.                 else {
  1373.                     label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_DIFFERENTE_DA_TRASPORTO_E_TOKEN;
  1374.                 }
  1375.             }
  1376.             //sb.append("- "+label+" -");
  1377.            
  1378.             String value = null;
  1379.             if(CostantiConfigurazione.AUTORIZZAZIONE_NONE.equals(autorizzazione)){
  1380.                 value = CostantiConfigurazione.DISABILITATO.getValue();
  1381.             }
  1382.             else if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.XACML_POLICY.getValue().toLowerCase())){
  1383.                 value = TipoAutorizzazione.XACML_POLICY.getValue();
  1384.             }
  1385.             else if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())
  1386.                     ||
  1387.                     autorizzazione.toLowerCase().contains(TipoAutorizzazione.AUTHENTICATED.getValue().toLowerCase())){
  1388.                 value = CostantiConfigurazione.ABILITATO.getValue();
  1389.                 value = value + " (";
  1390.                 if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.AUTHENTICATED.getValue().toLowerCase())) {
  1391.                     value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_SERVIZI_APPLICATIVI_SUFFIX;
  1392.                     if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())) {
  1393.                         value = value + ", ";
  1394.                     }
  1395.                 }
  1396.                 if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())) {
  1397.                     value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_RUOLI_SUFFIX;
  1398.                 }
  1399.                 value = value + ")";
  1400.             }
  1401.             else{
  1402.                 try {
  1403.                     ConfigurazioneCore confCore = new ConfigurazioneCore(consoleHelper.getCore());
  1404.                     Plugin p = confCore.getPlugin(TipoPlugin.AUTORIZZAZIONE, autorizzazione, false);
  1405.                     if(p!=null) {
  1406.                         value = p.getLabel();
  1407.                     }
  1408.                     else {
  1409.                         value = autorizzazione;
  1410.                     }
  1411.                 }catch(Throwable t) {
  1412.                     value = autorizzazione;
  1413.                 }
  1414.             }
  1415.             sb.append(newLine);
  1416.             //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE);
  1417.             sb.append(label);
  1418.             sb.append(separator);
  1419.             sb.append(value);
  1420.            
  1421.             //if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.AUTHENTICATED.getValue().toLowerCase())){
  1422.             // servono anche in custom auth
  1423.             // basta che siano definiti
  1424.                
  1425.             boolean richiedentiDefiniti = false;
  1426.            
  1427.             // devo elencare i soggetti autorizzati
  1428.             if(authzSoggetti!=null && !authzSoggetti.isEmpty()) {
  1429.                 StringBuilder sbSog = new StringBuilder();
  1430.                 for (IDSoggetto soggetto : authzSoggetti) {
  1431.                     if(sbSog.length()>0) sb.append(", ");
  1432.                     try {
  1433.                         sbSog.append(consoleHelper.getLabelNomeSoggetto(protocollo, soggetto.getTipo(), soggetto.getNome()));
  1434.                     }catch(Throwable t) {
  1435.                         sbSog.append(soggetto.getTipo() +"/" +soggetto.getNome());
  1436.                     }
  1437.                 }
  1438.                 if(sbSog.toString().length()>0) {
  1439.                     sb.append(newLine);
  1440.                     sb.append(CostantiControlStation.LABEL_PARAMETRO_SOGGETTI).append(" autorizzati");
  1441.                     sb.append(separator);
  1442.                     sb.append(sbSog.toString());
  1443.                     richiedentiDefiniti=true;
  1444.                 }
  1445.             }

  1446.             // devo elencare gli applicativi autorizzati
  1447.             if(!modipa || gestioneFruitore) {
  1448.                 if(authzApplicativi!=null && !authzApplicativi.isEmpty()) {
  1449.                     StringBuilder sbApp = new StringBuilder();
  1450.                     for (IDServizioApplicativo sa : authzApplicativi) {
  1451.                         if(sbApp.length()>0) sbApp.append(", ");
  1452.                         if(gestioneFruitore) {
  1453.                             sbApp.append(sa.getNome());
  1454.                         }
  1455.                         else {
  1456.                             String sog = null;
  1457.                             try {
  1458.                                 sog = consoleHelper.getLabelNomeSoggetto(protocollo, sa.getIdSoggettoProprietario().getTipo(), sa.getIdSoggettoProprietario().getNome());
  1459.                             }catch(Throwable t) {
  1460.                                 sog = sa.getIdSoggettoProprietario().getTipo()+"/"+sa.getIdSoggettoProprietario().getNome();
  1461.                             }
  1462.                             sbApp.append(sa.getNome() + "@"+sog+"");
  1463.                         }
  1464.                     }
  1465.                     if(sbApp.toString().length()>0) {
  1466.                         sb.append(newLine);
  1467.                         sb.append(CostantiControlStation.LABEL_APPLICATIVI).append(" autorizzati");
  1468.                         sb.append(separator);
  1469.                         sb.append(sbApp.toString());
  1470.                         richiedentiDefiniti=true;
  1471.                     }
  1472.                 }
  1473.             }
  1474.            
  1475.             if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.AUTHENTICATED.getValue().toLowerCase()) && !richiedentiDefiniti) {
  1476.                 sb.append(newLine);
  1477.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_RICHIEDENTI).append(" autorizzati");
  1478.                 sb.append(separator);
  1479.                 sb.append("-");
  1480.             }
  1481.                
  1482.             //if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())){
  1483.             // servono anche in xacml policy.
  1484.             // comunque basta che siano definiti
  1485.             if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())
  1486.                     ||
  1487.                     autorizzazione.toLowerCase().contains(TipoAutorizzazione.XACML_POLICY.getValue().toLowerCase())) {
  1488.                 StringBuilder sbRuoli = new StringBuilder();
  1489.                 if(authzRuoli!=null && !authzRuoli.isEmpty()){
  1490.                     for (String ruolo : authzRuoli) {
  1491.                         if(sbRuoli.length()>0) sbRuoli.append(", ");
  1492.                         sbRuoli.append(ruolo);
  1493.                     }
  1494.                 }
  1495.                 else {
  1496.                     if(autorizzazione.toLowerCase().contains(TipoAutorizzazione.ROLES.getValue().toLowerCase())) {
  1497.                         sbRuoli.append("-");
  1498.                     }
  1499.                 }
  1500.                 if(sbRuoli.toString().length()>0) {
  1501.                     sb.append(newLine);
  1502.                     sb.append(RuoliCostanti.LABEL_RUOLI).append(" (").
  1503.                         append(allRuoli ? CostantiControlStation.LABEL_PARAMETRO_RUOLO_MATCH_ALL : CostantiControlStation.LABEL_PARAMETRO_RUOLO_MATCH_ANY).
  1504.                         append(")");
  1505.                     sb.append(separator);
  1506.                     sb.append(sbRuoli.toString());
  1507.                 }
  1508.             }
  1509.             //}
  1510.            
  1511.             if(modipa && !gestioneFruitore) {
  1512.                
  1513.                 // backwardCompatibility
  1514.                 if(!authzApplicativiTokenEnabled &&
  1515.                     authzApplicativi!=null && !authzApplicativi.isEmpty()) {
  1516.                     authzApplicativiTokenEnabled = true;
  1517.                 }
  1518.                
  1519.                 boolean autorizzazioneMessaggio = (authzApplicativiTokenEnabled)
  1520.                         ||
  1521.                         (authzRuoliTokenEnabled);
  1522.                
  1523.                 if(autorizzazioneMessaggio) {
  1524.                     label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_MESSAGGIO;
  1525.                     value = CostantiConfigurazione.ABILITATO.getValue();
  1526.                     value = value + " (";
  1527.                     boolean first = true;
  1528.                     if(authzApplicativiTokenEnabled) {
  1529.                         if(!first) {
  1530.                             value = value + ", ";
  1531.                         }
  1532.                         value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_SERVIZI_APPLICATIVI_SUFFIX;
  1533.                         first=false;
  1534.                     }
  1535.                     if(authzRuoliTokenEnabled) {
  1536.                         if(!first) {
  1537.                             value = value + ", ";
  1538.                         }
  1539.                         value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_RUOLI_SUFFIX;
  1540.                         first=false;
  1541.                     }
  1542.                     value = value + ")";
  1543.                     sb.append(newLine);
  1544.                     //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE);
  1545.                     sb.append(label);
  1546.                     sb.append(separator);
  1547.                     sb.append(value);
  1548.                 }
  1549.             }
  1550.             else {
  1551.                            
  1552.                 boolean autorizzazioneToken = (authzApplicativiTokenEnabled)
  1553.                         ||
  1554.                         (authzRuoliTokenEnabled)
  1555.                         ||
  1556.                         (authzScopeTokenEnabled)
  1557.                         ||
  1558.                         (authzTokenClaims!=null && !authzTokenClaims.isEmpty());
  1559.                
  1560.                 if(autorizzazioneToken) {
  1561.                     label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_TOKEN;
  1562.                     value = CostantiConfigurazione.ABILITATO.getValue();
  1563.                     value = value + " (";
  1564.                     boolean first = true;
  1565.                     if(authzApplicativiTokenEnabled) {
  1566.                         if(!first) {
  1567.                             value = value + ", ";
  1568.                         }
  1569.                         value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_SERVIZI_APPLICATIVI_SUFFIX;
  1570.                         first=false;
  1571.                     }
  1572.                     if(authzRuoliTokenEnabled) {
  1573.                         if(!first) {
  1574.                             value = value + ", ";
  1575.                         }
  1576.                         value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_RUOLI_SUFFIX;
  1577.                         first=false;
  1578.                     }
  1579.                     if(authzScopeTokenEnabled) {
  1580.                         if(!first) {
  1581.                             value = value + ", ";
  1582.                         }
  1583.                         value = value + ScopeCostanti.LABEL_SCOPE;
  1584.                         first=false;
  1585.                     }
  1586.                     if(authzTokenClaims!=null && !authzTokenClaims.isEmpty()) {
  1587.                         if(!first) {
  1588.                             value = value + ", ";
  1589.                         }
  1590.                         value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_TOKEN_CLAIMS_SUBTITLE_SUFFIX;
  1591.                         first=false;
  1592.                     }
  1593.                     value = value + ")";
  1594.                     sb.append(newLine);
  1595.                     //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE);
  1596.                     sb.append(label);
  1597.                     sb.append(separator);
  1598.                     sb.append(value);
  1599.                 }
  1600.             }
  1601.                    
  1602.             if(authzApplicativiTokenEnabled) {
  1603.                 StringBuilder sbApp = new StringBuilder();
  1604.                 List<IDServizioApplicativo> ll = authzApplicativiToken;
  1605.                 if(modipa && !gestioneFruitore) {
  1606.                     ll = authzApplicativi;
  1607.                 }
  1608.                 if(ll!=null && !ll.isEmpty()) {
  1609.                     for (IDServizioApplicativo sa : ll) {
  1610.                         if(sbApp.length()>0) sbApp.append(", ");
  1611.                         if(gestioneFruitore) {
  1612.                             sbApp.append(sa.getNome());
  1613.                         }
  1614.                         else {
  1615.                             String sog = null;
  1616.                             try {
  1617.                                 sog = consoleHelper.getLabelNomeSoggetto(protocollo, sa.getIdSoggettoProprietario().getTipo(), sa.getIdSoggettoProprietario().getNome());
  1618.                             }catch(Throwable t) {
  1619.                                 sog = sa.getIdSoggettoProprietario().getTipo()+"/"+sa.getIdSoggettoProprietario().getNome();
  1620.                             }
  1621.                             sbApp.append(sa.getNome() + "@"+sog+"");
  1622.                         }
  1623.                     }
  1624.                 }
  1625.                 else {
  1626.                     sbApp.append("-");
  1627.                 }
  1628.                 if(sbApp.toString().length()>0) {
  1629.                     sb.append(newLine);
  1630.                     sb.append(CostantiControlStation.LABEL_APPLICATIVI).append(" autorizzati");
  1631.                     sb.append(separator);
  1632.                     sb.append(sbApp.toString());
  1633.                 }
  1634.             }
  1635.            
  1636.             if(authzRuoliTokenEnabled){
  1637.                 StringBuilder sbRuoli = new StringBuilder();
  1638.                 if(authzRuoliToken!=null && !authzRuoliToken.isEmpty()){
  1639.                     for (String ruolo : authzRuoliToken) {
  1640.                         if(sbRuoli.length()>0) sbRuoli.append(", ");
  1641.                         sbRuoli.append(ruolo);
  1642.                     }
  1643.                 }
  1644.                 else {
  1645.                     sbRuoli.append("-");
  1646.                 }
  1647.                 if(sbRuoli.toString().length()>0) {
  1648.                     sb.append(newLine);
  1649.                     sb.append(RuoliCostanti.LABEL_RUOLI).append(" (").
  1650.                         append(allRuoliToken ? CostantiControlStation.LABEL_PARAMETRO_RUOLO_MATCH_ALL : CostantiControlStation.LABEL_PARAMETRO_RUOLO_MATCH_ANY).
  1651.                         append(")");
  1652.                     sb.append(separator);
  1653.                     sb.append(sbRuoli.toString());
  1654.                 }
  1655.             }
  1656.            
  1657.             if(modipa && !gestioneFruitore) {
  1658.                 boolean autorizzazioneToken = (authzScopeTokenEnabled)
  1659.                         ||
  1660.                         (authzTokenClaims!=null && !authzTokenClaims.isEmpty());
  1661.                
  1662.                 if(autorizzazioneToken) {
  1663.                     label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_TOKEN;
  1664.                     value = CostantiConfigurazione.ABILITATO.getValue();
  1665.                     value = value + " (";
  1666.                     boolean first = true;
  1667.                     if(authzScopeTokenEnabled) {
  1668.                         if(!first) {
  1669.                             value = value + ", ";
  1670.                         }
  1671.                         value = value + ScopeCostanti.LABEL_SCOPE;
  1672.                         first=false;
  1673.                     }
  1674.                     if(authzTokenClaims!=null && !authzTokenClaims.isEmpty()) {
  1675.                         if(!first) {
  1676.                             value = value + ", ";
  1677.                         }
  1678.                         value = value + CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_TOKEN_CLAIMS_SUBTITLE_SUFFIX;
  1679.                         first=false;
  1680.                     }
  1681.                     value = value + ")";
  1682.                     sb.append(newLine);
  1683.                     //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE);
  1684.                     sb.append(label);
  1685.                     sb.append(separator);
  1686.                     sb.append(value);
  1687.                 }
  1688.             }
  1689.            
  1690.             if(authzScopeTokenEnabled){
  1691.                 StringBuilder sbScope = new StringBuilder();
  1692.                 if(authzScope!=null && !authzScope.isEmpty()){
  1693.                     for (String scope : authzScope) {
  1694.                         if(sbScope.length()>0) sbScope.append(", ");
  1695.                         sbScope.append(scope);
  1696.                     }
  1697.                 }
  1698.                 else {
  1699.                     sbScope.append("-");
  1700.                 }
  1701.                 if(sbScope.toString().length()>0) {
  1702.                     sb.append(newLine);
  1703.                     sb.append(ScopeCostanti.LABEL_SCOPE).append(" (").
  1704.                         append(allScope ? CostantiControlStation.LABEL_PARAMETRO_SCOPE_MATCH_ALL : CostantiControlStation.LABEL_PARAMETRO_SCOPE_MATCH_ANY).
  1705.                         append(")");
  1706.                     sb.append(separator);
  1707.                     sb.append(sbScope.toString());
  1708.                 }
  1709.             }
  1710.            
  1711.             if(authzTokenClaims!=null && !authzTokenClaims.isEmpty()){
  1712.                 StringBuilder sbTokenClaims = new StringBuilder();
  1713.                 for (String claim : authzTokenClaims) {
  1714.                     if(sbTokenClaims.length()>0) sbTokenClaims.append(", ");
  1715.                     sbTokenClaims.append(claim);
  1716.                 }
  1717.                 if(sbTokenClaims.toString().length()>0) {
  1718.                     sb.append(newLine);
  1719.                     sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE_TOKEN_CLAIMS_SUBTITLE_SUFFIX);
  1720.                     sb.append(separator);
  1721.                     sb.append(sbTokenClaims.toString());
  1722.                 }
  1723.             }
  1724.         }
  1725.                
  1726.         // Autorizzazione Contenuti
  1727.         if(autorizzazioneContenuti!=null && !CostantiConfigurazione.AUTORIZZAZIONE_NONE.equals(autorizzazioneContenuti)){
  1728.            
  1729.             //sb.append(newLine);
  1730.             String label = CostantiControlStation.LABEL_PARAMETRO_PORTE_CONTROLLO_ACCESSI_AUTORIZZAZIONE_CONTENUTI;
  1731.             //sb.append("- "+label+" -");
  1732.            
  1733.             sb.append(newLine);
  1734.             //sb.append(CostantiControlStation.LABEL_PARAMETRO_PORTE_AUTORIZZAZIONE);
  1735.             sb.append(label);
  1736.             sb.append(separator);
  1737.             if(CostantiAutorizzazione.AUTORIZZAZIONE_CONTENUTO_BUILT_IN.equals(autorizzazioneContenuti)){
  1738.                 sb.append(CostantiConfigurazione.ABILITATO.getValue());
  1739.             }
  1740.             else {
  1741.                 try {
  1742.                     ConfigurazioneCore confCore = new ConfigurazioneCore(consoleHelper.getCore());
  1743.                     Plugin p = confCore.getPlugin(TipoPlugin.AUTORIZZAZIONE_CONTENUTI, autorizzazioneContenuti, false);
  1744.                     if(p!=null) {
  1745.                         sb.append(p.getLabel());
  1746.                     }
  1747.                     else {
  1748.                         sb.append(autorizzazioneContenuti);
  1749.                     }
  1750.                 }catch(Throwable t) {
  1751.                     sb.append(autorizzazioneContenuti);
  1752.                 }
  1753.             }
  1754.         }
  1755.     }
  1756.    
  1757.     private static void printConfigurazioneRateLimiting(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1758.             boolean gestioneFruitore, String nomePorta,
  1759.             StringBuilder sb,
  1760.             String separator, String newLine) throws Exception {
  1761.         ConsoleSearch searchPolicy = new ConsoleSearch(true);
  1762.         ConfigurazioneCore confCore = new ConfigurazioneCore(soggettiCore);
  1763.         List<AttivazionePolicy> listaPolicy = confCore.attivazionePolicyList(searchPolicy,
  1764.                 gestioneFruitore ? RuoloPolicy.DELEGATA : RuoloPolicy.APPLICATIVA, nomePorta);
  1765.         if(listaPolicy!=null && !listaPolicy.isEmpty()) {
  1766.             DataElement de = new DataElement();
  1767.             consoleHelper.setStatoRateLimiting(de, listaPolicy, false);
  1768.             printConfigurazioneFromStatusValues(de, ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_RATE_LIMITING,
  1769.                     sb,
  1770.                     separator, newLine);
  1771.         }
  1772.     }
  1773.    
  1774.     private static void printConfigurazioneValidazioneContenutiApplicativi(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1775.             AccordoServizioParteComune aspc, ValidazioneContenutiApplicativi validazioneContenutiApplicativi,
  1776.             StringBuilder sb,
  1777.             String separator, String newLine) throws Exception {
  1778.         if(validazioneContenutiApplicativi!=null) {
  1779.             if(StatoFunzionalitaConWarning.ABILITATO.equals(validazioneContenutiApplicativi.getStato()) || StatoFunzionalitaConWarning.WARNING_ONLY.equals(validazioneContenutiApplicativi.getStato())) {
  1780.                 String value = null;
  1781.                 switch (validazioneContenutiApplicativi.getTipo()) {
  1782.                 case INTERFACE:
  1783.                     switch (aspc.getFormatoSpecifica()) {
  1784.                     case OPEN_API_3:
  1785.                         value=CostantiControlStation.LABEL_PARAMETRO_INTERFACE_TYPE_OPEN_API_3;
  1786.                         break;
  1787.                     case SWAGGER_2:
  1788.                         value=CostantiControlStation.LABEL_PARAMETRO_INTERFACE_TYPE_SWAGGER_2;
  1789.                         break;
  1790.                     case WADL:
  1791.                         value=CostantiControlStation.LABEL_PARAMETRO_INTERFACE_TYPE_WADL;
  1792.                         break;
  1793.                     case WSDL_11:
  1794.                         value=CostantiControlStation.LABEL_PARAMETRO_INTERFACE_TYPE_WSDL_11;
  1795.                         break;
  1796.                     }
  1797.                     break;
  1798.                 case XSD:
  1799.                     value=CostantiControlStation.LABEL_PARAMETRO_SCHEMI_XSD;
  1800.                     break;
  1801.                 case OPENSPCOOP:
  1802.                     value=CostantiControlStation.LABEL_PARAMETRO_REGISTRO_OPENSPCOOP;
  1803.                     break;
  1804.                 }
  1805.                 if(StatoFunzionalitaConWarning.WARNING_ONLY.equals(validazioneContenutiApplicativi.getStato())) {
  1806.                     value = value + " [WarningOnly]";
  1807.                 }
  1808.                
  1809.                 if(org.openspcoop2.core.registry.constants.ServiceBinding.SOAP.equals(aspc.getServiceBinding()) &&
  1810.                         validazioneContenutiApplicativi.getAcceptMtomMessage()!=null && StatoFunzionalita.ABILITATO.equals(validazioneContenutiApplicativi.getAcceptMtomMessage())) {
  1811.                     value = value + " [Accept-MTOM]";
  1812.                 }
  1813.                
  1814.                 sb.append(newLine);
  1815.                 sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_VALIDAZIONE_CONTENUTI_APPLICATIVI);
  1816.                 sb.append(separator);
  1817.                 sb.append(value);
  1818.             }
  1819.         }
  1820.     }
  1821.    
  1822.     private static void printConfigurazioneResponseCaching(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1823.             ResponseCachingConfigurazione responseCachingConfigurazione,
  1824.             StringBuilder sb,
  1825.             String separator, String newLine) throws Exception {
  1826.         if(responseCachingConfigurazione!=null) {
  1827.             if(StatoFunzionalita.ABILITATO.equals(responseCachingConfigurazione.getStato())){
  1828.                 sb.append(newLine);
  1829.                 sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_RESPONSE_CACHING);
  1830.                 sb.append(separator);
  1831.                 sb.append(StatoFunzionalitaConWarning.ABILITATO.getValue());
  1832.             }
  1833.         }
  1834.     }
  1835.    
  1836.     private static void printConfigurazioneMessageSecurity(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1837.             MessageSecurity messageSecurity,
  1838.             StringBuilder sb,
  1839.             String separator, String newLine) throws Exception {
  1840.        
  1841.         if(messageSecurity!=null && (
  1842.                 (messageSecurity.getRequestFlow()!=null && messageSecurity.getRequestFlow().getMode()!=null)
  1843.                 ||
  1844.                 (messageSecurity.getResponseFlow()!=null && messageSecurity.getResponseFlow().getMode()!=null)
  1845.             )
  1846.         ) {
  1847.             AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(soggettiCore);
  1848.             PropertiesSourceConfiguration propertiesSourceConfiguration = apsCore.getMessageSecurityPropertiesSourceConfiguration();
  1849.             ConfigManager configManager = ConfigManager.getinstance(ControlStationCore.getLog());
  1850.             configManager.leggiConfigurazioni(propertiesSourceConfiguration, true);
  1851.             DataElement de = new DataElement();
  1852.             consoleHelper.setStatoSicurezzaMessaggio(de, messageSecurity, configManager, propertiesSourceConfiguration, false);
  1853.             printConfigurazioneFromStatusValues(de, PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_MESSAGE_SECURITY,
  1854.                     sb,
  1855.                     separator, newLine);
  1856.         }
  1857.     }
  1858.    
  1859.     private static void printConfigurazioneMTOM(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1860.             MtomProcessor mtomProcessor,
  1861.             StringBuilder sb,
  1862.             String separator, String newLine) throws Exception {
  1863.        
  1864.         if(mtomProcessor!=null && (
  1865.                 (mtomProcessor.getRequestFlow()!=null && mtomProcessor.getRequestFlow().getMode()!=null && !MTOMProcessorType.DISABLE.equals(mtomProcessor.getRequestFlow().getMode()))
  1866.                 ||
  1867.                 (mtomProcessor.getResponseFlow()!=null && mtomProcessor.getResponseFlow().getMode()!=null && !MTOMProcessorType.DISABLE.equals(mtomProcessor.getResponseFlow().getMode()))
  1868.             )
  1869.         ) {
  1870.             DataElement de = new DataElement();
  1871.             consoleHelper.setStatoMTOM(de, mtomProcessor, false);
  1872.             printConfigurazioneFromStatusValues(de, PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_MTOM_CONFIG,
  1873.                     sb,
  1874.                     separator, newLine);
  1875.         }
  1876.     }
  1877.    
  1878.     private static void printConfigurazioneTrasformazioni(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1879.             AccordoServizioParteComune aspc, Trasformazioni trasformazioni,
  1880.             StringBuilder sb,
  1881.             String separator, String newLine) throws Exception {
  1882.        
  1883.         if(trasformazioni!=null && trasformazioni.sizeRegolaList()>0) {
  1884.            
  1885.             boolean almostOneEnable = false;
  1886.             for (TrasformazioneRegola tRegola : trasformazioni.getRegolaList()) {
  1887.                 if(StatoFunzionalita.ABILITATO.equals(tRegola.getStato())){
  1888.                     almostOneEnable = true;
  1889.                     break;
  1890.                 }
  1891.             }
  1892.            
  1893.             if(almostOneEnable) {
  1894.                 DataElement de = new DataElement();
  1895.                 consoleHelper.setStatoTrasformazioni(de, trasformazioni, ServiceBinding.valueOf(aspc.getServiceBinding().name()), false);
  1896.                 printConfigurazioneFromStatusValues(de, CostantiControlStation.LABEL_CONFIGURAZIONE_TRASFORMAZIONI,
  1897.                         sb,
  1898.                         separator, newLine);
  1899.             }
  1900.         }
  1901.     }
  1902.    
  1903.     private static void printConfigurazioneTracciamento(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1904.             CorrelazioneApplicativa correlazioneApplicativa,
  1905.             CorrelazioneApplicativaRisposta correlazioneApplicativaRisposta,
  1906.             PortaTracciamento tracciamentoConfig,
  1907.             //Configurazione configurazioneGenerale,
  1908.             StringBuilder sb,
  1909.             String separator, String newLine) throws Exception {
  1910.        
  1911.         // Transazioni
  1912.         boolean ridefinito = false;
  1913.         boolean enable = false;
  1914.         if(tracciamentoConfig!=null && tracciamentoConfig.getEsiti()!=null) {
  1915.             ridefinito = true;
  1916.             enable = !(EsitiConfigUtils.TUTTI_ESITI_DISABILITATI+"").equals(tracciamentoConfig.getEsiti());
  1917.         }
  1918.         else {
  1919.             /*ridefinito = false;
  1920.             String esitiTransazioni = consoleHelper.readConfigurazioneRegistrazioneEsitiFromHttpParameters((configurazioneGenerale!=null && configurazioneGenerale.getTracciamento()!=null) ? configurazioneGenerale.getTracciamento().getEsiti() : null , true);
  1921.             enable = (
  1922.                     esitiTransazioni!=null
  1923.                     &&
  1924.                     !(EsitiConfigUtils.TUTTI_ESITI_DISABILITATI+"").equals(esitiTransazioni)
  1925.             );*/
  1926.         }
  1927.         if(ridefinito) {
  1928.             sb.append(newLine);
  1929.             sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_REGISTRAZIONE_TRANSAZIONI);
  1930.             sb.append(separator);
  1931.             sb.append(enable ? StatoFunzionalita.ABILITATO.getValue() : StatoFunzionalita.DISABILITATO.getValue());
  1932.         }
  1933.        
  1934.         // Diagnostici
  1935.         ridefinito = false;
  1936.         enable = false;
  1937.         String labelDiagnostici = null;
  1938.         if(tracciamentoConfig!=null && tracciamentoConfig.getSeverita()!=null) {
  1939.             ridefinito = true;
  1940.             labelDiagnostici = ConfigurazioneCostanti.LABEL_SEVERITA+" "+tracciamentoConfig.getSeverita().getValue();
  1941.             enable = (!LogLevels.LIVELLO_OFF.equals(tracciamentoConfig.getSeverita().getValue()));
  1942.         }
  1943.         else {
  1944.             /*ridefinito = false;
  1945.             if(configurazioneGenerale!=null && configurazioneGenerale.getMessaggiDiagnostici()!=null && configurazioneGenerale.getMessaggiDiagnostici().getSeverita()!=null) {
  1946.                 labelDiagnostici = ConfigurazioneCostanti.LABEL_SEVERITA+" "+configurazioneGenerale.getMessaggiDiagnostici().getSeverita().getValue();
  1947.             }
  1948.             enable = (
  1949.                     configurazioneGenerale!=null && configurazioneGenerale.getMessaggiDiagnostici()!=null &&
  1950.                             configurazioneGenerale.getMessaggiDiagnostici().getSeverita()!=null
  1951.                     &&
  1952.                     !(LogLevels.LIVELLO_OFF.equals(configurazioneGenerale.getMessaggiDiagnostici().getSeverita().getValue()))
  1953.                     );*/
  1954.         }
  1955.         if(ridefinito) {
  1956.             sb.append(newLine);
  1957.             sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_DIAGNOSTICI);
  1958.             sb.append(separator);
  1959.             sb.append(enable ? StatoFunzionalita.ABILITATO.getValue() + " ["+labelDiagnostici+"]" : StatoFunzionalita.DISABILITATO.getValue());
  1960.         }

  1961.         // Correlazione
  1962.         boolean isCorrelazioneApplicativaAbilitataReq = false;
  1963.         if (correlazioneApplicativa != null) {
  1964.             isCorrelazioneApplicativaAbilitataReq = correlazioneApplicativa.sizeElementoList() > 0;
  1965.         }
  1966.         boolean isCorrelazioneApplicativaAbilitataRes = false;
  1967.         if (correlazioneApplicativaRisposta != null) {
  1968.             isCorrelazioneApplicativaAbilitataRes = correlazioneApplicativaRisposta.sizeElementoList() > 0;
  1969.         }
  1970.         if(isCorrelazioneApplicativaAbilitataReq || isCorrelazioneApplicativaAbilitataRes) {
  1971.             sb.append(newLine);
  1972.             sb.append(CostantiControlStation.LABEL_PARAMETRO_CORRELAZIONE_APPLICATIVA);
  1973.             sb.append(separator);
  1974.             StringBuilder sbCor = new StringBuilder();
  1975.             if(isCorrelazioneApplicativaAbilitataReq) {
  1976.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_RICHIESTA.toLowerCase());
  1977.                 if(correlazioneApplicativa.sizeElementoList()>1) {
  1978.                     sb.append(" (").append(correlazioneApplicativa.sizeElementoList()).append(")");
  1979.                 }
  1980.             }
  1981.             if(isCorrelazioneApplicativaAbilitataRes) {
  1982.                 if(isCorrelazioneApplicativaAbilitataReq) {
  1983.                     sb.append(", ");
  1984.                 }
  1985.                 sb.append(CostantiControlStation.LABEL_PARAMETRO_RISPOSTA.toLowerCase());
  1986.                 if(correlazioneApplicativaRisposta.sizeElementoList()>1) {
  1987.                     sb.append(" (").append(correlazioneApplicativaRisposta.sizeElementoList()).append(")");
  1988.                 }
  1989.             }
  1990.             sb.append(sbCor.toString());
  1991.         }
  1992.        
  1993.     }
  1994.    
  1995.     private static void printConfigurazioneRegistrazioneMessaggi(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  1996.             DumpConfigurazione dumpConfigurazione,
  1997.             //Configurazione configurazioneGenerale = null; // non viene usato, poiche' il metodo viene chiamato solo con dumpConfigurazione diverso da null
  1998.             StringBuilder sb,
  1999.             String separator, String newLine) throws Exception {
  2000.        
  2001.         if(dumpConfigurazione!=null) {
  2002.             DataElement de = new DataElement();
  2003.             consoleHelper.setStatoDump(de, dumpConfigurazione,
  2004.                     null, //configurazioneGenerale,
  2005.                     false, false);
  2006.             printConfigurazioneFromStatusValues(de, CostantiControlStation.LABEL_REGISTRAZIONE_MESSAGGI,
  2007.                     sb,
  2008.                     separator, newLine);
  2009.         }
  2010.     }
  2011.    
  2012.     private static void printConfigurazioneAllarmi(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  2013.             boolean gestioneFruitore, String nomePorta,
  2014.             StringBuilder sb,
  2015.             String separator, String newLine) throws Exception {
  2016.         boolean visualizzaAllarmi = soggettiCore.isConfigurazioneAllarmiEnabled();
  2017.         if(visualizzaAllarmi) {
  2018.             List<ConfigurazioneAllarmeBean> listaAllarmi = null;
  2019.             ConsoleSearch searchPolicy = new ConsoleSearch(true);
  2020.             ConfigurazioneCore confCore = new ConfigurazioneCore(soggettiCore);
  2021.             listaAllarmi = confCore.allarmiList(searchPolicy, gestioneFruitore ? RuoloPorta.DELEGATA : RuoloPorta.APPLICATIVA , nomePorta);
  2022.             if(listaAllarmi!=null && !listaAllarmi.isEmpty()) {
  2023.                 DataElement de = new DataElement();
  2024.                 consoleHelper.setStatoAllarmi(de, listaAllarmi);
  2025.                 printConfigurazioneFromStatusValues(de, ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_ALLARMI,
  2026.                         sb,
  2027.                         separator, newLine);
  2028.             }
  2029.         }
  2030.     }
  2031.    
  2032.     private static void printConfigurazioneProperties(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  2033.             List<Proprieta> list,
  2034.             StringBuilder sb,
  2035.             String separator, String newLine) throws Exception {
  2036.         if(list!=null && list.size()>0) {
  2037.             StringBuilder sbProp = new StringBuilder();
  2038.             if(list.size()<=5) {
  2039.                 for (Proprieta proprieta : list) {
  2040.                     if(sbProp.length()>0) {
  2041.                         sbProp.append(", ");
  2042.                     }
  2043.                     sbProp.append(proprieta.getNome());
  2044.                     sbProp.append("=");
  2045.                     int limitValore = 30;
  2046.                     if(proprieta.getValore().length()<limitValore) {
  2047.                         sbProp.append(proprieta.getValore());
  2048.                     }
  2049.                     else {
  2050.                         sbProp.append(proprieta.getValore().substring(0, limitValore-3)+"...");
  2051.                     }
  2052.                 }
  2053.             }
  2054.             else if(list.size()<=10) {
  2055.                 for (Proprieta proprieta : list) {
  2056.                     if(sbProp.length()>0) {
  2057.                         sbProp.append(", ");
  2058.                     }
  2059.                     sbProp.append(proprieta.getNome());
  2060.                 }
  2061.             }
  2062.             else {
  2063.                 sbProp.append(StatoFunzionalita.ABILITATO.getValue()).append(" (").append(list.size()).append(")");
  2064.             }
  2065.             sb.append(newLine);
  2066.             sb.append(ConfigurazioneCostanti.LABEL_CONFIGURAZIONE_PROPRIETA_LABEL2);
  2067.             sb.append(separator);
  2068.             sb.append(sbProp.toString());
  2069.         }
  2070.     }
  2071.    
  2072.     private static void printConfigurazioneAltro(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  2073.             String protocollo, AccordoServizioParteComune aspc,
  2074.             StatoFunzionalita allegaBody, StatoFunzionalita scartaBody,
  2075.             String integrazione, String behaviour,
  2076.             List<Proprieta> proprietaRateLimiting,
  2077.             StatoFunzionalita stateless, PortaDelegataLocalForward localForward,
  2078.             StatoFunzionalita ricevutaAsincronaSimmetrica, StatoFunzionalita ricevutaAsincronaAsimmetrica,
  2079.             StatoFunzionalita gestioneManifest, ConfigurazionePortaHandler configPortaHandler,
  2080.             StringBuilder sb,
  2081.             String separator, String newLine) throws Exception {
  2082.         DataElement de = new DataElement();
  2083.         consoleHelper.setStatoOpzioniAvanzate(de,
  2084.                 protocollo, ServiceBinding.valueOf(aspc.getServiceBinding().name()),
  2085.                 allegaBody, scartaBody,
  2086.                 integrazione, behaviour,
  2087.                 proprietaRateLimiting,
  2088.                 stateless, localForward,
  2089.                 ricevutaAsincronaSimmetrica, ricevutaAsincronaAsimmetrica,
  2090.                 gestioneManifest, configPortaHandler,
  2091.                 false);
  2092.         List<String> l = de.getStatusValuesAsList();
  2093.         boolean print = false;
  2094.         if(l!=null && !l.isEmpty()) {
  2095.             if(l.size()>1) {
  2096.                 print = true;
  2097.             }
  2098.             else {
  2099.                 String s = l.get(0);
  2100.                 if(s!=null && !"".equalsIgnoreCase(s)) {
  2101.                     print = !CostantiConfigurazione.DISABILITATO.getValue().toLowerCase().equals(s.toLowerCase());
  2102.                 }
  2103.             }
  2104.         }
  2105.         if(print) {
  2106.             printConfigurazioneFromStatusValues(de, PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_OPZIONI_AVANZATE,
  2107.                     sb,
  2108.                     separator, newLine);
  2109.         }
  2110.     }
  2111.    
  2112.     private static void printConfigurazionePortaDelegataExtended(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  2113.             String protocollo, PortaDelegata portaDelegata, MappingFruizionePortaDelegata mapping,
  2114.             StringBuilder sb,
  2115.             String separator, String newLine) throws Exception {
  2116.         IExtendedListServlet extendedServletList = soggettiCore.getExtendedServletPortaDelegata();
  2117.         if(extendedServletList!=null && extendedServletList.showExtendedInfo(consoleHelper,protocollo)){
  2118.             String stato = extendedServletList.getStatoTab(consoleHelper,portaDelegata,mapping.isDefault());
  2119.             String statoTooltip = extendedServletList.getStatoTab(consoleHelper,portaDelegata,mapping.isDefault());
  2120.             int numExtended = extendedServletList.sizeList(portaDelegata);
  2121.             DataElement de = new DataElement();
  2122.             consoleHelper.setStatoExtendedList(de, numExtended, stato, statoTooltip, false);
  2123.             String label = extendedServletList.getListTitle(consoleHelper);
  2124.             printConfigurazioneFromStatusValues(de, label,
  2125.                     sb,
  2126.                     separator, newLine);
  2127.         }
  2128.     }
  2129.     private static void printConfigurazionePortaApplicativaExtended(ConsoleHelper consoleHelper, SoggettiCore soggettiCore,
  2130.             String protocollo, PortaApplicativa portaApplicativa, MappingErogazionePortaApplicativa mapping,
  2131.             StringBuilder sb,
  2132.             String separator, String newLine) throws Exception {
  2133.         IExtendedListServlet extendedServletList = soggettiCore.getExtendedServletPortaApplicativa();
  2134.         if(extendedServletList!=null && extendedServletList.showExtendedInfo(consoleHelper,protocollo)){
  2135.             String stato = extendedServletList.getStatoTab(consoleHelper,portaApplicativa,mapping.isDefault());
  2136.             String statoTooltip = extendedServletList.getStatoTab(consoleHelper,portaApplicativa,mapping.isDefault());
  2137.             int numExtended = extendedServletList.sizeList(portaApplicativa);
  2138.             DataElement de = new DataElement();
  2139.             consoleHelper.setStatoExtendedList(de, numExtended, stato, statoTooltip, false);
  2140.             String label = extendedServletList.getListTitle(consoleHelper);
  2141.             printConfigurazioneFromStatusValues(de, label,
  2142.                     sb,
  2143.                     separator, newLine);
  2144.         }
  2145.     }
  2146.    
  2147.     private static void printConfigurazioneFromStatusValues(DataElement de, String label,
  2148.             StringBuilder sb,
  2149.             String separator, String newLine) {
  2150.         List<String> l = de.getStatusValuesAsList();
  2151.         if(l!=null && !l.isEmpty()) {
  2152.             StringBuilder sbRT = new StringBuilder();
  2153.             for (String s : l) {
  2154.                 if(sbRT.length()>0) {
  2155.                     sbRT.append(", ");
  2156.                 }
  2157.                 sbRT.append(s);
  2158.             }
  2159.             if(sbRT.length()>0) {
  2160.                 sb.append(newLine);
  2161.                 sb.append(label);
  2162.                 sb.append(separator);
  2163.                 sb.append(sbRT.toString());
  2164.             }
  2165.         }
  2166.     }
  2167.    
  2168.     private static void printConnettoreErogazione(PortaApplicativa paDefault, PortaApplicativa paAssociata,
  2169.             ServiziApplicativiCore saCore, ConsoleHelper consoleHelper,
  2170.             StringBuilder sb,
  2171.             String separator, String newLine) throws Exception {
  2172.                
  2173.         if(paDefault==null) {
  2174.             throw new Exception("Param paDefault is null");
  2175.         }
  2176.         if(paAssociata==null) {
  2177.             throw new Exception("Param paAssociata is null");
  2178.         }
  2179.         if(saCore==null) {
  2180.             throw new Exception("Param saCore is null");
  2181.         }
  2182.        
  2183.         boolean connettoreMultiploEnabled = paAssociata.getBehaviour() != null;
  2184.        
  2185.         if(connettoreMultiploEnabled) {
  2186.            
  2187.             //sb.append(newLine);
  2188.             //sb.append("- "+PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI+" -");
  2189.            
  2190.             sb.append(newLine);
  2191.             //sb.append("Tipo");
  2192.             //sb.append(PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI);
  2193.             //sb.append(separator);
  2194.             sb.append(consoleHelper.getNomiConnettoriMultipliPortaApplicativa(paAssociata));
  2195.            
  2196.             /*
  2197.             sb.append(newLine);
  2198.             sb.append("Elenco "+PorteApplicativeCostanti.LABEL_PARAMETRO_PORTE_APPLICATIVE_CONNETTORI);
  2199.             sb.append(separator);
  2200.             sb.append(consoleHelper.getToolTipConnettoriMultipliPortaApplicativa(paAssociata));
  2201.             */
  2202.            
  2203.             for (PortaApplicativaServizioApplicativo paSA : paAssociata.getServizioApplicativoList()) {
  2204.                 String nomeConnettore = CostantiConfigurazione.NOME_CONNETTORE_DEFAULT;
  2205.                 if(paSA.getDatiConnettore() != null && paSA.getDatiConnettore().getNome() != null) {
  2206.                     nomeConnettore = paSA.getDatiConnettore().getNome();
  2207.                 }
  2208.                
  2209.                 IDServizioApplicativo idServizioApplicativo = new IDServizioApplicativo();
  2210.                 idServizioApplicativo.setIdSoggettoProprietario(new IDSoggetto(paDefault.getTipoSoggettoProprietario(), paDefault.getNomeSoggettoProprietario()));
  2211.                 idServizioApplicativo.setNome(paSA.getNome());
  2212.                 ServizioApplicativo sa = saCore.getServizioApplicativo(idServizioApplicativo);
  2213.                 InvocazioneServizio is = sa.getInvocazioneServizio();
  2214.                 org.openspcoop2.core.config.Connettore connettore = is.getConnettore();
  2215.                
  2216.                 printConnettoreErogazione(consoleHelper,
  2217.                         connettore, nomeConnettore,
  2218.                         sa,
  2219.                         sb,
  2220.                         separator, newLine,
  2221.                         true);
  2222.             }
  2223.         }
  2224.         else {
  2225.             IDServizioApplicativo idServizioApplicativo = new IDServizioApplicativo();
  2226.             idServizioApplicativo.setIdSoggettoProprietario(new IDSoggetto(paDefault.getTipoSoggettoProprietario(), paDefault.getNomeSoggettoProprietario()));
  2227.             idServizioApplicativo.setNome(paAssociata.getServizioApplicativo(0).getNome());
  2228.             ServizioApplicativo sa = saCore.getServizioApplicativo(idServizioApplicativo);
  2229.             InvocazioneServizio is = sa.getInvocazioneServizio();
  2230.             org.openspcoop2.core.config.Connettore connettore = is.getConnettore();
  2231.            
  2232.             printConnettoreErogazione(consoleHelper,
  2233.                     connettore, null,
  2234.                     sa,
  2235.                     sb,
  2236.                     separator, newLine,
  2237.                     false);
  2238.         }
  2239.        
  2240.     }

  2241.     private static void printConnettoreFruizione(ConsoleHelper consoleHelper,
  2242.             Connettore connettore, String labelNomeConnettore,
  2243.             boolean connettoreStatic,
  2244.             StringBuilder sb,
  2245.             String separator, String newLine) throws Exception {
  2246.        
  2247.         if(connettore==null) {
  2248.             throw new Exception("Param connettore is null");
  2249.         }
  2250.        
  2251.         _printConnettore(consoleHelper,
  2252.                 connettore.mappingIntoConnettoreConfigurazione(), labelNomeConnettore,
  2253.                 null,
  2254.                 connettoreStatic,
  2255.                 sb,
  2256.                 separator, newLine,
  2257.                 false);
  2258.     }
  2259.     private static void printConnettoreErogazione(ConsoleHelper consoleHelper,
  2260.             org.openspcoop2.core.config.Connettore connettore, String labelNomeConnettore,
  2261.             ServizioApplicativo sa,
  2262.             StringBuilder sb,
  2263.             String separator, String newLine,
  2264.             boolean printIntestazione) throws Exception {
  2265.         _printConnettore(consoleHelper,
  2266.                 connettore, labelNomeConnettore,
  2267.                 sa,
  2268.                 false,
  2269.                 sb,
  2270.                 separator, newLine,
  2271.                 printIntestazione);
  2272.     }
  2273.     private static void _printConnettore(ConsoleHelper consoleHelper,
  2274.             org.openspcoop2.core.config.Connettore connettore, String labelNomeConnettore,
  2275.             ServizioApplicativo sa,
  2276.             boolean connettoreStatic,
  2277.             StringBuilder sb,
  2278.             String separator, String newLine,
  2279.             boolean printIntestazione) throws Exception {

  2280.         if(connettore==null) {
  2281.             throw new Exception("Param connettore is null");
  2282.         }
  2283.        
  2284.         TipiConnettore tipo = TipiConnettore.toEnumFromName(connettore.getTipo());
  2285.         if(tipo==null) {
  2286.             tipo = TipiConnettore.CUSTOM;
  2287.         }
  2288.         String labelTipoConnettore = tipo.getLabel();
  2289.         if(TipiConnettore.CUSTOM.equals(tipo)){
  2290.             try {
  2291.                 ConfigurazioneCore confCore = new ConfigurazioneCore(consoleHelper.getCore());
  2292.                 Plugin p = confCore.getPlugin(TipoPlugin.CONNETTORE, connettore.getTipo(), false);
  2293.                 if(p!=null) {
  2294.                     labelTipoConnettore = p.getLabel();
  2295.                 }
  2296.                 else {
  2297.                     labelTipoConnettore = connettore.getTipo();
  2298.                 }
  2299.             }catch(Throwable t) {
  2300.                 labelTipoConnettore = connettore.getTipo();
  2301.             }
  2302.         }
  2303.        
  2304.         ConnettoreUtils.printDatiConnettore(connettore, labelTipoConnettore, labelNomeConnettore,
  2305.                 sa,
  2306.                 connettoreStatic,
  2307.                 sb,
  2308.                 separator, newLine,
  2309.                 printIntestazione);

  2310.     }
  2311.     private static String getProprieta(String nome,List<org.openspcoop2.core.config.Proprieta> list){
  2312.         if(list!=null && !list.isEmpty()){
  2313.             for (org.openspcoop2.core.config.Proprieta property : list) {
  2314.                 if(property.getNome().equals(nome)){
  2315.                     return property.getValore();
  2316.                 }
  2317.             }
  2318.         }
  2319.         return null;
  2320.     }
  2321.    
  2322.     private static void addProfiloModISicurezza(StringBuilder sbParam, Map<String, String> map,
  2323.             String labelProtocollo, boolean rest, boolean fruizione, boolean request,
  2324.             boolean digest,
  2325.             String patternDatiCorniceSicurezza, String schemaDatiCorniceSicurezza,
  2326.             boolean headerDuplicati,
  2327.             String separator, String newLine) {
  2328.        
  2329.         String prefixKey = ModIUtils.getPrefixKey(fruizione, request);
  2330.                                
  2331.         StringBuilder sb = new StringBuilder();
  2332.        
  2333.         // Ttl (Iat / Expiration)
  2334.         String ttlV = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_TTL);
  2335.         if(StringUtils.isNotEmpty(ttlV)) {
  2336.             sb.append(newLine);
  2337.             sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_TTL_LABEL);
  2338.             sb.append(separator);
  2339.             sb.append(ttlV);
  2340.         }
  2341.        
  2342.         // Audit
  2343.         boolean audit = false;
  2344.         if(request) {
  2345.             sb.append(newLine);
  2346.             String label = rest ? CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_REST_LABEL :  CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_SOAP_LABEL;
  2347.             sb.append(label);
  2348.             sb.append(separator);
  2349.             sb.append(map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_AUDIENCE));
  2350.             audit = true;
  2351.         }
  2352.         else {
  2353.             if(fruizione) {
  2354.                
  2355.                 audit = true;

  2356.                 String verificaAud = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_VERIFICA_AUDIENCE);
  2357.                 if(StringUtils.isNotEmpty(verificaAud)) {
  2358.                     sb.append(newLine);
  2359.                     String label = rest ? CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_REST_LABEL :  CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_SOAP_LABEL;
  2360.                     sb.append(label);
  2361.                     sb.append(separator);
  2362.                     sb.append(verificaAud);
  2363.                 }
  2364.        
  2365.                 String vAud = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_AUDIENCE);
  2366.                 if(StringUtils.isNotEmpty(vAud)) {
  2367.                     String label = rest ? CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_REST_LABEL :  CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_SOAP_LABEL;
  2368.                     sb.append(newLine);
  2369.                     sb.append(label);
  2370.                     sb.append(separator);
  2371.                     sb.append(vAud);
  2372.                 }
  2373.             }
  2374.         }
  2375.         if(audit) {
  2376.             String label = rest ? CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_REST_LABEL :  CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_SOAP_LABEL;
  2377.             label = CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_INTEGRITY_REST_LABEL + " " +label;
  2378.             String vAud = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_INTEGRITY_AUDIENCE);
  2379.             if(StringUtils.isNotEmpty(vAud)) {
  2380.                 sb.append(newLine);
  2381.                 sb.append(label);
  2382.                 sb.append(separator);
  2383.                 sb.append(vAud);
  2384.             }
  2385.         }
  2386.                
  2387.         // TrustStore
  2388.         if( (fruizione && !request) || (!fruizione && request) ) {
  2389.            
  2390.             // truststore per i certificati
  2391.             addStore(sb, map,
  2392.                     prefixKey, false, true,
  2393.                     separator, newLine);
  2394.            
  2395.             if(rest) {
  2396.                 // ssl per le url (x5u)
  2397.                 addStore(sb, map,
  2398.                         prefixKey, true, false,
  2399.                         separator, newLine);
  2400.             }
  2401.            
  2402.         }
  2403.        
  2404.         // KeyStore
  2405.         if(!fruizione && !request) {
  2406.             addStore(sb, map,
  2407.                     prefixKey, false, false,
  2408.                     separator, newLine);
  2409.         }
  2410.        
  2411.         if(fruizione && request) {
  2412.             String v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_FRUIZIONE_KEYSTORE_MODE);
  2413.             if(StringUtils.isNotEmpty(v)) {
  2414.                 sb.append(newLine);
  2415.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_FRUIZIONE_KEYSTORE_MODE_LABEL);
  2416.                 sb.append(separator);
  2417.                 sb.append(v);
  2418.                
  2419.                 if(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_FRUIZIONE_KEYSTORE_MODE_LABEL_FRUIZIONE.equals(v)) {
  2420.                     addStore(sb, map,
  2421.                             prefixKey, false, false,
  2422.                             separator, newLine);
  2423.                 }
  2424.             }
  2425.         }
  2426.        
  2427.         // Firma
  2428.         if(rest) {
  2429.            
  2430.             // Algoritmo
  2431.             String v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_SIGNATURE_ALGORITHM);
  2432.             if(StringUtils.isNotEmpty(v)) {
  2433.                 sb.append(newLine);
  2434.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_LABEL);
  2435.                 sb.append(separator);
  2436.                 sb.append(v);
  2437.             }
  2438.            
  2439.             // Codifica Digest
  2440.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_DIGEST_ENCODING);
  2441.             if(StringUtils.isNotEmpty(v)) {
  2442.                 sb.append(newLine);
  2443.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_LABEL);
  2444.                 sb.append(separator);
  2445.                 sb.append(v);
  2446.             }
  2447.            
  2448.             // Header Firmati
  2449.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_HTTP_HEADER_FIRMATI);
  2450.             if(StringUtils.isNotEmpty(v)) {
  2451.                 sb.append(newLine);
  2452.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_REST_LABEL);
  2453.                 sb.append(separator);
  2454.                 sb.append(v);
  2455.             }
  2456.            
  2457.             // Posizione Certificato
  2458.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_RIFERIMENTO_X509);
  2459.             if(StringUtils.isNotEmpty(v)) {
  2460.                 sb.append(newLine);
  2461.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_LABEL);
  2462.                 sb.append(separator);
  2463.                 sb.append(v);
  2464.             }
  2465.            
  2466.             // Certificate Chain
  2467.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_CATENA_CERTIFICATI_X509);
  2468.             if(StringUtils.isNotEmpty(v)) {
  2469.                 sb.append(newLine);
  2470.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_LABEL);
  2471.                 sb.append(separator);
  2472.                 sb.append(v);
  2473.             }
  2474.            
  2475.             // X5U Certificate URL
  2476.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_X5U_CERTIFICATE_URL);
  2477.             if(StringUtils.isNotEmpty(v)) {
  2478.                 sb.append(newLine);
  2479.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_X5U_URL_LABEL);
  2480.                 sb.append(separator);
  2481.                 sb.append(v);
  2482.             }
  2483.            
  2484.         }
  2485.         else {
  2486.            
  2487.             // Algoritmo
  2488.             String v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_SIGNATURE_ALGORITHM);
  2489.             if(StringUtils.isNotEmpty(v)) {
  2490.                 sb.append(newLine);
  2491.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL);
  2492.                 sb.append(separator);
  2493.                 sb.append(v);
  2494.             }
  2495.            
  2496.             // Algoritmo C14N
  2497.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_CANONICALIZATION_ALGORITHM);
  2498.             if(StringUtils.isNotEmpty(v)) {
  2499.                 sb.append(newLine);
  2500.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_LABEL);
  2501.                 sb.append(separator);
  2502.                 sb.append(v);
  2503.             }
  2504.            
  2505.             // Header Firmati
  2506.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_SOAP_HEADER_FIRMATI);
  2507.             if(StringUtils.isNotEmpty(v)) {
  2508.                 sb.append(newLine);
  2509.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_SOAP_LABEL);
  2510.                 sb.append(separator);
  2511.                 sb.append(v);
  2512.             }
  2513.            
  2514.             // Posizione Certificato
  2515.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_RIFERIMENTO_X509);
  2516.             if(StringUtils.isNotEmpty(v)) {
  2517.                 sb.append(newLine);
  2518.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL);
  2519.                 sb.append(separator);
  2520.                 sb.append(v);
  2521.             }
  2522.            
  2523.             // Certificate Chain
  2524.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_CATENA_CERTIFICATI_X509);
  2525.             if(StringUtils.isNotEmpty(v)) {
  2526.                 sb.append(newLine);
  2527.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_LABEL);
  2528.                 sb.append(separator);
  2529.                 sb.append(v);
  2530.             }
  2531.            
  2532.             // Signature Token
  2533.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_INCLUDE_SIGNATURE_TOKEN);
  2534.             if(StringUtils.isNotEmpty(v)) {
  2535.                 sb.append(newLine);
  2536.                 sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_LABEL);
  2537.                 sb.append(separator);
  2538.                 sb.append(v);
  2539.             }
  2540.            
  2541.         }
  2542.        
  2543.         // Info Audit
  2544.        
  2545.         if(patternDatiCorniceSicurezza!=null) {
  2546.            
  2547.             if(!CostantiDB.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PATTERN_OLD.equals(patternDatiCorniceSicurezza) && schemaDatiCorniceSicurezza!=null) {
  2548.                 String label = CostantiLabel.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIT_AUDIENCE_LABEL;
  2549.                 String vAud = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_AUDIT_AUDIENCE);
  2550.                 if(StringUtils.isNotEmpty(vAud)) {
  2551.                     sb.append(newLine);
  2552.                     sb.append(label);
  2553.                     sb.append(separator);
  2554.                     sb.append(vAud);
  2555.                 }
  2556.             }
  2557.            
  2558.            
  2559.             for (Map.Entry<String,String> entry : map.entrySet()) {
  2560.                 String key = entry.getKey();
  2561.                 String sKey = prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PREFIX;
  2562.                 if(key.startsWith(sKey)) {
  2563.                     String claim = key.substring(sKey.length());
  2564.                     sb.append(newLine);
  2565.                     sb.append(claim);
  2566.                     sb.append(separator);
  2567.                     String v = entry.getValue();
  2568.                     sb.append(v);
  2569.                 }
  2570.             }
  2571.         }
  2572.        
  2573.         // Sicurezza OAuth
  2574.        
  2575.         if( fruizione && request ) {
  2576.        
  2577.             String v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_OAUTH_IDENTIFICATIVO);
  2578.             if(StringUtils.isNotEmpty(v)) {
  2579.                 sb.append(newLine);
  2580.                 //sb.append(CostantiLabel.LABEL_CREDENZIALI_AUTENTICAZIONE_TOKEN_CLIENT_ID);
  2581.                 sb.append(CostantiLabel.LABEL_CREDENZIALI_AUTENTICAZIONE_TOKEN_CLIENT_ID_SEARCH);
  2582.                 sb.append(separator);
  2583.                 sb.append(v);
  2584.             }
  2585.            
  2586.             v = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_OAUTH_KID);
  2587.             if(StringUtils.isNotEmpty(v)) {
  2588.                 sb.append(newLine);
  2589.                 sb.append(CostantiLabel.LABEL_CREDENZIALI_AUTENTICAZIONE_TOKEN_KID);
  2590.                 sb.append(separator);
  2591.                 sb.append(v);
  2592.             }
  2593.            
  2594.         }
  2595.        
  2596.         // Intestazione e fine
  2597.         if(sb.length()>0) {
  2598.             sbParam.append(newLine);
  2599.             sbParam.append("- "+(request? "Request" : "Response")+" -");
  2600.            
  2601.             sbParam.append(sb.toString());
  2602.         }
  2603.     }
  2604.    
  2605.     private static void addStore(StringBuilder sb,Map<String, String> map,
  2606.             String prefixKeyParam, boolean ssl, boolean truststore,
  2607.             String separator, String newLine) {
  2608.        
  2609.         String label = null;
  2610.         if(ssl) {
  2611.             label = CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SSL_TRUSTSTORE_MODE_LABEL;
  2612.         }
  2613.         else if(truststore) {
  2614.             label = CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CERTIFICATI_TRUSTSTORE_MODE_LABEL;
  2615.         }
  2616.         else {
  2617.             label = CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CERTIFICATI_KEYSTORE_MODE_LABEL;
  2618.         }
  2619.        
  2620.         String store = ModIUtils.getPrefixKeyStore(false, prefixKeyParam, ssl, truststore);
  2621.         String mode = map.get(store);
  2622.         if(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_STORE_MODE_LABEL_DEFAULT.equals(mode)) {
  2623.             sb.append(newLine);
  2624.             sb.append(label);
  2625.             sb.append(separator);
  2626.             sb.append(CostantiLabel.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_STORE_MODE_LABEL_DEFAULT);
  2627.         }
  2628.         else {
  2629.            
  2630.             String prefixKey = ModIUtils.getPrefixKeyStore(true, prefixKeyParam, ssl, truststore);
  2631.                        
  2632.             String type = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_STORE_TYPE);
  2633.             String path = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_STORE_PATH);
  2634.             if(StringUtils.isNotEmpty(type)) {
  2635.            
  2636.                 sb.append(newLine);
  2637.                 sb.append(label);
  2638.                 sb.append(separator);
  2639.                 sb.append("(").append(type).append(")");
  2640.                 if(StringUtils.isNotEmpty(path)) {
  2641.                     sb.append(" ").append(path);
  2642.                 }
  2643.                
  2644.                 // OCSP
  2645.                 String ocsp = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_STORE_OCSP_POLICY);
  2646.                 if(StringUtils.isNotEmpty(ocsp)) {
  2647.                     sb.append(newLine);
  2648.                     sb.append(label).append(" ").append(CostantiLabel.MODIPA_TRUSTSTORE_OCSP_LABEL);
  2649.                     sb.append(separator);
  2650.                     try {
  2651.                         String labelOcsp = OCSPManager.getInstance().getOCSPConfig(ocsp).getLabel();
  2652.                         sb.append((labelOcsp!=null && StringUtils.isNotEmpty(labelOcsp)) ? labelOcsp : ocsp);
  2653.                     }catch(Throwable t) {
  2654.                         sb.append(ocsp);
  2655.                     }
  2656.                 }
  2657.                
  2658.                 // CRL
  2659.                 String crl = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_STORE_CRLS);
  2660.                 if(StringUtils.isNotEmpty(crl)) {
  2661.                     sb.append(newLine);
  2662.                     sb.append(label).append(" ").append(CostantiLabel.MODIPA_TRUSTSTORE_CRLS_LABEL);
  2663.                     sb.append(separator);
  2664.                     sb.append(crl);
  2665.                 }
  2666.                
  2667.                 // AliasKey
  2668.                 String aliasKey = map.get(prefixKey+ModIUtils.API_IMPL_SICUREZZA_MESSAGGIO_KEY_ALIAS);
  2669.                 if(StringUtils.isNotEmpty(aliasKey)) {
  2670.                     sb.append(newLine);
  2671.                     sb.append(CostantiLabel.MODIPA_KEY_ALIAS_LABEL);
  2672.                     sb.append(separator);
  2673.                     sb.append(aliasKey);
  2674.                 }
  2675.             }
  2676.         }
  2677.     }
  2678. }