ModIDynamicConfigurationAccordiParteSpecificaSicurezzaMessaggioUtilities.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.protocol.modipa.properties;

  21. import java.util.ArrayList;
  22. import java.util.Collections;
  23. import java.util.List;
  24. import java.util.Map;

  25. import org.apache.commons.lang.StringUtils;
  26. import org.openspcoop2.core.config.PortaApplicativa;
  27. import org.openspcoop2.core.config.PortaDelegata;
  28. import org.openspcoop2.core.constants.CostantiConnettori;
  29. import org.openspcoop2.core.constants.CostantiLabel;
  30. import org.openspcoop2.core.constants.TipiConnettore;
  31. import org.openspcoop2.core.id.IDAccordo;
  32. import org.openspcoop2.core.id.IDFruizione;
  33. import org.openspcoop2.core.id.IDPortaDelegata;
  34. import org.openspcoop2.core.id.IDRuolo;
  35. import org.openspcoop2.core.id.IDServizio;
  36. import org.openspcoop2.core.id.IDServizioApplicativo;
  37. import org.openspcoop2.core.id.IDSoggetto;
  38. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  39. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  40. import org.openspcoop2.core.mvc.properties.provider.InputValidationUtils;
  41. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  42. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  43. import org.openspcoop2.core.registry.ConfigurazioneServizioAzione;
  44. import org.openspcoop2.core.registry.Fruitore;
  45. import org.openspcoop2.core.registry.Property;
  46. import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
  47. import org.openspcoop2.core.registry.constants.RuoloContesto;
  48. import org.openspcoop2.core.registry.constants.RuoloTipologia;
  49. import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
  50. import org.openspcoop2.pdd.core.dynamic.DynamicHelperCostanti;
  51. import org.openspcoop2.protocol.engine.constants.Costanti;
  52. import org.openspcoop2.protocol.engine.utils.AzioniUtils;
  53. import org.openspcoop2.protocol.modipa.config.ModIAuditClaimConfig;
  54. import org.openspcoop2.protocol.modipa.config.ModIAuditConfig;
  55. import org.openspcoop2.protocol.modipa.config.ModIProperties;
  56. import org.openspcoop2.protocol.modipa.config.ModISignalHubConfig;
  57. import org.openspcoop2.protocol.modipa.config.ModISignalHubParamConfig;
  58. import org.openspcoop2.protocol.modipa.constants.ModIConsoleCostanti;
  59. import org.openspcoop2.protocol.modipa.utils.ModIPropertiesUtils;
  60. import org.openspcoop2.protocol.modipa.utils.ModISecurityConfig;
  61. import org.openspcoop2.protocol.sdk.ProtocolException;
  62. import org.openspcoop2.protocol.sdk.constants.ConsoleItemType;
  63. import org.openspcoop2.protocol.sdk.constants.ConsoleItemValueType;
  64. import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
  65. import org.openspcoop2.protocol.sdk.properties.AbstractConsoleItem;
  66. import org.openspcoop2.protocol.sdk.properties.BaseConsoleItem;
  67. import org.openspcoop2.protocol.sdk.properties.BooleanConsoleItem;
  68. import org.openspcoop2.protocol.sdk.properties.BooleanProperty;
  69. import org.openspcoop2.protocol.sdk.properties.ConsoleConfiguration;
  70. import org.openspcoop2.protocol.sdk.properties.ConsoleItemInfo;
  71. import org.openspcoop2.protocol.sdk.properties.IConsoleHelper;
  72. import org.openspcoop2.protocol.sdk.properties.NumberConsoleItem;
  73. import org.openspcoop2.protocol.sdk.properties.NumberProperty;
  74. import org.openspcoop2.protocol.sdk.properties.ProtocolProperties;
  75. import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesFactory;
  76. import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesUtils;
  77. import org.openspcoop2.protocol.sdk.properties.StringConsoleItem;
  78. import org.openspcoop2.protocol.sdk.properties.StringProperty;
  79. import org.openspcoop2.protocol.sdk.properties.SubtitleConsoleItem;
  80. import org.openspcoop2.protocol.sdk.properties.TitleConsoleItem;
  81. import org.openspcoop2.protocol.sdk.registry.IConfigIntegrationReader;
  82. import org.openspcoop2.protocol.sdk.registry.IRegistryReader;
  83. import org.openspcoop2.protocol.sdk.registry.ProtocolFiltroRicercaFruizioniServizio;
  84. import org.openspcoop2.protocol.sdk.registry.ProtocolFiltroRicercaRuoli;
  85. import org.openspcoop2.protocol.sdk.registry.ProtocolFiltroRicercaServizi;
  86. import org.openspcoop2.protocol.sdk.registry.RegistryException;
  87. import org.openspcoop2.protocol.sdk.registry.RegistryNotFound;
  88. import org.openspcoop2.utils.LoggerWrapperFactory;
  89. import org.openspcoop2.utils.certificate.remote.RemoteStoreConfig;
  90. import org.openspcoop2.utils.digest.DigestEncoding;
  91. import org.openspcoop2.utils.sql.LikeConfig;
  92. import org.slf4j.Logger;
  93. import org.slf4j.LoggerFactory;

  94. /**
  95.  * ModIDynamicConfigurationAccordiParteSpecificaUtilities
  96.  *
  97.  * @author Poli Andrea (apoli@link.it)
  98.  * @author $Author$
  99.  * @version $Rev$, $Date$
  100.  */
  101. public class ModIDynamicConfigurationAccordiParteSpecificaSicurezzaMessaggioUtilities {
  102.    
  103.     private static Logger logger = LoggerFactory.getLogger(ModIDynamicConfigurationAccordiParteSpecificaSicurezzaMessaggioUtilities.class);
  104.    
  105.     private ModIDynamicConfigurationAccordiParteSpecificaSicurezzaMessaggioUtilities() {}

  106.     static void addSicurezzaMessaggio(ModIProperties modiProperties,
  107.             ConsoleConfiguration configuration, boolean rest, boolean fruizione, boolean request,
  108.             boolean casoSpecialeModificaNomeFruizione, boolean digest,
  109.             String patternDatiCorniceSicurezza, String schemaDatiCorniceSicurezza,
  110.             boolean headerDuplicati,
  111.             ConsoleOperationType consoleOperationType, IConsoleHelper consoleHelper,
  112.             IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader,
  113.             IDServizio idServizio, IDSoggetto idFruitore,
  114.             boolean riferimentoX509, boolean kidMode,
  115.             boolean auditOnly,
  116.             boolean tokenNonLocale) throws ProtocolException {
  117.        
  118.         boolean requiredValue = !casoSpecialeModificaNomeFruizione;
  119.        
  120.         // Title e SubTitle Label
  121.        
  122.         if(request) {
  123.            
  124.             BaseConsoleItem titolo = ProtocolPropertiesFactory.newTitleItem(
  125.                     ModIConsoleCostanti.MODIPA_API_IMPL_RICHIESTA_ID,
  126.                     ModIConsoleCostanti.MODIPA_API_IMPL_RICHIESTA_LABEL);
  127.             configuration.addConsoleItem(titolo );
  128.            
  129.             configuration.addConsoleItem(ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_RICHIESTA_ID,
  130.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_RICHIESTA_LABEL));
  131.         }
  132.         else {
  133.            
  134.             BaseConsoleItem titolo = ProtocolPropertiesFactory.newTitleItem(
  135.                     ModIConsoleCostanti.MODIPA_API_IMPL_RISPOSTA_ID,
  136.                     ModIConsoleCostanti.MODIPA_API_IMPL_RISPOSTA_LABEL);
  137.             configuration.addConsoleItem(titolo );
  138.            
  139.             configuration.addConsoleItem(ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_RISPOSTA_ID,
  140.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_RISPOSTA_LABEL));
  141.         }
  142.        
  143.        
  144.         // Configurazione Firma
  145.        
  146.         if(rest) {
  147.             addConfigurazioneFirmaRest(modiProperties,
  148.                     configuration, fruizione, request, digest, requiredValue, riferimentoX509);
  149.         }
  150.         else {
  151.             addConfigurazioneFirmaSoap(modiProperties,
  152.                     configuration, fruizione, request, digest);
  153.         }
  154.        
  155.         if( (fruizione && !request) || (!fruizione && request) ) {
  156.             // truststore per i certificati
  157.             ModIDynamicConfigurationKeystoreUtilities.addTrustStoreCertificatiConfigChoice(configuration, false);
  158.            
  159.             if(rest) {
  160.                 // ssl per le url (x5u)
  161.                 ModIDynamicConfigurationKeystoreUtilities.addTrustStoreSSLConfigChoice(configuration, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5U_DEFAULT_VALUE);
  162.             }
  163.         }
  164.        
  165.         if(!fruizione && !request) {
  166.             // keystore
  167.             ModIDynamicConfigurationKeystoreUtilities.addTrustStoreKeystoreErogazioneConfigChoice(configuration);
  168.         }
  169.         else if(fruizione && request) {
  170.             // keystore
  171.             ModIDynamicConfigurationKeystoreUtilities.addTrustStoreKeystoreFruizioneConfigChoice(configuration, tokenNonLocale);
  172.         }

  173.        
  174.        
  175.         // Created Ttl Time

  176.         String idProfiloSicurezzaMessaggioIatTtlItem = null;
  177.         String idProfiloSicurezzaMessaggioIatTtlSecondsItem = null;
  178.         if(fruizione && !request) {
  179.             idProfiloSicurezzaMessaggioIatTtlItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_RISPOSTA_ID;
  180.             idProfiloSicurezzaMessaggioIatTtlSecondsItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_RISPOSTA_ID;
  181.         }
  182.         else if(!fruizione && request) {
  183.             idProfiloSicurezzaMessaggioIatTtlItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_RICHIESTA_ID;
  184.             idProfiloSicurezzaMessaggioIatTtlSecondsItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_RICHIESTA_ID;
  185.         }
  186.         if(idProfiloSicurezzaMessaggioIatTtlItem!=null && idProfiloSicurezzaMessaggioIatTtlSecondsItem!=null) {
  187.            
  188.             boolean modeIsDefault = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_VALUE_DEFAULT);
  189.             String labelModeItem = modeIsDefault ?
  190.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_LABEL_VALORE_DEFAULT :
  191.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_LABEL_VALORE_RIDEFINITO;
  192.            
  193.             StringConsoleItem modeItem = (StringConsoleItem)
  194.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  195.                     ConsoleItemType.SELECT,
  196.                     idProfiloSicurezzaMessaggioIatTtlItem,
  197.                     labelModeItem);
  198.             modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_LABEL_DEFAULT,
  199.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_VALUE_DEFAULT);
  200.             modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_LABEL_RIDEFINISCI,
  201.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_VALUE_RIDEFINISCI);
  202.             modeItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_DEFAULT_VALUE);
  203.             modeItem.setReloadOnChange(true, true);
  204.             configuration.addConsoleItem(modeItem);
  205.            
  206.             NumberConsoleItem secondsItem = (NumberConsoleItem)
  207.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.NUMBER,
  208.                     ConsoleItemType.NUMBER,
  209.                     idProfiloSicurezzaMessaggioIatTtlSecondsItem,
  210.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_LABEL);
  211.             secondsItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_NOTE);
  212.             secondsItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_DEFAULT_VALUE);
  213.             secondsItem.setRequired(requiredValue);
  214.             secondsItem.setMin(1);
  215.             if(modeIsDefault) {
  216.                 secondsItem.setRequired(false);
  217.                 secondsItem.setType(ConsoleItemType.HIDDEN);
  218.             }
  219.             configuration.addConsoleItem(secondsItem);
  220.         }
  221.        
  222.        
  223.        
  224.         // Expiration Time

  225.         String idProfiloSicurezzaMessaggioExpItem = null;
  226.         if(fruizione && request) {
  227.             idProfiloSicurezzaMessaggioExpItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_EXPIRED_RICHIESTA_ID;
  228.         }
  229.         else if(!fruizione && !request) {
  230.             idProfiloSicurezzaMessaggioExpItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_EXPIRED_RISPOSTA_ID;
  231.         }
  232.         if(idProfiloSicurezzaMessaggioExpItem!=null) {
  233.             NumberConsoleItem profiloSicurezzaMessaggioTTLItem = (NumberConsoleItem)
  234.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.NUMBER,
  235.                     ConsoleItemType.NUMBER,
  236.                     idProfiloSicurezzaMessaggioExpItem,
  237.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_EXPIRED_LABEL);
  238.             if(fruizione) {
  239.                 profiloSicurezzaMessaggioTTLItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_EXPIRED_NOTE);
  240.             }
  241.             else {
  242.                 profiloSicurezzaMessaggioTTLItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_EXPIRED_NOTE_RESPONSE);
  243.             }
  244.             profiloSicurezzaMessaggioTTLItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_EXPIRED_DEFAULT_VALUE);
  245.             profiloSicurezzaMessaggioTTLItem.setRequired(requiredValue);
  246.             profiloSicurezzaMessaggioTTLItem.setMin(1);
  247.             configuration.addConsoleItem(profiloSicurezzaMessaggioTTLItem);
  248.         }
  249.        
  250.        
  251.         // Audit
  252.        
  253.         if(request) {
  254.             StringConsoleItem profiloSicurezzaMessaggioAudienceItem = (StringConsoleItem)
  255.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  256.                     ConsoleItemType.TEXT_AREA,
  257.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_ID,
  258.                     rest ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_REST_LABEL :  ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_SOAP_LABEL);
  259.             profiloSicurezzaMessaggioAudienceItem.setNote(fruizione ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_FRUIZIONE_NOTE :
  260.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_EROGAZIONE_NOTE);
  261.             profiloSicurezzaMessaggioAudienceItem.setRows(2);
  262.             if(fruizione) {
  263.                 ConsoleItemInfo info = new ConsoleItemInfo(rest ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_REST_LABEL :  ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RICHIESTA_SOAP_LABEL);
  264.                 info.setHeaderBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_INFO);
  265.                 if(rest) {
  266.                     info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_AUDIENCE_INFO_VALORI_REQUEST);
  267.                 }
  268.                 else {
  269.                     info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_AUDIENCE_INFO_VALORI_REQUEST);
  270.                 }
  271.                 profiloSicurezzaMessaggioAudienceItem.setInfo(info);
  272.             }
  273.             configuration.addConsoleItem(profiloSicurezzaMessaggioAudienceItem);
  274.         }
  275.         else {
  276.             if(fruizione) {
  277.                 BooleanConsoleItem profiloSicurezzaMessaggioAudienceItem = (BooleanConsoleItem)
  278.                         ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.BOOLEAN,
  279.                         ConsoleItemType.CHECKBOX,
  280.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_ID,
  281.                         rest ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_REST_LABEL :  ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_SOAP_LABEL);
  282.                 profiloSicurezzaMessaggioAudienceItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_FRUIZIONE_KEYSTORE_SA_NOTE);
  283.                 profiloSicurezzaMessaggioAudienceItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_DEFAULT);
  284.                 profiloSicurezzaMessaggioAudienceItem.setReloadOnChange(true, true);
  285.                 configuration.addConsoleItem(profiloSicurezzaMessaggioAudienceItem);
  286.                
  287.                 StringConsoleItem audValueItem = (StringConsoleItem)
  288.                         ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  289.                         ConsoleItemType.TEXT_AREA,
  290.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_VALORE_ID,
  291.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_VALORE_LABEL);
  292.                 audValueItem.setRows(2);
  293.                 ConsoleItemInfo info = new ConsoleItemInfo(rest ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_REST_LABEL :  ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_SOAP_LABEL);
  294.                 info.setHeaderBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_INFO);
  295.                 if(rest) {
  296.                     info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_AUDIENCE_INFO_VALORI_RESPONSE);
  297.                 }
  298.                 else {
  299.                     info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_AUDIENCE_INFO_VALORI_RESPONSE);
  300.                 }
  301.                 audValueItem.setInfo(info);
  302.                 configuration.addConsoleItem(audValueItem);
  303.             }
  304.         }
  305.        
  306.        
  307.         // Claims
  308.         if(rest && !auditOnly &&
  309.                 (
  310.                         (request && fruizione)
  311.                         ||
  312.                         (!request && !fruizione)
  313.                 )
  314.             ) {
  315.             StringConsoleItem profiloSicurezzaMessaggioRestJwtClaimsItem = (StringConsoleItem)
  316.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  317.                     ConsoleItemType.TEXT_AREA,
  318.                     ((request && fruizione) ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_RICHIESTA_ID : ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_RISPOSTA_ID),
  319.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_LABEL);
  320.             profiloSicurezzaMessaggioRestJwtClaimsItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_NOTE);
  321.             ConsoleItemInfo info = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_LABEL);
  322.             try {
  323.                 info.setHeaderBody(DynamicHelperCostanti.getLABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO(request,
  324.                         modiProperties.getUsedRestSecurityClaims(request, digest)));
  325.             }catch(Exception e) {
  326.                 throw new ProtocolException(e.getMessage(),e);
  327.             }
  328.             info.setListBody(request ? DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO_VALORI_REQUEST :
  329.                 DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO_VALORI_RESPONSE);
  330.             profiloSicurezzaMessaggioRestJwtClaimsItem.setInfo(info);
  331.             profiloSicurezzaMessaggioRestJwtClaimsItem.setRows(2);
  332.             configuration.addConsoleItem(profiloSicurezzaMessaggioRestJwtClaimsItem);
  333.         }
  334.        
  335.        
  336.         // Cornice Sicurezza
  337.        
  338.         if(request && patternDatiCorniceSicurezza!=null && StringUtils.isNotEmpty(patternDatiCorniceSicurezza)) {
  339.            
  340.             SubtitleConsoleItem subtitleItem = null;
  341.             if(fruizione ||
  342.                     (
  343.                             /** serve per differenziarlo dall'audience dell'authorization token via PDND nell'erogazione !auditOnly &&  */
  344.                             !ModIConsoleCostanti.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PATTERN_VALUE_OLD.equals(patternDatiCorniceSicurezza)
  345.                     )
  346.                 ) {
  347.                 subtitleItem = (SubtitleConsoleItem) ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_RICHIESTA_ID,
  348.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_RICHIESTA_LABEL);
  349.                 subtitleItem.setCloseable(true);
  350.                 configuration.addConsoleItem(subtitleItem);
  351.             }
  352.            
  353.             String lastItemId = null;
  354.            
  355.             if(fruizione) {
  356.                 if(ModIConsoleCostanti.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PATTERN_VALUE_OLD.equals(patternDatiCorniceSicurezza)) {
  357.                     lastItemId = addCorniceSicurezzaLegacy(configuration, rest);
  358.                 }
  359.                 else {
  360.                     lastItemId = addCorniceSicurezzaSchema(configuration, rest,
  361.                             schemaDatiCorniceSicurezza, auditOnly);
  362.                 }
  363.             }
  364.             else {
  365.                 if(
  366.                         /** serve per differenziarlo dall'audience dell'authorization token via PDND nell'erogazione !auditOnly && */
  367.                         !ModIConsoleCostanti.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PATTERN_VALUE_OLD.equals(patternDatiCorniceSicurezza)
  368.                 ) {
  369.                     lastItemId = addCorniceSicurezzaSchemaAudience(configuration);
  370.                 }
  371.             }
  372.            
  373.             if(subtitleItem!=null) {
  374.                 subtitleItem.setLastItemId(lastItemId);
  375.             }
  376.            
  377.             // NOTA: se si aggiunge un elemento a questo posizione, riconfigurare setLastItemId nel subsection item
  378.         }
  379.        
  380.        
  381.                
  382.         // Header Duplicati
  383.         if(rest && headerDuplicati &&
  384.                 (
  385.                         (request && fruizione)
  386.                         ||
  387.                         (!request && !fruizione)
  388.                 )
  389.             ) {
  390.            
  391.             SubtitleConsoleItem subtitleItem = (SubtitleConsoleItem) ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_GENERAZIONE_ID,
  392.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_LABEL.
  393.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()));
  394.             subtitleItem.setCloseable(true);
  395.             subtitleItem.setLastItemId(request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_RICHIESTA_ID :
  396.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_RISPOSTA_ID);
  397.             configuration.addConsoleItem(subtitleItem);
  398.                        
  399.             StringConsoleItem jtiItem = (StringConsoleItem)
  400.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  401.                     ConsoleItemType.SELECT,
  402.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_RICHIESTA_ID :
  403.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_RISPOSTA_ID,
  404.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_LABEL);
  405.             jtiItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_LABEL_SAME,
  406.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_VALUE_SAME);
  407.             jtiItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_LABEL_DIFFERENT,
  408.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_VALUE_DIFFERENT);
  409.             jtiItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_VALUE_DEFAULT);
  410.             jtiItem.setUseDefaultValueForCloseableSection(true);
  411.             jtiItem.setReloadOnChange(true, true);
  412.             configuration.addConsoleItem(jtiItem);
  413.            
  414.             StringConsoleItem jtiAsIdMessaggioItem = (StringConsoleItem)
  415.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  416.                     ConsoleItemType.SELECT,
  417.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_RICHIESTA_ID :
  418.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_RISPOSTA_ID,
  419.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_LABEL);
  420.             jtiAsIdMessaggioItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_LABEL_AUTHORIZATION,
  421.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_VALUE_AUTHORIZATION);
  422.             jtiAsIdMessaggioItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_LABEL_MODI.
  423.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()),
  424.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_VALUE_MODI);
  425.             jtiAsIdMessaggioItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_VALUE_DEFAULT);
  426.             if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_VALUE_DEFAULT.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_VALUE_SAME)) {
  427.                 jtiAsIdMessaggioItem.setType(ConsoleItemType.HIDDEN);
  428.             }
  429.             else {
  430.                 jtiAsIdMessaggioItem.setUseDefaultValueForCloseableSection(true);
  431.             }
  432.             configuration.addConsoleItem(jtiAsIdMessaggioItem);
  433.            
  434.             if((request && fruizione)) {
  435.                 StringConsoleItem audItem = (StringConsoleItem)
  436.                         ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  437.                         ConsoleItemType.SELECT,
  438.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RICHIESTA_ID,
  439.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL);
  440.                 audItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL_SAME,
  441.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_SAME);
  442.                 audItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL_DIFFERENT,
  443.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DIFFERENT);
  444.                 audItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DEFAULT);
  445.                 audItem.setUseDefaultValueForCloseableSection(true);
  446.                 audItem.setReloadOnChange(true, true);
  447.                 configuration.addConsoleItem(audItem);
  448.                
  449.                 StringConsoleItem audValueItem = (StringConsoleItem)
  450.                         ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  451.                         ConsoleItemType.TEXT_AREA,
  452.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_RICHIESTA_ID,
  453.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_LABEL);
  454.                 audValueItem.setRows(2);
  455.                 if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DEFAULT.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_SAME)) {
  456.                     audValueItem.setType(ConsoleItemType.HIDDEN);
  457.                 }
  458.                 else {
  459.                     audValueItem.setRequired(true);
  460.                 }
  461.                 configuration.addConsoleItem(audValueItem);
  462.             }
  463.            
  464.             StringConsoleItem authorizationClaimsItem = (StringConsoleItem)
  465.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  466.                     ConsoleItemType.TEXT_AREA,
  467.                     (request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_RICHIESTA_ID :
  468.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_RISPOSTA_ID),
  469.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_LABEL);
  470.             authorizationClaimsItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_NOTE);
  471.             ConsoleItemInfo infoAuthorization = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_LABEL);
  472.             try {
  473.                 infoAuthorization.setHeaderBody(DynamicHelperCostanti.getLABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO(request,
  474.                         modiProperties.getUsedRestSecurityClaims(request, digest)));
  475.             }catch(Exception e) {
  476.                 throw new ProtocolException(e.getMessage(),e);
  477.             }
  478.             infoAuthorization.setListBody(request ? DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO_VALORI_REQUEST :
  479.                 DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO_VALORI_RESPONSE);
  480.             authorizationClaimsItem.setInfo(infoAuthorization);
  481.             authorizationClaimsItem.setRows(2);
  482.             authorizationClaimsItem.setDefaultValue("");
  483.             authorizationClaimsItem.setUseDefaultValueForCloseableSection(true);
  484.             configuration.addConsoleItem(authorizationClaimsItem);
  485.            
  486.             StringConsoleItem modiClaimsItem = (StringConsoleItem)
  487.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  488.                     ConsoleItemType.TEXT_AREA,
  489.                     (request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_RICHIESTA_ID :
  490.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_RISPOSTA_ID),
  491.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_LABEL.
  492.                         replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()));
  493.             modiClaimsItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_NOTE);
  494.             ConsoleItemInfo infoModi = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_LABEL.
  495.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()));
  496.             try {
  497.                 infoModi.setHeaderBody(DynamicHelperCostanti.getLABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO(request,
  498.                         modiProperties.getUsedRestSecurityClaims(request, digest)));
  499.             }catch(Exception e) {
  500.                 throw new ProtocolException(e.getMessage(),e);
  501.             }
  502.             infoModi.setListBody(request ? DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO_VALORI_REQUEST :
  503.                 DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_INFO_VALORI_RESPONSE);
  504.             modiClaimsItem.setInfo(infoModi);
  505.             modiClaimsItem.setRows(2);
  506.             modiClaimsItem.setDefaultValue("");
  507.             modiClaimsItem.setUseDefaultValueForCloseableSection(true);
  508.             configuration.addConsoleItem(modiClaimsItem);
  509.            
  510.             // NOTA: se si aggiunge un elemento a questo posizione, riconfigurare setLastItemId nel subsection item
  511.         }
  512.        
  513.         // Header Duplicati
  514.         if(rest && headerDuplicati &&
  515.                 (
  516.                         (!request && fruizione)
  517.                         ||
  518.                         (request && !fruizione)
  519.                 )
  520.             ) {
  521.                        
  522.             SubtitleConsoleItem subtitleItem = (SubtitleConsoleItem) ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_VALIDAZIONE_ID,
  523.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_LABEL.
  524.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()));
  525.             subtitleItem.setCloseable(true);
  526.             if(request) {
  527.                 subtitleItem.setLastItemId(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RICHIESTA_ID);
  528.             }
  529.             else {
  530.                 subtitleItem.setLastItemId(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RISPOSTA_ID);
  531.             }
  532.             configuration.addConsoleItem(subtitleItem);
  533.            
  534.             StringConsoleItem jtiItem = (StringConsoleItem)
  535.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  536.                     ConsoleItemType.SELECT,
  537.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_RICHIESTA_ID :
  538.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_RISPOSTA_ID,
  539.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_LABEL);
  540.             jtiItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_LABEL_AUTHORIZATION,
  541.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_VALUE_AUTHORIZATION);
  542.             jtiItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_LABEL_MODI.
  543.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()),
  544.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_VALUE_MODI);
  545.             jtiItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_VALUE_DEFAULT);
  546.             jtiItem.setUseDefaultValueForCloseableSection(true);
  547.             configuration.addConsoleItem(jtiItem);
  548.            
  549.             StringConsoleItem audItem = (StringConsoleItem)
  550.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  551.                     ConsoleItemType.SELECT,
  552.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RICHIESTA_ID :
  553.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RISPOSTA_ID,
  554.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL);
  555.             audItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL_SAME,
  556.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_SAME);
  557.             audItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL_DIFFERENT,
  558.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DIFFERENT);
  559.             audItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DEFAULT);
  560.             audItem.setUseDefaultValueForCloseableSection(true);
  561.             audItem.setReloadOnChange(true, true);
  562.             configuration.addConsoleItem(audItem);
  563.            
  564.             StringConsoleItem audValueItem = (StringConsoleItem)
  565.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  566.                     ConsoleItemType.TEXT_AREA,
  567.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_RICHIESTA_ID :
  568.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_RISPOSTA_ID,
  569.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_LABEL);
  570.             audValueItem.setRows(2);
  571.             if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DEFAULT.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_SAME)) {
  572.                 audValueItem.setType(ConsoleItemType.HIDDEN);
  573.             }
  574.             else {
  575.                 audValueItem.setRequired(true);
  576.             }
  577.             ConsoleItemInfo info = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_LABEL);
  578.             info.setHeaderBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_INFO);
  579.             info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_AUDIENCE_INFO_VALORI_RESPONSE);
  580.             audValueItem.setInfo(info);
  581.             configuration.addConsoleItem(audValueItem);
  582.            
  583.             // NOTA: se si aggiunge un elemento a questo posizione, riconfigurare setLastItemId nel subsection item
  584.            
  585.         }
  586.        
  587.        
  588.         // Header Duplicati (gestione con token non locale)
  589.         if(!headerDuplicati && tokenNonLocale &&
  590.                 request && !fruizione  
  591.             ) {
  592.            
  593.             String labelSub = null;
  594.             if(rest) {
  595.                 labelSub = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_LABEL.
  596.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI());
  597.             }
  598.             else {
  599.                 labelSub = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_SOAP_LABEL;
  600.             }
  601.            
  602.             SubtitleConsoleItem subtitleItem = (SubtitleConsoleItem) ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_VALIDAZIONE_ID,
  603.                     labelSub);
  604.             subtitleItem.setCloseable(true);
  605.             subtitleItem.setLastItemId(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_RICHIESTA_ID);
  606.             configuration.addConsoleItem(subtitleItem);
  607.            
  608.             StringConsoleItem jtiItem = (StringConsoleItem)
  609.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  610.                     ConsoleItemType.SELECT,
  611.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_RICHIESTA_ID,
  612.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_LABEL);
  613.             jtiItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_LABEL_AUTHORIZATION,
  614.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_VALUE_AUTHORIZATION);
  615.             jtiItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_LABEL_MODI.
  616.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_SUBSECTION_TEMPLATE_HEADER_AGID, modiProperties.getRestSecurityTokenHeaderModI()),
  617.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_VALUE_MODI);
  618.             jtiItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_FILTRO_DUPLICATI_VALUE_DEFAULT);
  619.             jtiItem.setUseDefaultValueForCloseableSection(true);
  620.             configuration.addConsoleItem(jtiItem);
  621.                        
  622.             // NOTA: se si aggiunge un elemento a questo posizione, riconfigurare setLastItemId nel subsection item
  623.            
  624.         }
  625.        
  626.        
  627.         // Sicurezza OAuth
  628.        
  629.         if( fruizione && request ) {
  630.             boolean sicurezzaMessaggioPresente = true;
  631.             addSicurezzaTokenSignedJWT(rest,
  632.                     configuration,
  633.                     consoleOperationType, consoleHelper,
  634.                     registryReader, configIntegrationReader,
  635.                     idServizio, idFruitore,
  636.                     sicurezzaMessaggioPresente);
  637.         }
  638.        
  639.        
  640.        
  641.         // TrustStore
  642.        
  643.         if( (fruizione && !request) || (!fruizione && request) ) {
  644.            
  645.             // truststore per i certificati
  646.             ModIDynamicConfigurationKeystoreUtilities.addTrustStoreConfigSubSection(configuration, false, false);
  647.            
  648.             if(rest) {
  649.            
  650.                 // ssl per le url (x5u)
  651.                 ModIDynamicConfigurationKeystoreUtilities.addTrustStoreConfigSubSection(configuration, true, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5U_DEFAULT_VALUE);
  652.            
  653.             }
  654.            
  655.         }
  656.        
  657.        
  658.         // KeyStore
  659.        
  660.         if(!fruizione && !request) {
  661.             ModIDynamicConfigurationKeystoreUtilities.addKeystoreConfig(configuration, true, false, requiredValue);
  662.            
  663.             boolean sicurezzaMessaggioPresente = true;
  664.             if(rest && kidMode) {
  665.                 addSicurezzaOAuth(rest,
  666.                         configuration,
  667.                         consoleOperationType, consoleHelper,
  668.                         registryReader, configIntegrationReader,
  669.                         idServizio,
  670.                         sicurezzaMessaggioPresente);
  671.             }
  672.            
  673.         }
  674.        
  675.         if(fruizione && request) {
  676.             ModIDynamicConfigurationKeystoreUtilities.addKeystoreConfig(configuration, true, false, requiredValue);
  677.         }
  678.        
  679.     }
  680.    
  681.     private static String addCorniceSicurezzaSchema(ConsoleConfiguration configuration, boolean rest,
  682.             String schemaDatiCorniceSicurezza, boolean auditOnly) throws ProtocolException {
  683.        
  684.         String lastItemModeId = null;
  685.        
  686.         List<ModIAuditConfig> list = ModIProperties.getInstance().getAuditConfig();
  687.         if(list!=null && !list.isEmpty()) {
  688.             for (ModIAuditConfig modIAuditConfig : list) {
  689.                 if(modIAuditConfig.getNome().equals(schemaDatiCorniceSicurezza)) {
  690.                     lastItemModeId = addCorniceSicurezzaSchema(configuration, rest,
  691.                             modIAuditConfig,
  692.                             auditOnly);
  693.                     break;
  694.                 }
  695.             }
  696.         }
  697.        
  698.         return lastItemModeId;
  699.     }
  700.     private static String addCorniceSicurezzaSchemaAudience(ConsoleConfiguration configuration) throws ProtocolException {
  701.         String id = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_RICHIESTA_ID;
  702.         StringConsoleItem audItem = (StringConsoleItem)
  703.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  704.                 ConsoleItemType.SELECT,
  705.                 id,
  706.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_LABEL);
  707.         audItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_LABEL_SAME,
  708.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_VALUE_SAME);
  709.         audItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_LABEL_DIFFERENT,
  710.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_VALUE_DIFFERENT);
  711.         audItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_VALUE_DEFAULT);
  712.         audItem.setUseDefaultValueForCloseableSection(true);
  713.         audItem.setReloadOnChange(true, true);
  714.         configuration.addConsoleItem(audItem);
  715.        
  716.         StringConsoleItem audValueItem = (StringConsoleItem)
  717.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  718.                 ConsoleItemType.TEXT_AREA,
  719.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_AUDIT_CUSTOM_RICHIESTA_ID,
  720.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_AUDIT_CUSTOM_LABEL);
  721.         audValueItem.setRows(2);
  722.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_VALUE_DEFAULT.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_VALUE_SAME)) {
  723.             audValueItem.setType(ConsoleItemType.HIDDEN);
  724.         }
  725.         else {
  726.             audValueItem.setRequired(true);
  727.         }
  728.         configuration.addConsoleItem(audValueItem);
  729.        
  730.         return id;
  731.     }
  732.    
  733.     private static String addCorniceSicurezzaSchema(ConsoleConfiguration configuration, boolean rest,
  734.             ModIAuditConfig modIAuditConfig, boolean auditOnly) throws ProtocolException {
  735.        
  736.         String lastItemModeId = null;
  737.                
  738.         if(modIAuditConfig.getClaims()!=null && !modIAuditConfig.getClaims().isEmpty()) {
  739.            
  740.             if(!auditOnly) {
  741.                 addCorniceSicurezzaSchemaAudience(configuration);
  742.             }
  743.            
  744.             for (ModIAuditClaimConfig claimConfig : modIAuditConfig.getClaims()) {
  745.                 lastItemModeId = addCorniceSicurezzaSchemaItem(configuration, claimConfig, rest);
  746.             }
  747.         }
  748.        
  749.         return lastItemModeId;
  750.     }
  751.    
  752.     private static String addCorniceSicurezzaSchemaItem(ConsoleConfiguration configuration, ModIAuditClaimConfig claimConfig, boolean rest) throws ProtocolException {
  753.        
  754.         String modeId = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_MODE_ID_PREFIX+claimConfig.getNome();
  755.        
  756.         StringConsoleItem modeItem = (StringConsoleItem)
  757.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  758.                 ConsoleItemType.SELECT,
  759.                 modeId,
  760.                 claimConfig.getLabel());
  761.         modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_DEFAULT,
  762.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT);
  763.         modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_RIDEFINISCI,
  764.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI);
  765.         modeItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_MODE_DEFAULT_VALUE);
  766.         modeItem.setUseDefaultValueForCloseableSection(true);
  767.         modeItem.setReloadOnChange(true, true);
  768.         configuration.addConsoleItem(modeItem);
  769.        
  770.         StringConsoleItem ridefineItem = (StringConsoleItem)
  771.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  772.                 ConsoleItemType.TEXT_AREA,
  773.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_ID_PREFIX+claimConfig.getNome(),
  774.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_LABEL);
  775.         ridefineItem.setRequired(true);
  776.         ridefineItem.setRows(2);
  777.         ridefineItem.setInfo(buildConsoleItemInfoCorniceSicurezza(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_LABEL, rest));
  778.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_MODE_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT)) {
  779.             ridefineItem.setType(ConsoleItemType.HIDDEN);
  780.         }
  781.         configuration.addConsoleItem(ridefineItem);
  782.        
  783.         return modeId;
  784.     }
  785.    
  786.     static String addCorniceSicurezzaLegacy(ConsoleConfiguration configuration, boolean rest) throws ProtocolException {
  787.         StringConsoleItem modeCodiceEnteItem = (StringConsoleItem)
  788.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  789.                 ConsoleItemType.SELECT,
  790.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_ID,
  791.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_LABEL);
  792.         modeCodiceEnteItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_DEFAULT,
  793.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT);
  794.         modeCodiceEnteItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_RIDEFINISCI,
  795.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI);
  796.         modeCodiceEnteItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_DEFAULT_VALUE);
  797.         modeCodiceEnteItem.setUseDefaultValueForCloseableSection(true);
  798.         modeCodiceEnteItem.setReloadOnChange(true, true);
  799.         configuration.addConsoleItem(modeCodiceEnteItem);
  800.        
  801.         StringConsoleItem profiloSicurezzaMessaggioCorniceCodiceEnteItem = (StringConsoleItem)
  802.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  803.                 ConsoleItemType.TEXT_AREA,
  804.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_ID,
  805.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_LABEL);
  806.         profiloSicurezzaMessaggioCorniceCodiceEnteItem.setRequired(true);
  807.         profiloSicurezzaMessaggioCorniceCodiceEnteItem.setRows(2);
  808.         profiloSicurezzaMessaggioCorniceCodiceEnteItem.setInfo(buildConsoleItemInfoCorniceSicurezza(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_LABEL, rest));
  809.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT)) {
  810.             profiloSicurezzaMessaggioCorniceCodiceEnteItem.setType(ConsoleItemType.HIDDEN);
  811.         }
  812.         configuration.addConsoleItem(profiloSicurezzaMessaggioCorniceCodiceEnteItem);
  813.        
  814.         StringConsoleItem modeUserItem = (StringConsoleItem)
  815.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  816.                 ConsoleItemType.SELECT,
  817.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_ID,
  818.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_LABEL);
  819.         modeUserItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_DEFAULT,
  820.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT);
  821.         modeUserItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_RIDEFINISCI,
  822.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI);
  823.         modeUserItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_DEFAULT_VALUE);
  824.         modeUserItem.setUseDefaultValueForCloseableSection(true);
  825.         modeUserItem.setReloadOnChange(true, true);
  826.         configuration.addConsoleItem(modeUserItem);
  827.        
  828.         StringConsoleItem profiloSicurezzaMessaggioCorniceUserItem = (StringConsoleItem)
  829.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  830.                 ConsoleItemType.TEXT_AREA,
  831.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_ID,
  832.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_LABEL);
  833.         profiloSicurezzaMessaggioCorniceUserItem.setRequired(true);
  834.         profiloSicurezzaMessaggioCorniceUserItem.setRows(2);
  835.         profiloSicurezzaMessaggioCorniceUserItem.setInfo(buildConsoleItemInfoCorniceSicurezza(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_LABEL, rest));
  836.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT)) {
  837.             profiloSicurezzaMessaggioCorniceUserItem.setType(ConsoleItemType.HIDDEN);
  838.         }
  839.         configuration.addConsoleItem(profiloSicurezzaMessaggioCorniceUserItem);
  840.        
  841.         StringConsoleItem modeIPUserItem = (StringConsoleItem)
  842.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  843.                 ConsoleItemType.SELECT,
  844.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_ID,
  845.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_LABEL);
  846.         modeIPUserItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_DEFAULT,
  847.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT);
  848.         modeIPUserItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_MODE_LABEL_RIDEFINISCI,
  849.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI);
  850.         modeIPUserItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_DEFAULT_VALUE);
  851.         modeIPUserItem.setUseDefaultValueForCloseableSection(true);
  852.         modeIPUserItem.setReloadOnChange(true, true);
  853.         configuration.addConsoleItem(modeIPUserItem);
  854.        
  855.         StringConsoleItem profiloSicurezzaMessaggioCorniceIPUserItem = (StringConsoleItem)
  856.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  857.                 ConsoleItemType.TEXT_AREA,
  858.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_ID,
  859.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_LABEL);
  860.         profiloSicurezzaMessaggioCorniceIPUserItem.setRequired(true);
  861.         profiloSicurezzaMessaggioCorniceIPUserItem.setRows(2);
  862.         profiloSicurezzaMessaggioCorniceIPUserItem.setInfo(buildConsoleItemInfoCorniceSicurezza(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_LABEL, rest));
  863.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT)) {
  864.             profiloSicurezzaMessaggioCorniceIPUserItem.setType(ConsoleItemType.HIDDEN);
  865.         }
  866.         configuration.addConsoleItem(profiloSicurezzaMessaggioCorniceIPUserItem);
  867.        
  868.         return ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_ID; // devo ritornare l'ultimo elemento "mode" per la chiusura della sezione
  869.     }
  870.    
  871.    
  872.     static boolean addSicurezzaTokenSignedJWT(boolean rest,
  873.             ConsoleConfiguration configuration,
  874.             ConsoleOperationType consoleOperationType, IConsoleHelper consoleHelper,
  875.             IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader,
  876.             IDServizio idServizio, IDSoggetto idFruitore,
  877.             boolean sicurezzaMessaggioPresente) throws ProtocolException {
  878.                
  879.         if( registryReader!=null && configIntegrationReader!=null ) {
  880.            
  881.             boolean tokenSignedJWT = false;
  882.             boolean pdnd = false;
  883.             if(ConsoleOperationType.ADD.equals(consoleOperationType)) {
  884.                
  885.                 String tokenPolicyViaAPI = null;
  886.                 try {
  887.                     tokenPolicyViaAPI = consoleHelper.getParameter(Costanti.CONSOLE_PARAMETRO_CONNETTORE_TOKEN_POLICY_VIA_API);
  888.                 }catch(Exception e) {
  889.                     throw new ProtocolException(e.getMessage(),e);
  890.                 }
  891.                 if(tokenPolicyViaAPI!=null && StringUtils.isNotEmpty(tokenPolicyViaAPI) && !Costanti.CONSOLE_DEFAULT_VALUE_NON_SELEZIONATO.equals(tokenPolicyViaAPI)) {
  892.                     tokenSignedJWT = isTokenPolicySignedJWT(configIntegrationReader, tokenPolicyViaAPI);
  893.                     if(tokenSignedJWT) {
  894.                         pdnd = isTokenPolicyPdnd(configIntegrationReader, tokenPolicyViaAPI);
  895.                     }
  896.                 }
  897.                 else {
  898.                
  899.                     String tokenPolicyStato = null;
  900.                     try {
  901.                         tokenPolicyStato = consoleHelper.getParameter(Costanti.CONSOLE_PARAMETRO_CONNETTORE_TOKEN_POLICY_STATO);
  902.                     }catch(Exception e) {
  903.                         throw new ProtocolException(e.getMessage(),e);
  904.                     }
  905.                     if(isEnabled(tokenPolicyStato)) {
  906.                    
  907.                         String tokenPolicy = null;
  908.                         try {
  909.                             tokenPolicy = consoleHelper.getParameter(Costanti.CONSOLE_PARAMETRO_CONNETTORE_TOKEN_POLICY);
  910.                         }catch(Exception e) {
  911.                             throw new ProtocolException(e.getMessage(),e);
  912.                         }
  913.                         if(tokenPolicy!=null && StringUtils.isNotEmpty(tokenPolicy) && !Costanti.CONSOLE_DEFAULT_VALUE_NON_SELEZIONATO.equals(tokenPolicy)) {
  914.                             tokenSignedJWT = isTokenPolicySignedJWT(configIntegrationReader, tokenPolicy);
  915.                             if(tokenSignedJWT) {
  916.                                 pdnd = isTokenPolicyPdnd(configIntegrationReader, tokenPolicy);
  917.                             }
  918.                         }
  919.                        
  920.                     }
  921.                    
  922.                 }
  923.             }
  924.             else {
  925.                
  926.                 if(idServizio!=null && idFruitore!=null) {
  927.                     try {
  928.                         AccordoServizioParteSpecifica asps = registryReader.getAccordoServizioParteSpecifica(idServizio, false);
  929.                         if(asps!=null && asps.sizeFruitoreList()>0) {
  930.                             for (Fruitore fruitore : asps.getFruitoreList()) {
  931.                                 if(fruitore!=null) {
  932.                                     IDSoggetto check = new IDSoggetto(fruitore.getTipo(), fruitore.getNome());
  933.                                     if(idFruitore.equals(check)) {
  934.                                         if(fruitore.getConnettore()!=null && !TipiConnettore.DISABILITATO.getNome().equals(fruitore.getConnettore().getTipo()) &&
  935.                                             fruitore.getConnettore().sizePropertyList()>0) {
  936.                                             for (Property p : fruitore.getConnettore().getPropertyList()) {
  937.                                                 if(CostantiConnettori.CONNETTORE_TOKEN_POLICY.equals(p.getNome())){
  938.                                                     String tokenPolicy = p.getValore();
  939.                                                     if(tokenPolicy!=null && StringUtils.isNotEmpty(tokenPolicy) && !Costanti.CONSOLE_DEFAULT_VALUE_NON_SELEZIONATO.equals(tokenPolicy)) {
  940.                                                         if(!tokenSignedJWT) {
  941.                                                             // se ancora non ne ho trovata una verifico
  942.                                                             tokenSignedJWT = isTokenPolicySignedJWT(configIntegrationReader, tokenPolicy);
  943.                                                         }
  944.                                                         if(tokenSignedJWT &&
  945.                                                             !pdnd) {
  946.                                                             // se non ne ho trovata ancora una pdnd, verifico
  947.                                                             pdnd = isTokenPolicyPdnd(configIntegrationReader, tokenPolicy);
  948.                                                         }
  949.                                                     }
  950.                                                 }
  951.                                             }
  952.                                         }
  953.                                         if(fruitore.getConfigurazioneAzioneList()!=null && !fruitore.getConfigurazioneAzioneList().isEmpty()) {
  954.                                             for (ConfigurazioneServizioAzione csa : fruitore.getConfigurazioneAzioneList()) {
  955.                                                 if(csa!=null &&
  956.                                                     csa.getConnettore()!=null && !TipiConnettore.DISABILITATO.getNome().equals(csa.getConnettore().getTipo()) &&
  957.                                                     csa.getConnettore().sizePropertyList()>0) {
  958.                                                     for (Property p : csa.getConnettore().getPropertyList()) {
  959.                                                         if(CostantiConnettori.CONNETTORE_TOKEN_POLICY.equals(p.getNome())){
  960.                                                             String tokenPolicy = p.getValore();
  961.                                                             if(tokenPolicy!=null && StringUtils.isNotEmpty(tokenPolicy) && !Costanti.CONSOLE_DEFAULT_VALUE_NON_SELEZIONATO.equals(tokenPolicy)) {
  962.                                                                 if(!tokenSignedJWT) {
  963.                                                                     // se ancora non ne ho trovata una verifico
  964.                                                                     tokenSignedJWT = isTokenPolicySignedJWT(configIntegrationReader, tokenPolicy);
  965.                                                                 }
  966.                                                                 if(tokenSignedJWT &&
  967.                                                                     !pdnd) {
  968.                                                                     // se non ne ho trovata ancora una pdnd, verifico
  969.                                                                     pdnd = isTokenPolicyPdnd(configIntegrationReader, tokenPolicy);
  970.                                                                 }
  971.                                                             }
  972.                                                         }
  973.                                                     }
  974.                                                 }
  975.                                             }
  976.                                         }
  977.                                     }
  978.                                 }
  979.                             }
  980.                         }
  981.                     }catch(Exception e) {
  982.                         throw new ProtocolException(e.getMessage(),e);
  983.                     }
  984.                 }
  985.                    
  986.             }
  987.            
  988.             if(tokenSignedJWT) {
  989.            
  990.                 addSicurezzaOAuth(rest, configuration,
  991.                         pdnd,
  992.                         sicurezzaMessaggioPresente,
  993.                         true);
  994.                
  995.             }
  996.            
  997.             return tokenSignedJWT;
  998.         }
  999.        
  1000.         return false;
  1001.     }
  1002.    
  1003.     private static void addSicurezzaOAuth(boolean rest,
  1004.             ConsoleConfiguration configuration,
  1005.             ConsoleOperationType consoleOperationType, IConsoleHelper consoleHelper,
  1006.             IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader,
  1007.             IDServizio idServizio,
  1008.             boolean sicurezzaMessaggioPresente) throws ProtocolException {
  1009.                
  1010.         if( registryReader!=null && configIntegrationReader!=null ) {
  1011.            
  1012.             boolean pdnd = false;
  1013.             if(ConsoleOperationType.ADD.equals(consoleOperationType)) {
  1014.                
  1015.                 String tokenPolicy = null;
  1016.                 try {
  1017.                     tokenPolicy = consoleHelper.getParameter(Costanti.CONSOLE_PARAMETRO_EROGAZIONE_TOKEN_POLICY);
  1018.                 }catch(Exception e) {
  1019.                     throw new ProtocolException(e.getMessage(),e);
  1020.                 }
  1021.                 if(tokenPolicy!=null && StringUtils.isNotEmpty(tokenPolicy) && !Costanti.CONSOLE_DEFAULT_VALUE_NON_SELEZIONATO.equals(tokenPolicy)) {
  1022.                     pdnd = isTokenPolicyErogazionePDND(tokenPolicy);        
  1023.                 }
  1024.             }
  1025.             else {
  1026.                 pdnd = isTokenPolicyErogazionePDNDChangeOperation(registryReader, configIntegrationReader,
  1027.                         idServizio);
  1028.             }
  1029.            
  1030.             addSicurezzaOAuth(rest, configuration,
  1031.                     pdnd,
  1032.                     sicurezzaMessaggioPresente,
  1033.                     false);
  1034.            
  1035.         }

  1036.     }
  1037.     private static boolean isTokenPolicyErogazionePDNDChangeOperation(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader,
  1038.             IDServizio idServizio) throws ProtocolException {
  1039.         if(idServizio!=null) {
  1040.             try {
  1041.                 AccordoServizioParteSpecifica asps = registryReader.getAccordoServizioParteSpecifica(idServizio, false);
  1042.                 if(asps!=null) {
  1043.                     List<MappingErogazionePortaApplicativa> list = configIntegrationReader.getMappingErogazionePortaApplicativaList(idServizio);
  1044.                     return isTokenPolicyErogazionePDNDChangeOperation(list, configIntegrationReader);
  1045.                 }
  1046.             }catch(Exception e) {
  1047.                 throw new ProtocolException(e.getMessage(),e);
  1048.             }
  1049.         }
  1050.         return false;
  1051.     }
  1052.     private static boolean isTokenPolicyErogazionePDNDChangeOperation(List<MappingErogazionePortaApplicativa> list, IConfigIntegrationReader configIntegrationReader) throws RegistryNotFound, RegistryException {
  1053.         if(list!=null && !list.isEmpty()) {
  1054.             for (MappingErogazionePortaApplicativa mappingErogazionePortaApplicativa : list) {
  1055.                 PortaApplicativa pa = configIntegrationReader.getPortaApplicativa(mappingErogazionePortaApplicativa.getIdPortaApplicativa());
  1056.                 if(pa!=null && pa.getGestioneToken()!=null && pa.getGestioneToken().getPolicy()!=null) {
  1057.                     boolean pdnd = isTokenPolicyErogazionePDND(pa.getGestioneToken().getPolicy());
  1058.                     if(pdnd) {
  1059.                         return true;
  1060.                     }
  1061.                 }
  1062.             }
  1063.         }
  1064.         return false;
  1065.     }
  1066.     private static boolean isTokenPolicyErogazionePDND(String tokenPolicy) {
  1067.         if(tokenPolicy!=null && StringUtils.isNotEmpty(tokenPolicy) && !Costanti.CONSOLE_DEFAULT_VALUE_NON_SELEZIONATO.equals(tokenPolicy)) {
  1068.             return tokenPolicy.toLowerCase().contains("pdnd");          
  1069.         }
  1070.         return false;
  1071.     }
  1072.    
  1073.     private static void addSicurezzaOAuth(boolean rest, ConsoleConfiguration configuration,
  1074.             boolean pdnd,
  1075.             boolean sicurezzaMessaggioPresente,
  1076.             boolean section) throws ProtocolException {
  1077.         if(section) {
  1078.             if(sicurezzaMessaggioPresente) {
  1079.                 String label = pdnd ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_SUBSECTION_LABEL_PDND :
  1080.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_SUBSECTION_LABEL_OAUTH;
  1081.                 SubtitleConsoleItem subtitleItem = (SubtitleConsoleItem) ProtocolPropertiesFactory.newSubTitleItem(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_SUBSECTION_ID,
  1082.                         label);
  1083.                 subtitleItem.setCloseable(true);
  1084.                 subtitleItem.setLastItemId(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ID);
  1085.                 configuration.addConsoleItem(subtitleItem);
  1086.             }
  1087.             else {
  1088.                 String label = pdnd ? ModIConsoleCostanti.MODIPA_API_IMPL_SICUREZZA_OAUTH_LABEL_PDND :
  1089.                     ModIConsoleCostanti.MODIPA_API_IMPL_SICUREZZA_OAUTH_LABEL_OAUTH;
  1090.                 BaseConsoleItem titolo = ProtocolPropertiesFactory.newTitleItem(
  1091.                         ModIConsoleCostanti.MODIPA_API_IMPL_SICUREZZA_OAUTH_ID,
  1092.                         label);
  1093.                 configuration.addConsoleItem(titolo );
  1094.             }
  1095.         }
  1096.                
  1097.         StringConsoleItem profiloSicurezzaOauthKidItem = (StringConsoleItem)
  1098.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1099.                 ConsoleItemType.TEXT_AREA,
  1100.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_ID,
  1101.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_LABEL);
  1102.         profiloSicurezzaOauthKidItem.setRows(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_ROWS);
  1103.         ConsoleItemInfo info = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_LABEL);
  1104.         info.setHeaderBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_INFO);
  1105.         if(rest) {
  1106.             info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_REST_INFO_VALORI_REQUEST);
  1107.         }
  1108.         else {
  1109.             info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_SOAP_INFO_VALORI_REQUEST);
  1110.         }
  1111.         profiloSicurezzaOauthKidItem.setInfo(info);
  1112.         if(sicurezzaMessaggioPresente && section) {
  1113.             profiloSicurezzaOauthKidItem.setDefaultValue("");
  1114.             profiloSicurezzaOauthKidItem.setUseDefaultValueForCloseableSection(true);
  1115.         }
  1116.         configuration.addConsoleItem(profiloSicurezzaOauthKidItem);
  1117.        
  1118.        
  1119.        
  1120.         StringConsoleItem profiloSicurezzaOauthIdentificativoItem = (StringConsoleItem)
  1121.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1122.                 ConsoleItemType.TEXT_AREA,
  1123.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ID,
  1124.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_LABEL);
  1125.         profiloSicurezzaOauthIdentificativoItem.setRows(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ROWS);
  1126.         info = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_LABEL);
  1127.         info.setHeaderBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_INFO);
  1128.         if(rest) {
  1129.             info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_REST_INFO_VALORI_REQUEST);
  1130.         }
  1131.         else {
  1132.             info.setListBody(DynamicHelperCostanti.LABEL_PARAMETRO_MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_SOAP_INFO_VALORI_REQUEST);
  1133.         }
  1134.         profiloSicurezzaOauthIdentificativoItem.setInfo(info);
  1135.         if(sicurezzaMessaggioPresente && section) {
  1136.             profiloSicurezzaOauthIdentificativoItem.setDefaultValue("");
  1137.             profiloSicurezzaOauthIdentificativoItem.setUseDefaultValueForCloseableSection(true);
  1138.         }
  1139.         configuration.addConsoleItem(profiloSicurezzaOauthIdentificativoItem);
  1140.        
  1141.        
  1142.        
  1143.         // NOTA: se si aggiunge un elemento a questo posizione, riconfigurare setLastItemId nel subsection item
  1144.     }
  1145.            
  1146.    
  1147.     static boolean isTokenPolicySignedJWT(IConfigIntegrationReader configIntegrationReader, String tokenPolicy) throws ProtocolException {
  1148.         return ModIPropertiesUtils.isTokenPolicySignedJWT(configIntegrationReader, tokenPolicy);
  1149.     }
  1150.    
  1151.     static boolean isTokenPolicyPdnd(IConfigIntegrationReader configIntegrationReader, String tokenPolicy) throws ProtocolException {
  1152.         return ModIPropertiesUtils.isTokenPolicyPdnd(configIntegrationReader, tokenPolicy);
  1153.     }
  1154.    
  1155.     private static boolean isEnabled(String v) {
  1156.         return "true".equals(v) || "yes".equals(v);
  1157.     }
  1158.    
  1159.     static ConsoleItemInfo buildConsoleItemInfoCorniceSicurezza(String intestazione, boolean rest) {
  1160.        
  1161.         try {
  1162.             ConsoleItemInfo c = new ConsoleItemInfo(intestazione);
  1163.            
  1164.             c.setHeaderBody(DynamicHelperCostanti.LABEL_CONFIGURAZIONE_INFO_TRASPORTO);
  1165.            
  1166.             boolean modi = true;
  1167.             boolean fruizione = false; // e' ininfluente tanto poi faccio il forceNoSecToken
  1168.             boolean forceNoSecToken = true;
  1169.             if(rest) {
  1170.                 c.setListBody(DynamicHelperCostanti.getLABEL_CONFIGURAZIONE_INFO_TRASFORMAZIONI_TRASPORTO_REST_VALORI(modi,fruizione,forceNoSecToken));
  1171.             }
  1172.             else {
  1173.                 c.setListBody(DynamicHelperCostanti.getLABEL_CONFIGURAZIONE_INFO_TRASFORMAZIONI_TRASPORTO_SOAP_VALORI(modi,fruizione,forceNoSecToken));
  1174.             }
  1175.            
  1176.             return c;
  1177.            
  1178.         }catch(Exception t) {
  1179.             try {
  1180.                 LoggerWrapperFactory.getLogger("govwayConsole.core").error(t.getMessage(),t);
  1181.             }catch(Exception tInternal) {
  1182.                 /**System.err.println("ERRORE: "+t.getMessage());
  1183.                 t.printStackTrace(System.err);*/
  1184.             }
  1185.             return null;
  1186.         }
  1187.        
  1188.     }
  1189.    
  1190.     static void addConfigurazioneFirmaRest(ModIProperties modiProperties,
  1191.             ConsoleConfiguration configuration, boolean fruizione, boolean request, boolean digest, boolean requiredValue, boolean riferimentoX509) throws ProtocolException {
  1192.         String idProfiloSicurezzaMessaggioAlgItem = null;
  1193.         if(fruizione && request) {
  1194.             idProfiloSicurezzaMessaggioAlgItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_RICHIESTA_ID;
  1195.         }
  1196.         else if(!fruizione && !request) {
  1197.             idProfiloSicurezzaMessaggioAlgItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_RISPOSTA_ID;
  1198.         }
  1199.         if(idProfiloSicurezzaMessaggioAlgItem!=null) {
  1200.             StringConsoleItem profiloSicurezzaMessaggioAlgItem = (StringConsoleItem)
  1201.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1202.                     ConsoleItemType.SELECT,
  1203.                     idProfiloSicurezzaMessaggioAlgItem,
  1204.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_LABEL);
  1205.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_RS256,
  1206.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_RS256);
  1207.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_RS384,
  1208.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_RS384);
  1209.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_RS512,
  1210.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_RS512);
  1211.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_ES256,
  1212.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_ES256);
  1213.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_ES384,
  1214.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_ES384);
  1215.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_ES512,
  1216.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_VALUE_ES512);
  1217.             profiloSicurezzaMessaggioAlgItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_ALG_DEFAULT_VALUE);
  1218.             configuration.addConsoleItem(profiloSicurezzaMessaggioAlgItem);
  1219.         }
  1220.        
  1221.         if(digest) {
  1222.             String idProfiloSicurezzaMessaggioDigestEncodingItem = null;
  1223.             if(fruizione && request) {
  1224.                 idProfiloSicurezzaMessaggioDigestEncodingItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_RICHIESTA_ID;
  1225.             }
  1226.             else if(!fruizione && !request) {
  1227.                 idProfiloSicurezzaMessaggioDigestEncodingItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_RISPOSTA_ID;
  1228.             }
  1229.             if(idProfiloSicurezzaMessaggioDigestEncodingItem!=null) {
  1230.                 StringConsoleItem profiloSicurezzaMessaggioDigestEncodingItem = (StringConsoleItem)
  1231.                         ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1232.                         ConsoleItemType.SELECT,
  1233.                         idProfiloSicurezzaMessaggioDigestEncodingItem,
  1234.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_LABEL);
  1235.                 profiloSicurezzaMessaggioDigestEncodingItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_LABEL_BASE64,
  1236.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_VALUE_BASE64);
  1237.                 profiloSicurezzaMessaggioDigestEncodingItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_LABEL_HEX,
  1238.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_VALUE_HEX);
  1239.                 try {
  1240.                     profiloSicurezzaMessaggioDigestEncodingItem.setDefaultValue(modiProperties.getRestSecurityTokenDigestDefaultEncoding().name());
  1241.                 }catch(Exception e) {
  1242.                     throw new ProtocolException(e.getMessage(),e);
  1243.                 }
  1244.                 profiloSicurezzaMessaggioDigestEncodingItem.setType(ConsoleItemType.HIDDEN);
  1245.                 configuration.addConsoleItem(profiloSicurezzaMessaggioDigestEncodingItem);
  1246.             }
  1247.         }
  1248.        
  1249.         if(digest &&
  1250.             ( (request && fruizione) || (!request && !fruizione) )
  1251.         ){

  1252.             StringConsoleItem profiloSicurezzaMessaggioHttpHeadersItem = (StringConsoleItem)
  1253.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1254.                     ConsoleItemType.TAGS,
  1255.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_REST_ID,
  1256.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_REST_LABEL);
  1257.             /**profiloSicurezzaMessaggioHttpHeadersItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_NOTE);
  1258.             //profiloSicurezzaMessaggioHttpHeadersItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_DEFAULT_VALUE); */
  1259.             try {
  1260.                 profiloSicurezzaMessaggioHttpHeadersItem.setDefaultValue(modiProperties.getRestSecurityTokenSignedHeadersAsString());
  1261.             }catch(Exception e) {
  1262.                 throw new ProtocolException(e.getMessage(),e);
  1263.             }
  1264.             profiloSicurezzaMessaggioHttpHeadersItem.setRequired(true);
  1265.             configuration.addConsoleItem(profiloSicurezzaMessaggioHttpHeadersItem);
  1266.            
  1267.         }
  1268.        
  1269.         if(!request && riferimentoX509) {
  1270.             StringConsoleItem profiloSicurezzaMessaggioRifX509AsRequestItem = (StringConsoleItem)
  1271.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1272.                     ConsoleItemType.SELECT,
  1273.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_ID,
  1274.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_LABEL);
  1275.             profiloSicurezzaMessaggioRifX509AsRequestItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_LABEL_TRUE,
  1276.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_VALUE_TRUE);
  1277.             profiloSicurezzaMessaggioRifX509AsRequestItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_LABEL_FALSE,
  1278.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_VALUE_FALSE);
  1279.             profiloSicurezzaMessaggioRifX509AsRequestItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_DEFAULT_VALUE);
  1280.             profiloSicurezzaMessaggioRifX509AsRequestItem.setReloadOnChange(true, true);
  1281.             configuration.addConsoleItem(profiloSicurezzaMessaggioRifX509AsRequestItem);
  1282.         }
  1283.        
  1284.         if(riferimentoX509) {
  1285.             String rifX509Id = request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RICHIESTA_RIFERIMENTO_X509_ID :
  1286.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_RIFERIMENTO_X509_ID;
  1287.             StringConsoleItem profiloSicurezzaMessaggioRifX509Item = (StringConsoleItem)
  1288.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1289.                     ConsoleItemType.MULTI_SELECT,
  1290.                     rifX509Id,
  1291.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_LABEL : "");
  1292.             profiloSicurezzaMessaggioRifX509Item.setRows(3);
  1293.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_LABEL_X5C,
  1294.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5C);
  1295.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_LABEL_X5T,
  1296.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5T);
  1297.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_LABEL_X5U,
  1298.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5U);
  1299.             List<String> profiloSicurezzaMessaggioRifX509ItemDefault = new ArrayList<>();
  1300.             if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5C_DEFAULT_VALUE) {
  1301.                 profiloSicurezzaMessaggioRifX509ItemDefault.add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5C);
  1302.             }
  1303.             if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5T_DEFAULT_VALUE) {
  1304.                 profiloSicurezzaMessaggioRifX509ItemDefault.add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5T);
  1305.             }
  1306.             if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5U_DEFAULT_VALUE) {
  1307.                 profiloSicurezzaMessaggioRifX509ItemDefault.add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5U);
  1308.             }
  1309.             ProtocolPropertiesUtils.setDefaultValueMultiSelect(profiloSicurezzaMessaggioRifX509ItemDefault, profiloSicurezzaMessaggioRifX509Item);
  1310.             profiloSicurezzaMessaggioRifX509Item.setReloadOnChange(true, true);
  1311.             configuration.addConsoleItem(profiloSicurezzaMessaggioRifX509Item);
  1312.            
  1313.             String rifX509Xc5ChainId = null;
  1314.             if(fruizione && request) {
  1315.                 rifX509Xc5ChainId = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RICHIESTA_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_ID;
  1316.             }
  1317.             else if(!fruizione && !request) {
  1318.                 rifX509Xc5ChainId = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_ID;
  1319.             }
  1320.             if(rifX509Xc5ChainId!=null) {
  1321.                 BooleanConsoleItem profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificate = (BooleanConsoleItem)
  1322.                         ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.BOOLEAN,
  1323.                         ConsoleItemType.CHECKBOX,
  1324.                         rifX509Xc5ChainId,
  1325.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_LABEL);
  1326.                 if(!ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5C_DEFAULT_VALUE) {
  1327.                     profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificate.setType(ConsoleItemType.HIDDEN);
  1328.                 }
  1329.                 profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificate.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_DEFAULT_VALUE);
  1330.                 configuration.addConsoleItem(profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificate);
  1331.             }
  1332.         }
  1333.        
  1334.         String idUrl = null;
  1335.         if(fruizione && request) {
  1336.             idUrl = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RICHIESTA_X5U_URL_ID;
  1337.         }
  1338.         else if(!fruizione && !request) {
  1339.             idUrl = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_X5U_URL_ID;
  1340.         }
  1341.         if(idUrl!=null) {
  1342.             StringConsoleItem profiloSicurezzaMessaggioX5UItem = (StringConsoleItem)
  1343.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1344.                 ConsoleItemType.TEXT_AREA,
  1345.                 idUrl,
  1346.                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_X5U_URL_LABEL);
  1347.             profiloSicurezzaMessaggioX5UItem.setRows(2);
  1348.             profiloSicurezzaMessaggioX5UItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_X5U_URL_NOTE);
  1349.             ConsoleItemInfo infoX5U = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_X5U_URL_LABEL);
  1350.             infoX5U.setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_X5U_URL_INFO);
  1351.             profiloSicurezzaMessaggioX5UItem.setInfo(infoX5U);
  1352.             if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_X5U_DEFAULT_VALUE) {
  1353.                 profiloSicurezzaMessaggioX5UItem.setRequired(requiredValue);
  1354.             }
  1355.             else {
  1356.                 profiloSicurezzaMessaggioX5UItem.setRequired(false);
  1357.                 profiloSicurezzaMessaggioX5UItem.setType(ConsoleItemType.HIDDEN);
  1358.             }
  1359.            
  1360.             if(fruizione && request) {
  1361.                 profiloSicurezzaMessaggioX5UItem.setRequired(false);
  1362.                 profiloSicurezzaMessaggioX5UItem.setType(ConsoleItemType.HIDDEN);
  1363.             }
  1364.            
  1365.             configuration.addConsoleItem(profiloSicurezzaMessaggioX5UItem);
  1366.         }

  1367.     }
  1368.    
  1369.     static void addConfigurazioneFirmaSoap(ModIProperties modiProperties,
  1370.             ConsoleConfiguration configuration, boolean fruizione, boolean request, boolean digest) throws ProtocolException {
  1371.        
  1372.         String idProfiloSicurezzaMessaggioAlgItem = null;
  1373.         if(fruizione && request) {
  1374.             idProfiloSicurezzaMessaggioAlgItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_RICHIESTA_ID;
  1375.         }
  1376.         else if(!fruizione && !request) {
  1377.             idProfiloSicurezzaMessaggioAlgItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_RISPOSTA_ID;
  1378.         }
  1379.         if(idProfiloSicurezzaMessaggioAlgItem!=null) {
  1380.             StringConsoleItem profiloSicurezzaMessaggioAlgItem = (StringConsoleItem)
  1381.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1382.                     ConsoleItemType.SELECT,
  1383.                     idProfiloSicurezzaMessaggioAlgItem,
  1384.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL);
  1385.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_DSA_SHA_256,
  1386.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_DSA_SHA_256);
  1387.             if((modiProperties.isModIVersioneBozza()!=null && modiProperties.isModIVersioneBozza().booleanValue())) {
  1388.                 profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_RSA_SHA_224,
  1389.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_RSA_SHA_224);
  1390.             }
  1391.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_RSA_SHA_256,
  1392.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_RSA_SHA_256);
  1393.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_RSA_SHA_384,
  1394.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_RSA_SHA_384);
  1395.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_RSA_SHA_512,
  1396.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_RSA_SHA_512);
  1397.             if((modiProperties.isModIVersioneBozza()!=null && modiProperties.isModIVersioneBozza().booleanValue())) {
  1398.                 profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_ECDSA_SHA_224,
  1399.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_ECDSA_SHA_224);
  1400.             }
  1401.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_ECDSA_SHA_256,
  1402.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_ECDSA_SHA_256);
  1403.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_ECDSA_SHA_384,
  1404.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_ECDSA_SHA_384);
  1405.             profiloSicurezzaMessaggioAlgItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_LABEL_ECDSA_SHA_512,
  1406.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_VALUE_ECDSA_SHA_512);
  1407.             profiloSicurezzaMessaggioAlgItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_ALG_DEFAULT_VALUE);
  1408.             configuration.addConsoleItem(profiloSicurezzaMessaggioAlgItem);
  1409.         }
  1410.        
  1411.         String idProfiloSicurezzaMessaggioAlgC14NItem = null;
  1412.         if(fruizione && request) {
  1413.             idProfiloSicurezzaMessaggioAlgC14NItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_RICHIESTA_ID;
  1414.         }
  1415.         else if(!fruizione && !request) {
  1416.             idProfiloSicurezzaMessaggioAlgC14NItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_RISPOSTA_ID;
  1417.         }
  1418.         if(idProfiloSicurezzaMessaggioAlgC14NItem!=null) {
  1419.             StringConsoleItem profiloSicurezzaMessaggioAlgC14NItem = (StringConsoleItem)
  1420.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1421.                     ConsoleItemType.SELECT,
  1422.                     idProfiloSicurezzaMessaggioAlgC14NItem,
  1423.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_LABEL);
  1424.             profiloSicurezzaMessaggioAlgC14NItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_LABEL_INCLUSIVE_C14N_10,
  1425.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_VALUE_INCLUSIVE_C14N_10);
  1426.             profiloSicurezzaMessaggioAlgC14NItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_LABEL_INCLUSIVE_C14N_11,
  1427.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_VALUE_INCLUSIVE_C14N_11);
  1428.             profiloSicurezzaMessaggioAlgC14NItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_LABEL_EXCLUSIVE_C14N_10,
  1429.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_VALUE_EXCLUSIVE_C14N_10);
  1430.             profiloSicurezzaMessaggioAlgC14NItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_CANONICALIZATION_ALG_DEFAULT_VALUE);
  1431.             configuration.addConsoleItem(profiloSicurezzaMessaggioAlgC14NItem);
  1432.         }
  1433.        
  1434.        
  1435.         if(digest &&
  1436.             ( (request && fruizione) || (!request && !fruizione) )
  1437.             ){

  1438.             StringConsoleItem profiloSicurezzaMessaggioSoapHeadersItem = (StringConsoleItem)
  1439.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1440.                     ConsoleItemType.TEXT_AREA,
  1441.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_SOAP_ID,
  1442.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_SOAP_LABEL);
  1443.             profiloSicurezzaMessaggioSoapHeadersItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_NOTE);
  1444.             profiloSicurezzaMessaggioSoapHeadersItem.setRequired(false);
  1445.             profiloSicurezzaMessaggioSoapHeadersItem.setRows(3);
  1446.             ConsoleItemInfo info = new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_SOAP_LABEL);
  1447.             info.setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_INFO);
  1448.             profiloSicurezzaMessaggioSoapHeadersItem.setInfo(info);
  1449.             configuration.addConsoleItem(profiloSicurezzaMessaggioSoapHeadersItem);
  1450.            
  1451.         }
  1452.        
  1453.        
  1454.         String rifX509Id = null;
  1455.         if(fruizione && request) {
  1456.             rifX509Id = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_ID;
  1457.         }
  1458.         else if(!fruizione && !request) {
  1459.             rifX509Id = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_ID;
  1460.         }
  1461.         if(rifX509Id!=null) {

  1462.             StringConsoleItem profiloSicurezzaMessaggioRifX509Item = (StringConsoleItem)
  1463.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  1464.                     ConsoleItemType.SELECT,
  1465.                     rifX509Id,
  1466.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL);
  1467.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL_BINARY_SECURITY_TOKEN,
  1468.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_BINARY_SECURITY_TOKEN);
  1469.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL_SECURITY_TOKEN_REFERENCE,
  1470.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_SECURITY_TOKEN_REFERENCE);
  1471.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL_KEY_IDENTIFIER_X509,
  1472.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_X509);
  1473.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL_KEY_IDENTIFIER_THUMBPRINT,
  1474.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_THUMBPRINT);
  1475.             profiloSicurezzaMessaggioRifX509Item.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_LABEL_KEY_IDENTIFIER_SKI,
  1476.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_SKI);
  1477.             profiloSicurezzaMessaggioRifX509Item.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_DEFAULT_VALUE);
  1478.             profiloSicurezzaMessaggioRifX509Item.setReloadOnChange(true, true);
  1479.             configuration.addConsoleItem(profiloSicurezzaMessaggioRifX509Item);
  1480.            
  1481.             BooleanConsoleItem profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificate = (BooleanConsoleItem)
  1482.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.BOOLEAN,
  1483.                     ConsoleItemType.CHECKBOX,
  1484.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_ID:
  1485.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_ID,
  1486.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_LABEL);
  1487.             if(! ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_BINARY_SECURITY_TOKEN.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_DEFAULT_VALUE)) {
  1488.                 profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificate.setType(ConsoleItemType.HIDDEN);
  1489.             }
  1490.             profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificate.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_DEFAULT_VALUE);
  1491.             configuration.addConsoleItem(profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificate);
  1492.            
  1493.             BooleanConsoleItem profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenIncludeSignatureToken = (BooleanConsoleItem)
  1494.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.BOOLEAN,
  1495.                     ConsoleItemType.CHECKBOX,
  1496.                     request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_ID:
  1497.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_ID,
  1498.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_LABEL);
  1499.             if( !ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_SECURITY_TOKEN_REFERENCE.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_DEFAULT_VALUE)
  1500.                 &&
  1501.                 !ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_THUMBPRINT.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_DEFAULT_VALUE)
  1502.                 &&
  1503.                 !ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_SKI.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_DEFAULT_VALUE)
  1504.                 ) {
  1505.                 profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenIncludeSignatureToken.setType(ConsoleItemType.HIDDEN);
  1506.             }
  1507.             profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenIncludeSignatureToken.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_DEFAULT_VALUE);
  1508.             configuration.addConsoleItem(profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenIncludeSignatureToken);
  1509.            
  1510.         }
  1511.     }
  1512.    
  1513.     static void updateSicurezzaMessaggio(ModIProperties modiProperties,
  1514.             ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  1515.             boolean rest, boolean fruizione, boolean request, boolean casoSpecialeModificaNomeFruizione,
  1516.             String patternDatiCorniceSicurezza, String schemaDatiCorniceSicurezza,
  1517.             boolean headerDuplicati,
  1518.             IConsoleHelper consoleHelper,
  1519.             boolean kidMode,
  1520.             boolean tokenNonLocale) throws ProtocolException {
  1521.        
  1522.         boolean requiredValue = !casoSpecialeModificaNomeFruizione;
  1523.        
  1524.         if(fruizione && !request) {
  1525.            
  1526.             String idFruizioneKeystoreFruizioneMode = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_FRUIZIONE_KEYSTORE_MODE_ID;
  1527.             StringProperty profiloSicurezzaKeystoreModeFruizioneItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idFruizioneKeystoreFruizioneMode);
  1528.             boolean keystoreDefinitoInFruizione = false;
  1529.             if(profiloSicurezzaKeystoreModeFruizioneItemValue!=null && profiloSicurezzaKeystoreModeFruizioneItemValue.getValue()!=null &&
  1530.                     ModIConsoleCostanti.MODIPA_KEYSTORE_FRUIZIONE.equals(profiloSicurezzaKeystoreModeFruizioneItemValue.getValue())) {
  1531.                 keystoreDefinitoInFruizione = true;
  1532.             }
  1533.            
  1534.             String idPropertyAud = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_ID;
  1535.             String idPropertyAudValue = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_VALORE_ID;
  1536.            
  1537.             AbstractConsoleItem<?> profiloSicurezzaMessaggioRestAudItem =  
  1538.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyAud);
  1539.             if(profiloSicurezzaMessaggioRestAudItem!=null) {
  1540.                 if(keystoreDefinitoInFruizione) {
  1541.                     profiloSicurezzaMessaggioRestAudItem.setNote(null);
  1542.                 }
  1543.                 else {
  1544.                     profiloSicurezzaMessaggioRestAudItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_FRUIZIONE_KEYSTORE_SA_NOTE);
  1545.                 }
  1546.             }
  1547.            
  1548.             BooleanProperty profiloSicurezzaMessaggioRestAudItemValue = (BooleanProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAud);
  1549.             StringProperty profiloSicurezzaMessaggioRestAudValueItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAudValue);
  1550.             AbstractConsoleItem<?> profiloSicurezzaMessaggioRestAudValueItem =  
  1551.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyAudValue);
  1552.             if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  1553.                 if(profiloSicurezzaMessaggioRestAudItemValue!=null && profiloSicurezzaMessaggioRestAudItemValue.getValue()!=null && profiloSicurezzaMessaggioRestAudItemValue.getValue().booleanValue()) {
  1554.                     profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.TEXT_AREA);
  1555.                     profiloSicurezzaMessaggioRestAudValueItem.setRequired(keystoreDefinitoInFruizione);
  1556.                 }
  1557.                 else {
  1558.                     if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  1559.                         profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.HIDDEN);
  1560.                         profiloSicurezzaMessaggioRestAudValueItem.setRequired(false);
  1561.                     }
  1562.                     if(profiloSicurezzaMessaggioRestAudValueItemValue!=null) {
  1563.                         profiloSicurezzaMessaggioRestAudValueItemValue.setValue(null);
  1564.                     }
  1565.                 }
  1566.             }

  1567.         }
  1568.        
  1569.         boolean keystoreDefinitoInFruizione = false;
  1570.         if(fruizione && request) {
  1571.             String idFruizioneKeystoreFruizioneMode = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_FRUIZIONE_KEYSTORE_MODE_ID;
  1572.             String idFruizioneKeystoreMode = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CERTIFICATI_KEYSTORE_MODE_ID;
  1573.            
  1574.             StringProperty profiloSicurezzaKeystoreModeFruizioneItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idFruizioneKeystoreFruizioneMode);
  1575.            
  1576.             AbstractConsoleItem<?> profiloSicurezzaKeystoreModeItem =  
  1577.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idFruizioneKeystoreMode);
  1578.                        
  1579.             if(profiloSicurezzaKeystoreModeFruizioneItemValue!=null && profiloSicurezzaKeystoreModeFruizioneItemValue.getValue()!=null &&
  1580.                     ModIConsoleCostanti.MODIPA_KEYSTORE_FRUIZIONE.equals(profiloSicurezzaKeystoreModeFruizioneItemValue.getValue())) {
  1581.                 if(profiloSicurezzaKeystoreModeItem!=null) {
  1582.                     profiloSicurezzaKeystoreModeItem.setType(ConsoleItemType.SELECT);
  1583.                     keystoreDefinitoInFruizione = true;
  1584.                 }
  1585.             }
  1586.             else {
  1587.                 if(profiloSicurezzaKeystoreModeItem!=null) {
  1588.                     profiloSicurezzaKeystoreModeItem.setType(ConsoleItemType.HIDDEN);
  1589.                 }
  1590.                 StringProperty profiloSicurezzaKeystoreModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idFruizioneKeystoreMode);
  1591.                 if(profiloSicurezzaKeystoreModeItemValue!=null) {
  1592.                     profiloSicurezzaKeystoreModeItemValue.setValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CERTIFICATI_KEYSTORE_MODE_DEFAULT_VALUE);
  1593.                 }
  1594.             }
  1595.            
  1596.         }
  1597.        
  1598.         // Created Ttl Time

  1599.         String idProfiloSicurezzaMessaggioIatTtlItem = null;
  1600.         String idProfiloSicurezzaMessaggioIatTtlSecondsItem = null;
  1601.         if(fruizione && !request) {
  1602.             idProfiloSicurezzaMessaggioIatTtlItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_RISPOSTA_ID;
  1603.             idProfiloSicurezzaMessaggioIatTtlSecondsItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_RISPOSTA_ID;
  1604.         }
  1605.         else if(!fruizione && request) {
  1606.             idProfiloSicurezzaMessaggioIatTtlItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_RICHIESTA_ID;
  1607.             idProfiloSicurezzaMessaggioIatTtlSecondsItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_RICHIESTA_ID;
  1608.         }
  1609.         if(idProfiloSicurezzaMessaggioIatTtlItem!=null && idProfiloSicurezzaMessaggioIatTtlSecondsItem!=null) {
  1610.            
  1611.             AbstractConsoleItem<?> modeItem =  
  1612.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idProfiloSicurezzaMessaggioIatTtlItem);
  1613.             StringProperty modeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idProfiloSicurezzaMessaggioIatTtlItem);
  1614.             boolean modeIsDefault = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_VALUE_DEFAULT);
  1615.             if(modeItemValue!=null && modeItemValue.getValue()!=null) {
  1616.                 modeIsDefault = modeItemValue.getValue().equals(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_VALUE_DEFAULT);
  1617.             }
  1618.            
  1619.             if(modeItem!=null) {
  1620.                 modeItem.setLabel(modeIsDefault ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_LABEL_VALORE_DEFAULT :
  1621.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_LABEL_VALORE_RIDEFINITO);
  1622.             }
  1623.            
  1624.             AbstractConsoleItem<?> secondsItem =    
  1625.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idProfiloSicurezzaMessaggioIatTtlSecondsItem);
  1626.             NumberProperty secondsItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idProfiloSicurezzaMessaggioIatTtlSecondsItem);
  1627.             if(secondsItem!=null) {
  1628.                 if(modeIsDefault) {
  1629.                     secondsItem.setRequired(false);
  1630.                     secondsItem.setType(ConsoleItemType.HIDDEN);
  1631.                     if(secondsItemValue!=null) {
  1632.                         secondsItemValue.setValue(null);
  1633.                     }
  1634.                 }
  1635.                 else {
  1636.                     secondsItem.setRequired(requiredValue);
  1637.                     secondsItem.setType(ConsoleItemType.NUMBER);
  1638.                     if(secondsItemValue!=null && secondsItemValue.getValue()==null) {
  1639.                         secondsItemValue.setValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_IAT_SECONDS_DEFAULT_VALUE);
  1640.                     }
  1641.                 }
  1642.             }
  1643.            
  1644.         }
  1645.        
  1646.         boolean x5url = false;
  1647.         if(rest) {
  1648.        
  1649.             String idProfiloSicurezzaMessaggioDigestEncodingItem = null;
  1650.             if(fruizione && request) {
  1651.                 idProfiloSicurezzaMessaggioDigestEncodingItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_RICHIESTA_ID;
  1652.             }
  1653.             else if(!fruizione && !request) {
  1654.                 idProfiloSicurezzaMessaggioDigestEncodingItem = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_DIGEST_ENCODING_RISPOSTA_ID;
  1655.             }
  1656.             if(idProfiloSicurezzaMessaggioDigestEncodingItem!=null) {
  1657.                
  1658.                 StringProperty profiloSicurezzaMessaggioDigestEncodingItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idProfiloSicurezzaMessaggioDigestEncodingItem);
  1659.                 DigestEncoding actualValue = null;
  1660.                 if(profiloSicurezzaMessaggioDigestEncodingItemValue!=null && profiloSicurezzaMessaggioDigestEncodingItemValue.getValue()!=null && StringUtils.isNotEmpty(profiloSicurezzaMessaggioDigestEncodingItemValue.getValue())) {
  1661.                     try {
  1662.                         actualValue = DigestEncoding.valueOf(profiloSicurezzaMessaggioDigestEncodingItemValue.getValue());
  1663.                     }catch(Exception e) {
  1664.                         throw new ProtocolException(e.getMessage(),e);
  1665.                     }
  1666.                 }
  1667.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioDigestEncodingItem =    
  1668.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idProfiloSicurezzaMessaggioDigestEncodingItem);
  1669.                
  1670.                 boolean show = false;
  1671.                 try {
  1672.                     show = modiProperties.isRestSecurityTokenDigestEncodingChoice();
  1673.                     if(show && consoleHelper.isModalitaStandard()) {
  1674.                         show = false;
  1675.                     }
  1676.                     if(!show &&
  1677.                         actualValue!=null && !actualValue.equals(modiProperties.getRestSecurityTokenDigestDefaultEncoding())) {
  1678.                         show=true;
  1679.                     }
  1680.                 }catch(Exception e) {
  1681.                     throw new ProtocolException(e.getMessage(),e);
  1682.                 }
  1683.                 if(show) {
  1684.                     if(profiloSicurezzaMessaggioDigestEncodingItem!=null) {
  1685.                         profiloSicurezzaMessaggioDigestEncodingItem.setType(ConsoleItemType.SELECT);
  1686.                     }
  1687.                 }
  1688.                 else {
  1689.                     if(profiloSicurezzaMessaggioDigestEncodingItem!=null) {
  1690.                         profiloSicurezzaMessaggioDigestEncodingItem.setType(ConsoleItemType.HIDDEN);
  1691.                     }
  1692.                     if(profiloSicurezzaMessaggioDigestEncodingItemValue!=null) {
  1693.                         profiloSicurezzaMessaggioDigestEncodingItemValue.setValue(null);
  1694.                     }
  1695.                 }
  1696.                
  1697.             }
  1698.            
  1699.                    
  1700.             boolean x5uRichiesta = false;
  1701.             boolean x5cRichiesta = false;
  1702.             StringProperty profiloSicurezzaMessaggioRequestRifX509ItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RICHIESTA_RIFERIMENTO_X509_ID);
  1703.             if(profiloSicurezzaMessaggioRequestRifX509ItemValue!=null && profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue()!=null && !"".equals(profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue())) {
  1704.                 List<String> list = ProtocolPropertiesUtils.getListFromMultiSelectValue(profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue());
  1705.                 if(list!=null && list.contains(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5U)) {
  1706.                     x5uRichiesta = true;
  1707.                 }
  1708.                 else {
  1709.                     x5uRichiesta = false;
  1710.                 }
  1711.                 if(list!=null && list.contains(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5C)) {
  1712.                     x5cRichiesta = true;
  1713.                 }
  1714.                 else {
  1715.                     x5cRichiesta = false;
  1716.                 }
  1717.             }
  1718.            
  1719.             boolean x5uRisposta = false;
  1720.             boolean x5cRisposta = false;
  1721.             if(!request) {
  1722.                 StringProperty profiloSicurezzaMessaggioRifX509AsRequestItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_ID);
  1723.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioResponseX5UItem =  
  1724.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_RIFERIMENTO_X509_ID);
  1725.                
  1726.                 if(profiloSicurezzaMessaggioResponseX5UItem!=null) {
  1727.                     if(profiloSicurezzaMessaggioRifX509AsRequestItemValue!=null &&
  1728.                             ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_AS_REQUEST_VALUE_FALSE.equals(profiloSicurezzaMessaggioRifX509AsRequestItemValue.getValue())){
  1729.                         profiloSicurezzaMessaggioResponseX5UItem.setType(ConsoleItemType.MULTI_SELECT);
  1730.                         ((StringConsoleItem)profiloSicurezzaMessaggioResponseX5UItem).setRows(3);
  1731.                        
  1732.                         StringProperty profiloSicurezzaMessaggioResponseRifX509ItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_RIFERIMENTO_X509_ID);
  1733.                         if(profiloSicurezzaMessaggioResponseRifX509ItemValue!=null && profiloSicurezzaMessaggioResponseRifX509ItemValue.getValue()!=null && !"".equals(profiloSicurezzaMessaggioResponseRifX509ItemValue.getValue())) {
  1734.                             List<String> list = ProtocolPropertiesUtils.getListFromMultiSelectValue(profiloSicurezzaMessaggioResponseRifX509ItemValue.getValue());
  1735.                             if(list!=null && list.contains(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5U)) {
  1736.                                 x5uRisposta = true;
  1737.                             }
  1738.                             else {
  1739.                                 x5uRisposta = false;
  1740.                             }
  1741.                             if(list!=null && list.contains(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RIFERIMENTO_X509_VALUE_X5C)) {
  1742.                                 x5cRisposta = true;
  1743.                             }
  1744.                             else {
  1745.                                 x5cRisposta = false;
  1746.                             }
  1747.                         }
  1748.                     }
  1749.                     else {
  1750.                         profiloSicurezzaMessaggioResponseX5UItem.setType(ConsoleItemType.HIDDEN);
  1751.                        
  1752.                         x5uRisposta = x5uRichiesta;
  1753.                        
  1754.                         x5cRisposta = x5cRichiesta;
  1755.                     }
  1756.                 }
  1757.             }
  1758.            
  1759.             boolean x5c = false;
  1760.             if(request) {
  1761.                 x5c = x5cRichiesta;
  1762.             }
  1763.             else {
  1764.                 x5c = x5cRisposta;
  1765.             }
  1766.            
  1767.             AbstractConsoleItem<?> profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificateItem =  
  1768.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  1769.                             request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RICHIESTA_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_ID:
  1770.                                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_RIFERIMENTO_X509_X5C_USE_CERTIFICATE_CHAIN_ID
  1771.                             );
  1772.             if(profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificateItem!=null) {
  1773.                 if(x5c) {
  1774.                     profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificateItem.setType(ConsoleItemType.CHECKBOX);
  1775.                 }
  1776.                 else {
  1777.                     profiloSicurezzaMessaggioRifX509ItemX5CSingleCertificateItem.setType(ConsoleItemType.HIDDEN);
  1778.                 }
  1779.             }
  1780.            
  1781.            
  1782.             if(request) {
  1783.                 x5url = x5uRichiesta;
  1784.             }
  1785.             else {
  1786.                 x5url = x5uRisposta;
  1787.             }
  1788.            
  1789.             String idUrl = null;
  1790.             if(fruizione && request) {
  1791.                 idUrl = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RICHIESTA_X5U_URL_ID;
  1792.             }
  1793.             else if(!fruizione && !request) {
  1794.                 idUrl = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_RISPOSTA_X5U_URL_ID;
  1795.             }
  1796.             if(idUrl!=null) {
  1797.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioX5UItem =  
  1798.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idUrl);
  1799.                 if(profiloSicurezzaMessaggioX5UItem!=null) {
  1800.                     if(x5url && (!fruizione || keystoreDefinitoInFruizione)) {
  1801.                         profiloSicurezzaMessaggioX5UItem.setType(ConsoleItemType.TEXT_AREA);
  1802.                         profiloSicurezzaMessaggioX5UItem.setRequired(requiredValue);
  1803.                     }
  1804.                     else {
  1805.                         profiloSicurezzaMessaggioX5UItem.setRequired(false);
  1806.                         profiloSicurezzaMessaggioX5UItem.setType(ConsoleItemType.HIDDEN);
  1807.                     }
  1808.                 }
  1809.                
  1810.                 StringProperty profiloSicurezzaMessaggioX5UItemItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idUrl);
  1811.                 if(profiloSicurezzaMessaggioX5UItemItemValue!=null &&
  1812.                     (!x5url || (fruizione && !keystoreDefinitoInFruizione) )
  1813.                     ){
  1814.                     profiloSicurezzaMessaggioX5UItemItemValue.setValue(null);
  1815.                 }
  1816.             }
  1817.            
  1818.            
  1819.            
  1820.             AbstractConsoleItem<?> profiloSicurezzaMessaggioHttpHeadersItem =  
  1821.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  1822.                             ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_REST_ID
  1823.                             );
  1824.             if(profiloSicurezzaMessaggioHttpHeadersItem!=null) {
  1825.                
  1826.                 StringProperty profiloSicurezzaMessaggioHttpHeadersItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_HTTP_HEADERS_REST_ID);
  1827.                 if(profiloSicurezzaMessaggioHttpHeadersItemValue!=null &&
  1828.                     (profiloSicurezzaMessaggioHttpHeadersItemValue.getValue()==null || "".equals(profiloSicurezzaMessaggioHttpHeadersItemValue.getValue()))
  1829.                     ){
  1830.                     try {
  1831.                         profiloSicurezzaMessaggioHttpHeadersItemValue.setValue(modiProperties.getRestSecurityTokenSignedHeadersAsString());
  1832.                     }catch(Exception e) {
  1833.                         throw new ProtocolException(e.getMessage(),e);
  1834.                     }
  1835.                 }
  1836.                
  1837.             }
  1838.            
  1839.            
  1840.            
  1841.             // Claims
  1842.             if(
  1843.                     (request && fruizione)
  1844.                     ||
  1845.                     (!request && !fruizione)
  1846.                     ) {
  1847.                
  1848.                 String idProperty = ((request && fruizione) ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_RICHIESTA_ID : ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_REST_JWT_CLAIMS_RISPOSTA_ID);
  1849.                 StringProperty profiloSicurezzaMessaggioRestJwtClaimsItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idProperty);
  1850.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestJwtClaimsItem =    
  1851.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idProperty);
  1852.                 if(profiloSicurezzaMessaggioRestJwtClaimsItemValue!=null && profiloSicurezzaMessaggioRestJwtClaimsItemValue.getValue()!=null &&
  1853.                         profiloSicurezzaMessaggioRestJwtClaimsItem!=null) {
  1854.                     String [] tmp = profiloSicurezzaMessaggioRestJwtClaimsItemValue.getValue().split("\n");
  1855.                     if(tmp.length>2) {
  1856.                         ((StringConsoleItem)profiloSicurezzaMessaggioRestJwtClaimsItem).setRows((tmp.length>10) ? 10 : tmp.length);
  1857.                     }
  1858.                     else {
  1859.                         ((StringConsoleItem)profiloSicurezzaMessaggioRestJwtClaimsItem).setRows(2);
  1860.                     }
  1861.                 }
  1862.             }
  1863.            
  1864.            
  1865.             // Header Duplicati
  1866.             if( headerDuplicati &&
  1867.                     (
  1868.                             (request && fruizione)
  1869.                             ||
  1870.                             (!request && !fruizione)
  1871.                     )
  1872.                 ) {
  1873.            
  1874.                 String idPropertyJti = ((request && fruizione) ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_RICHIESTA_ID : ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_RISPOSTA_ID);
  1875.                 String idPropertyJtiAsIdMessaggio = ((request && fruizione) ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_RICHIESTA_ID : ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_RISPOSTA_ID);
  1876.                
  1877.                 StringProperty profiloSicurezzaMessaggioRestJtiItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyJti);
  1878.                 StringProperty profiloSicurezzaMessaggioRestJtiAsIdMessaggioItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyJtiAsIdMessaggio);
  1879.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestJtiAsIdMessaggioItem =  
  1880.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyJtiAsIdMessaggio);
  1881.                 if(profiloSicurezzaMessaggioRestJtiAsIdMessaggioItem!=null) {
  1882.                     if(profiloSicurezzaMessaggioRestJtiItemValue!=null && ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_VALUE_DIFFERENT.equals(profiloSicurezzaMessaggioRestJtiItemValue.getValue())) {
  1883.                         profiloSicurezzaMessaggioRestJtiAsIdMessaggioItem.setType(ConsoleItemType.SELECT);
  1884.                         if(profiloSicurezzaMessaggioRestJtiAsIdMessaggioItemValue!=null &&
  1885.                             profiloSicurezzaMessaggioRestJtiAsIdMessaggioItemValue.getValue()==null) {
  1886.                             profiloSicurezzaMessaggioRestJtiAsIdMessaggioItemValue.setValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_VALUE_DEFAULT);
  1887.                         }
  1888.                     }
  1889.                     else {
  1890.                         profiloSicurezzaMessaggioRestJtiAsIdMessaggioItem.setType(ConsoleItemType.HIDDEN);
  1891.                         if(profiloSicurezzaMessaggioRestJtiAsIdMessaggioItemValue!=null) {
  1892.                             profiloSicurezzaMessaggioRestJtiAsIdMessaggioItemValue.setValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JTI_AS_ID_MESSAGGIO_VALUE_DEFAULT);
  1893.                         }
  1894.                     }
  1895.                 }
  1896.                
  1897.                
  1898.                 String idPropertyClaimsAuthorization = ((request && fruizione) ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_RICHIESTA_ID : ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_AUTHORIZATION_RISPOSTA_ID);
  1899.                 StringProperty profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyClaimsAuthorization);
  1900.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItem =    
  1901.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyClaimsAuthorization);
  1902.                 if(profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItemValue!=null && profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItemValue.getValue()!=null &&
  1903.                         profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItem!=null) {
  1904.                     String [] tmp = profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItemValue.getValue().split("\n");
  1905.                     if(tmp.length>2) {
  1906.                         ((StringConsoleItem)profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItem).setRows((tmp.length>10) ? 10 : tmp.length);
  1907.                     }
  1908.                     else {
  1909.                         ((StringConsoleItem)profiloSicurezzaMessaggioRestJwtClaimsAuthorizationItem).setRows(2);
  1910.                     }
  1911.                 }
  1912.                
  1913.                 String idPropertyClaimsModi = ((request && fruizione) ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_RICHIESTA_ID : ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_JWT_CLAIMS_MODI_RISPOSTA_ID);
  1914.                 StringProperty profiloSicurezzaMessaggioRestJwtClaimsModiItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyClaimsModi);
  1915.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestJwtClaimsModiItem =    
  1916.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyClaimsModi);
  1917.                 if(profiloSicurezzaMessaggioRestJwtClaimsModiItemValue!=null && profiloSicurezzaMessaggioRestJwtClaimsModiItemValue.getValue()!=null &&
  1918.                         profiloSicurezzaMessaggioRestJwtClaimsModiItem!=null) {
  1919.                     String [] tmp = profiloSicurezzaMessaggioRestJwtClaimsModiItemValue.getValue().split("\n");
  1920.                     if(tmp.length>2) {
  1921.                         ((StringConsoleItem)profiloSicurezzaMessaggioRestJwtClaimsModiItem).setRows((tmp.length>10) ? 10 : tmp.length);
  1922.                     }
  1923.                     else {
  1924.                         ((StringConsoleItem)profiloSicurezzaMessaggioRestJwtClaimsModiItem).setRows(2);
  1925.                     }
  1926.                 }
  1927.             }
  1928.            
  1929.             if( headerDuplicati && request ) {
  1930.                    
  1931.                 String idPropertyAud = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RICHIESTA_ID;
  1932.                 String idPropertyAudValue = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_RICHIESTA_ID;
  1933.                
  1934.                 StringProperty profiloSicurezzaMessaggioRestAudItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAud);
  1935.                 StringProperty profiloSicurezzaMessaggioRestAudValueItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAudValue);
  1936.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestAudValueItem =  
  1937.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyAudValue);
  1938.                 if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  1939.                     if(profiloSicurezzaMessaggioRestAudItemValue!=null && ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DIFFERENT.equals(profiloSicurezzaMessaggioRestAudItemValue.getValue())) {
  1940.                         profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.TEXT_AREA);
  1941.                         profiloSicurezzaMessaggioRestAudValueItem.setRequired(true);
  1942.                     }
  1943.                     else {
  1944.                         if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  1945.                             profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.HIDDEN);
  1946.                             profiloSicurezzaMessaggioRestAudValueItem.setRequired(false);
  1947.                         }
  1948.                         if(profiloSicurezzaMessaggioRestAudValueItemValue!=null) {
  1949.                             profiloSicurezzaMessaggioRestAudValueItemValue.setValue(null);
  1950.                         }
  1951.                     }
  1952.                 }
  1953.                
  1954.             }
  1955.            
  1956.             if( headerDuplicati && !request && fruizione ) {
  1957.                
  1958.                 String idPropertyAudVerifica = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_AUDIENCE_RISPOSTA_ID;                
  1959.                 BooleanProperty profiloSicurezzaMessaggioRestAudVerificaItemValue = (BooleanProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAudVerifica);
  1960.                 boolean verificaAbilitata = profiloSicurezzaMessaggioRestAudVerificaItemValue!=null && profiloSicurezzaMessaggioRestAudVerificaItemValue.getValue()!=null && profiloSicurezzaMessaggioRestAudVerificaItemValue.getValue();
  1961.                
  1962.                 String idPropertyAud = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_RISPOSTA_ID;
  1963.                 String idPropertyAudValue = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_INTEGRITY_RISPOSTA_ID;
  1964.                
  1965.                 StringProperty profiloSicurezzaMessaggioRestAudItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAud);
  1966.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestAudItem =  
  1967.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), profiloSicurezzaMessaggioRestAudItemValue);
  1968.                 if(profiloSicurezzaMessaggioRestAudItem!=null) {
  1969.                     if(verificaAbilitata) {
  1970.                         profiloSicurezzaMessaggioRestAudItem.setType(ConsoleItemType.SELECT);
  1971.                     }
  1972.                     else {
  1973.                         profiloSicurezzaMessaggioRestAudItem.setType(ConsoleItemType.HIDDEN);
  1974.                         profiloSicurezzaMessaggioRestAudItemValue.setValue(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DEFAULT);
  1975.                     }
  1976.                 }
  1977.                
  1978.                 StringProperty profiloSicurezzaMessaggioRestAudValueItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAudValue);
  1979.                 AbstractConsoleItem<?> profiloSicurezzaMessaggioRestAudValueItem =  
  1980.                         ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), idPropertyAudValue);
  1981.                 if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  1982.                     if(verificaAbilitata && profiloSicurezzaMessaggioRestAudItemValue!=null && ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_DOPPI_HEADER_AUDIENCE_VALUE_DIFFERENT.equals(profiloSicurezzaMessaggioRestAudItemValue.getValue())) {
  1983.                         profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.TEXT_AREA);
  1984.                         profiloSicurezzaMessaggioRestAudValueItem.setRequired(true);
  1985.                     }
  1986.                     else {
  1987.                         if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  1988.                             profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.HIDDEN);
  1989.                             profiloSicurezzaMessaggioRestAudValueItem.setRequired(false);
  1990.                         }
  1991.                         if(profiloSicurezzaMessaggioRestAudValueItemValue!=null) {
  1992.                             profiloSicurezzaMessaggioRestAudValueItemValue.setValue(null);
  1993.                         }
  1994.                     }
  1995.                 }
  1996.                
  1997.             }
  1998.            
  1999.         }
  2000.         else {
  2001.            
  2002.             AbstractConsoleItem<?> profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificateItem =  
  2003.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  2004.                             request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_ID:
  2005.                                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_USE_CERTIFICATE_CHAIN_ID
  2006.                             );
  2007.            
  2008.             if(profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificateItem!=null) {
  2009.                 String rifX509Id = request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_ID :
  2010.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_ID;
  2011.                
  2012.                 StringProperty profiloSicurezzaMessaggioRequestRifX509ItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, rifX509Id);
  2013.                 if(profiloSicurezzaMessaggioRequestRifX509ItemValue!=null) {
  2014.                     if(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_BINARY_SECURITY_TOKEN.equals(profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue())) {
  2015.                         profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificateItem.setType(ConsoleItemType.CHECKBOX);
  2016.                     }
  2017.                     else {
  2018.                         profiloSicurezzaMessaggioRifX509ItemBinarySecurityTokenSingleCertificateItem.setType(ConsoleItemType.HIDDEN);
  2019.                     }
  2020.                 }
  2021.             }
  2022.            
  2023.            
  2024.            
  2025.             AbstractConsoleItem<?> profiloSicurezzaMessaggioRifX509ItemIncludeSignatureTokenItem =  
  2026.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  2027.                             request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_ID:
  2028.                                 ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_BINARY_SECURITY_TOKEN_INCLUDE_SIGNATURE_TOKEN_ID
  2029.                             );
  2030.            
  2031.             if(profiloSicurezzaMessaggioRifX509ItemIncludeSignatureTokenItem!=null) {
  2032.                 String rifX509Id = request ? ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RICHIESTA_RIFERIMENTO_X509_ID :
  2033.                     ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RISPOSTA_RIFERIMENTO_X509_ID;
  2034.                
  2035.                 StringProperty profiloSicurezzaMessaggioRequestRifX509ItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, rifX509Id);
  2036.                 if(profiloSicurezzaMessaggioRequestRifX509ItemValue!=null) {
  2037.                     if( ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_SECURITY_TOKEN_REFERENCE.equals(profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue())
  2038.                             ||
  2039.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_THUMBPRINT.equals(profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue())
  2040.                             ||
  2041.                         ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_RIFERIMENTO_X509_VALUE_KEY_IDENTIFIER_SKI.equals(profiloSicurezzaMessaggioRequestRifX509ItemValue.getValue())
  2042.                             ) {
  2043.                         profiloSicurezzaMessaggioRifX509ItemIncludeSignatureTokenItem.setType(ConsoleItemType.CHECKBOX);
  2044.                     }
  2045.                     else {
  2046.                         profiloSicurezzaMessaggioRifX509ItemIncludeSignatureTokenItem.setType(ConsoleItemType.HIDDEN);
  2047.                     }
  2048.                 }
  2049.             }
  2050.            
  2051.            
  2052.             AbstractConsoleItem<?> profiloSicurezzaMessaggioSoapHeadersItem =  
  2053.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  2054.                             ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_SOAP_ID
  2055.                             );
  2056.             if(profiloSicurezzaMessaggioSoapHeadersItem!=null) {
  2057.                
  2058.                 StringProperty profiloSicurezzaMessaggioSoapHeadersItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_SOAP_HEADERS_SOAP_ID);
  2059.                 if(
  2060.                         (profiloSicurezzaMessaggioSoapHeadersItemValue==null || profiloSicurezzaMessaggioSoapHeadersItemValue.getValue()==null || "".equals(profiloSicurezzaMessaggioSoapHeadersItemValue.getValue()))
  2061.                         &&
  2062.                         consoleHelper.isModalitaStandard()
  2063.                         &&
  2064.                         profiloSicurezzaMessaggioSoapHeadersItem!=null
  2065.                     ) {
  2066.                     profiloSicurezzaMessaggioSoapHeadersItem.setType(ConsoleItemType.HIDDEN);
  2067.                 }
  2068.                
  2069.             }
  2070.         }
  2071.        
  2072.         // Cornice Sicurezza
  2073.        
  2074.         if(request && patternDatiCorniceSicurezza!=null && StringUtils.isNotEmpty(patternDatiCorniceSicurezza)) {
  2075.            
  2076.             if(fruizione) {
  2077.                 if(ModIConsoleCostanti.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PATTERN_VALUE_OLD.equals(patternDatiCorniceSicurezza)) {
  2078.                     updateCorniceSicurezzaLegacy(consoleConfiguration, properties);
  2079.                 }
  2080.                 else {
  2081.                     updateCorniceSicurezzaSchema(consoleConfiguration, properties,
  2082.                             schemaDatiCorniceSicurezza);
  2083.                 }
  2084.             }
  2085.             else {
  2086.                 if(!ModIConsoleCostanti.MODIPA_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_PATTERN_VALUE_OLD.equals(patternDatiCorniceSicurezza)) {
  2087.                     updateCorniceSicurezzaSchemaAudience(consoleConfiguration, properties);
  2088.                 }
  2089.             }
  2090.            
  2091.         }
  2092.        
  2093.         // Sicurezza OAauth
  2094.        
  2095.         if(fruizione && request) {
  2096.             BaseConsoleItem subTitleItem =  
  2097.                         ProtocolPropertiesUtils.getBaseConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_SUBSECTION_ID);
  2098.             if(subTitleItem!=null) {
  2099.                 if(keystoreDefinitoInFruizione) {
  2100.                     subTitleItem.setType(ConsoleItemType.SUBTITLE);
  2101.                 }
  2102.                 else {
  2103.                     subTitleItem.setType(ConsoleItemType.HIDDEN);  
  2104.                 }
  2105.             }
  2106.            
  2107.             AbstractConsoleItem<?> oauthIdentificativoItem =    
  2108.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ID);
  2109.             if(oauthIdentificativoItem!=null) {
  2110.                 if(keystoreDefinitoInFruizione) {
  2111.                     oauthIdentificativoItem.setType(ConsoleItemType.TEXT_AREA);
  2112.                 }
  2113.                 else {
  2114.                     oauthIdentificativoItem.setType(ConsoleItemType.HIDDEN);
  2115.                     StringProperty oauthIdentificativoItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ID);
  2116.                     if(oauthIdentificativoItemValue!=null) {
  2117.                         oauthIdentificativoItemValue.setValue(null);
  2118.                     }
  2119.                 }
  2120.             }
  2121.            
  2122.             AbstractConsoleItem<?> oauthKidItem =  
  2123.                     ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_ID);
  2124.             if(oauthKidItem!=null) {
  2125.                 if(keystoreDefinitoInFruizione) {
  2126.                     oauthKidItem.setType(ConsoleItemType.TEXT_AREA);
  2127.                 }
  2128.                 else {
  2129.                     oauthKidItem.setType(ConsoleItemType.HIDDEN);
  2130.                     StringProperty oauthKidItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_ID);
  2131.                     if(oauthKidItemValue!=null) {
  2132.                         oauthKidItemValue.setValue(null);
  2133.                     }
  2134.                 }
  2135.             }
  2136.         }
  2137.        
  2138.        
  2139.         // TrustStore
  2140.        
  2141.         if( (fruizione && !request) || (!fruizione && request) ) {
  2142.            
  2143.             boolean addTrustStoreTypesChiaviPubbliche = rest || kidMode; // jwk
  2144.             List<RemoteStoreConfig> remoteStoreConfig = null;
  2145.             if(kidMode) {
  2146.                 remoteStoreConfig = modiProperties.getRemoteStoreConfig();
  2147.             }
  2148.            
  2149.             // truststore per i certificati
  2150.             ModIDynamicConfigurationKeystoreUtilities.updateTrustConfig(consoleConfiguration, properties, false, false, requiredValue,
  2151.                     addTrustStoreTypesChiaviPubbliche, remoteStoreConfig);
  2152.            
  2153.             if(rest) {
  2154.            
  2155.                 // ssl per le url (x5u)
  2156.                 ModIDynamicConfigurationKeystoreUtilities.updateTrustConfig(consoleConfiguration, properties, true, x5url, requiredValue,
  2157.                         false, null);
  2158.            
  2159.             }
  2160.         }
  2161.        
  2162.         // KeyStore
  2163.        
  2164.         if(!fruizione && !request) {
  2165.            
  2166.             boolean hideSceltaArchivioFilePath = false;
  2167.             boolean addHiddenSubjectIssuer = false;
  2168.             boolean ridefinisci = ModIDynamicConfigurationKeystoreUtilities.updateKeystoreConfig(consoleConfiguration, properties, true,
  2169.                     hideSceltaArchivioFilePath, addHiddenSubjectIssuer,
  2170.                     requiredValue, null,
  2171.                     rest);
  2172.            
  2173.             updateSicurezzaOAuth(consoleConfiguration, properties, ridefinisci);
  2174.         }
  2175.        
  2176.         if(fruizione && request) {
  2177.            
  2178.             boolean hideSceltaArchivioFilePath = false;
  2179.             boolean addHiddenSubjectIssuer = false;
  2180.             ModIDynamicConfigurationKeystoreUtilities.updateKeystoreConfig(consoleConfiguration, properties, true,
  2181.                     hideSceltaArchivioFilePath, addHiddenSubjectIssuer,
  2182.                     requiredValue, null,
  2183.                     rest);
  2184.         }
  2185.        
  2186.        
  2187.     }
  2188.    
  2189.     private static void updateSicurezzaOAuth(ConsoleConfiguration configuration, ProtocolProperties properties, boolean ridefinisci) throws ProtocolException {
  2190.        
  2191.         AbstractConsoleItem<?> profiloSicurezzaOauthKidItem =  
  2192.                 ProtocolPropertiesUtils.getAbstractConsoleItem(configuration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_ID);
  2193.         if(profiloSicurezzaOauthKidItem!=null) {
  2194.             profiloSicurezzaOauthKidItem.setType(ridefinisci ? ConsoleItemType.TEXT_AREA : ConsoleItemType.HIDDEN);
  2195.         }
  2196.         StringProperty profiloSicurezzaOauthKidItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_KID_ID);
  2197.         if(profiloSicurezzaOauthKidItemValue!=null && !ridefinisci) {
  2198.             profiloSicurezzaOauthKidItemValue.setValue(null);
  2199.         }
  2200.        
  2201.         AbstractConsoleItem<?> profiloSicurezzaOauthIdentificativoItem =    
  2202.                 ProtocolPropertiesUtils.getAbstractConsoleItem(configuration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ID);
  2203.         if(profiloSicurezzaOauthIdentificativoItem!=null) {
  2204.             profiloSicurezzaOauthIdentificativoItem.setType(ridefinisci ? ConsoleItemType.TEXT_AREA : ConsoleItemType.HIDDEN);
  2205.         }
  2206.         StringProperty profiloSicurezzaOauthIdentificativoItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_OAUTH_IDENTIFICATIVO_ID);
  2207.         if(profiloSicurezzaOauthIdentificativoItemValue!=null && !ridefinisci) {
  2208.             profiloSicurezzaOauthIdentificativoItemValue.setValue(null);
  2209.         }
  2210.        
  2211.     }
  2212.    
  2213.     private static void updateCorniceSicurezzaSchemaAudience(ConsoleConfiguration configuration, ProtocolProperties properties) throws ProtocolException {
  2214.         String idPropertyAud = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_RICHIESTA_ID;
  2215.         String idPropertyAudValue = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_AUDIT_CUSTOM_RICHIESTA_ID;
  2216.        
  2217.         StringProperty profiloSicurezzaMessaggioRestAudItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAud);
  2218.         StringProperty profiloSicurezzaMessaggioRestAudValueItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, idPropertyAudValue);
  2219.         AbstractConsoleItem<?> profiloSicurezzaMessaggioRestAudValueItem =  
  2220.                 ProtocolPropertiesUtils.getAbstractConsoleItem(configuration.getConsoleItem(), idPropertyAudValue);
  2221.         if(profiloSicurezzaMessaggioRestAudValueItem!=null) {
  2222.             if(profiloSicurezzaMessaggioRestAudItemValue!=null && ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_AUDIENCE_VALUE_DIFFERENT.equals(profiloSicurezzaMessaggioRestAudItemValue.getValue())) {
  2223.                 profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.TEXT_AREA);
  2224.                 profiloSicurezzaMessaggioRestAudValueItem.setRequired(true);
  2225.             }
  2226.             else {
  2227.                 profiloSicurezzaMessaggioRestAudValueItem.setType(ConsoleItemType.HIDDEN);
  2228.                 profiloSicurezzaMessaggioRestAudValueItem.setRequired(false);
  2229.                 if(profiloSicurezzaMessaggioRestAudValueItemValue!=null) {
  2230.                     profiloSicurezzaMessaggioRestAudValueItemValue.setValue(null);
  2231.                 }
  2232.             }
  2233.         }
  2234.     }
  2235.    
  2236.     private static void updateCorniceSicurezzaSchema(ConsoleConfiguration configuration, ProtocolProperties properties,
  2237.             String schemaDatiCorniceSicurezza) throws ProtocolException {
  2238.        
  2239.         List<ModIAuditConfig> list = ModIProperties.getInstance().getAuditConfig();
  2240.         if(list!=null && !list.isEmpty()) {
  2241.            
  2242.             updateCorniceSicurezzaSchemaAudience(configuration, properties);
  2243.            
  2244.             for (ModIAuditConfig modIAuditConfig : list) {
  2245.                 if(modIAuditConfig.getNome().equals(schemaDatiCorniceSicurezza)) {
  2246.                     updateCorniceSicurezzaSchema(configuration, properties,
  2247.                             modIAuditConfig);
  2248.                     break;
  2249.                 }
  2250.             }
  2251.         }
  2252.        
  2253.     }
  2254.     private static void updateCorniceSicurezzaSchema(ConsoleConfiguration configuration, ProtocolProperties properties,
  2255.             ModIAuditConfig modIAuditConfig) throws ProtocolException {
  2256.         if(modIAuditConfig.getClaims()!=null && !modIAuditConfig.getClaims().isEmpty()) {
  2257.             for (ModIAuditClaimConfig claimConfig : modIAuditConfig.getClaims()) {
  2258.                 updateCorniceSicurezzaSchema(configuration, properties, claimConfig);
  2259.             }
  2260.         }
  2261.     }
  2262.    
  2263.     private static void updateCorniceSicurezzaSchema(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties, ModIAuditClaimConfig claimConfig) throws ProtocolException {
  2264.        
  2265.         String modeId = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_MODE_ID_PREFIX+claimConfig.getNome();
  2266.        
  2267.         boolean ridefinisciItem = false;
  2268.         StringProperty selectSchemaModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties,
  2269.                 modeId);
  2270.         if(selectSchemaModeItemValue==null) {
  2271.             ridefinisciItem = false;    
  2272.         }
  2273.         else {
  2274.             ridefinisciItem = ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI.equals(selectSchemaModeItemValue.getValue());
  2275.         }
  2276.    
  2277.         AbstractConsoleItem<?> modeItem =  
  2278.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), modeId);
  2279.         if(ridefinisciItem) {
  2280.             modeItem.setInfo(null);
  2281.         }
  2282.         else {
  2283.             modeItem.setInfo(new ConsoleItemInfo(claimConfig.getLabel()));
  2284.             modeItem.getInfo().setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_MODE_DEFAULT_INFO_INTESTAZIONE.
  2285.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_MODE_DEFAULT_INFO_INTESTAZIONE_CLAIM, claimConfig.getNome()));
  2286.             modeItem.getInfo().setListBody(new ArrayList<>());
  2287.             modeItem.getInfo().getListBody().addAll(claimConfig.getRulesInfo());
  2288.         }
  2289.        
  2290.         String id = ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_SCHEMA_ID_PREFIX+claimConfig.getNome();
  2291.         AbstractConsoleItem<?> valueItem =  
  2292.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), id);
  2293.         if(ridefinisciItem) {
  2294.             valueItem.setType(ConsoleItemType.TEXT_AREA);
  2295.         }
  2296.         else {
  2297.             valueItem.setType(ConsoleItemType.HIDDEN);
  2298.             StringProperty selectItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, id);
  2299.             if(selectItemValue!=null) {
  2300.                 selectItemValue.setValue(null);
  2301.             }
  2302.         }
  2303.        
  2304.     }
  2305.    
  2306.     private static void updateCorniceSicurezzaLegacy(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  2307.         updateCorniceSicurezzaLegacyCodiceEnte(consoleConfiguration, properties);
  2308.        
  2309.         updateCorniceSicurezzaLegacyUser(consoleConfiguration, properties);
  2310.        
  2311.         updateCorniceSicurezzaLegacyIpUser(consoleConfiguration, properties);
  2312.     }
  2313.     private static void updateCorniceSicurezzaLegacyCodiceEnte(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  2314.         boolean ridefinisciCodiceEnte = false;
  2315.         StringProperty selectCodiceEnteModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_ID);
  2316.         if(selectCodiceEnteModeItemValue==null) {
  2317.             ridefinisciCodiceEnte = false;  
  2318.         }
  2319.         else {
  2320.             ridefinisciCodiceEnte = ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI.equals(selectCodiceEnteModeItemValue.getValue());
  2321.         }
  2322.    
  2323.         AbstractConsoleItem<?> codiceEnteModeItem =    
  2324.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_ID);
  2325.         if(ridefinisciCodiceEnte) {
  2326.             codiceEnteModeItem.setInfo(null);
  2327.         }
  2328.         else {
  2329.             codiceEnteModeItem.setInfo(new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_LABEL));
  2330.             codiceEnteModeItem.getInfo().setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_MODE_DEFAULT_INFO_INTESTAZIONE);
  2331.         }
  2332.        
  2333.         AbstractConsoleItem<?> codiceEnteItem =    
  2334.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_ID);
  2335.         if(ridefinisciCodiceEnte) {
  2336.             codiceEnteItem.setType(ConsoleItemType.TEXT_AREA);
  2337.         }
  2338.         else {
  2339.             codiceEnteItem.setType(ConsoleItemType.HIDDEN);
  2340.             StringProperty selectCodiceEnteItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_CODICE_ENTE_ID);
  2341.             if(selectCodiceEnteItemValue!=null) {
  2342.                 selectCodiceEnteItemValue.setValue(null);
  2343.             }
  2344.         }
  2345.     }
  2346.     private static void updateCorniceSicurezzaLegacyUser(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  2347.         boolean ridefinisciUser = false;
  2348.         StringProperty selectUserModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_ID);
  2349.         if(selectUserModeItemValue==null) {
  2350.             ridefinisciUser = false;    
  2351.         }
  2352.         else {
  2353.             ridefinisciUser = ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI.equals(selectUserModeItemValue.getValue());
  2354.         }
  2355.    
  2356.         AbstractConsoleItem<?> userModeItem =  
  2357.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_ID);
  2358.         if(ridefinisciUser) {
  2359.             userModeItem.setInfo(null);
  2360.         }
  2361.         else {
  2362.             userModeItem.setInfo(new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_LABEL));
  2363.             userModeItem.getInfo().setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_DEFAULT_INFO_INTESTAZIONE);
  2364.             userModeItem.getInfo().setListBody(new ArrayList<>());
  2365.             userModeItem.getInfo().getListBody().add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_DEFAULT_INFO_HTTP);
  2366.             userModeItem.getInfo().getListBody().add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_MODE_DEFAULT_INFO_URL);
  2367.         }
  2368.        
  2369.         AbstractConsoleItem<?> userItem =  
  2370.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_ID);
  2371.         if(ridefinisciUser) {
  2372.             userItem.setType(ConsoleItemType.TEXT_AREA);
  2373.         }
  2374.         else {
  2375.             userItem.setType(ConsoleItemType.HIDDEN);
  2376.             StringProperty selectUserItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_USER_ID);
  2377.             if(selectUserItemValue!=null) {
  2378.                 selectUserItemValue.setValue(null);
  2379.             }
  2380.         }
  2381.     }
  2382.     private static void updateCorniceSicurezzaLegacyIpUser(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  2383.         boolean ridefinisciIpUser = false;
  2384.         StringProperty selectIpUserModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_ID);
  2385.         if(selectIpUserModeItemValue==null) {
  2386.             ridefinisciIpUser = false;  
  2387.         }
  2388.         else {
  2389.             ridefinisciIpUser = ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI.equals(selectIpUserModeItemValue.getValue());
  2390.         }
  2391.        
  2392.         AbstractConsoleItem<?> ipUserModeItem =    
  2393.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_ID);
  2394.         if(ridefinisciIpUser) {
  2395.             ipUserModeItem.setInfo(null);
  2396.         }
  2397.         else {
  2398.             ipUserModeItem.setInfo(new ConsoleItemInfo(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_LABEL));
  2399.             ipUserModeItem.getInfo().setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_DEFAULT_INFO_INTESTAZIONE);
  2400.             ipUserModeItem.getInfo().setListBody(new ArrayList<>());
  2401.             ipUserModeItem.getInfo().getListBody().add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_DEFAULT_INFO_HTTP);
  2402.             ipUserModeItem.getInfo().getListBody().add(ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_MODE_DEFAULT_INFO_URL);
  2403.         }
  2404.        
  2405.         AbstractConsoleItem<?> ipUserItem =    
  2406.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_ID);
  2407.         if(ridefinisciIpUser) {
  2408.             ipUserItem.setType(ConsoleItemType.TEXT_AREA);
  2409.         }
  2410.         else {
  2411.             ipUserItem.setType(ConsoleItemType.HIDDEN);
  2412.             StringProperty selectIPUserItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_PROFILO_SICUREZZA_MESSAGGIO_CORNICE_SICUREZZA_IP_USER_ID);
  2413.             if(selectIPUserItemValue!=null) {
  2414.                 selectIPUserItemValue.setValue(null);
  2415.             }
  2416.         }
  2417.     }
  2418.    
  2419.    
  2420.     static void addPdndInfo(ModIProperties modiProperties,
  2421.             ConsoleConfiguration configuration, boolean rest) throws ProtocolException {
  2422.        
  2423.        
  2424.         TitleConsoleItem titolo = (TitleConsoleItem) ProtocolPropertiesFactory.newTitleItem(
  2425.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ID,
  2426.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_LABEL);
  2427.         configuration.addConsoleItem(titolo );
  2428.        
  2429.         StringConsoleItem modiEServiceIdItem = (StringConsoleItem)
  2430.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2431.                 ConsoleItemType.TEXT_AREA,
  2432.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ESERVICE_ID_ID,
  2433.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ESERVICE_ID_LABEL
  2434.                     );
  2435.         modiEServiceIdItem.setRows(1);
  2436.         configuration.addConsoleItem(modiEServiceIdItem);
  2437.        
  2438.         StringConsoleItem modiDescriptorIdItem = (StringConsoleItem)
  2439.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2440.                 ConsoleItemType.TEXT_AREA,
  2441.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_DESCRIPTOR_ID_ID,
  2442.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_DESCRIPTOR_ID_LABEL
  2443.                     );
  2444.         modiDescriptorIdItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_DESCRIPTOR_ID_NOTE);
  2445.         modiDescriptorIdItem.setRows(1);
  2446.         configuration.addConsoleItem(modiDescriptorIdItem);
  2447.        
  2448.         if(modiProperties.isSignalHubEnabled()) {
  2449.        
  2450.             BooleanConsoleItem modiSignalHubItem = (BooleanConsoleItem)
  2451.                     ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.BOOLEAN,
  2452.                     ConsoleItemType.CHECKBOX,
  2453.                     ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ID,
  2454.                     ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_LABEL);
  2455.             modiSignalHubItem.setReloadOnChange(true, true);
  2456.             configuration.addConsoleItem(modiSignalHubItem);
  2457.        
  2458.             addSignalHubInfo(modiProperties,
  2459.                     configuration, rest);
  2460.         }
  2461.        
  2462.     }
  2463.    
  2464.     private static void addSignalHubInfo(ModIProperties modiProperties,
  2465.             ConsoleConfiguration configuration, boolean rest) throws ProtocolException {
  2466.        
  2467.         // SignalHub sub-section
  2468.        
  2469.         SubtitleConsoleItem modiSignalHubSubtitleItem = (SubtitleConsoleItem) ProtocolPropertiesFactory.newSubTitleItem(
  2470.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SUBTITLE_ID,
  2471.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SUBTITLE_LABEL
  2472.                 );
  2473.         modiSignalHubSubtitleItem.setType(ConsoleItemType.HIDDEN);
  2474.         configuration.addConsoleItem(modiSignalHubSubtitleItem);
  2475.        
  2476.         // operation
  2477.         StringConsoleItem modiSignalHubOpItem = (StringConsoleItem)
  2478.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2479.                 ConsoleItemType.SELECT,
  2480.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID,
  2481.                 (rest ? ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_REST_LABEL : ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_SOAP_LABEL ));
  2482.         modiSignalHubOpItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_NOTE);
  2483.         modiSignalHubOpItem.setRequired(true);
  2484.         modiSignalHubOpItem.setType(ConsoleItemType.HIDDEN);
  2485.         configuration.addConsoleItem(modiSignalHubOpItem);
  2486.        
  2487.         // alg
  2488.         StringConsoleItem modiSignalHubAlgItem = (StringConsoleItem)
  2489.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2490.                 ConsoleItemType.SELECT,
  2491.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID,
  2492.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_LABEL);
  2493.         List<String> algo = modiProperties.getSignalHubAlgorithms();
  2494.         if(algo!=null && !algo.isEmpty()) {
  2495.             for (String a : algo) {
  2496.                 modiSignalHubAlgItem.addLabelValue(a,a);
  2497.             }
  2498.         }
  2499.         modiSignalHubAlgItem.setDefaultValue(modiProperties.getSignalHubDefaultAlgorithm());
  2500.         modiSignalHubAlgItem.setType(ConsoleItemType.HIDDEN);
  2501.         configuration.addConsoleItem(modiSignalHubAlgItem);
  2502.        
  2503.         // seed size
  2504.         NumberConsoleItem modiSignalHubAlgDimensioneSeme = (NumberConsoleItem)
  2505.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.NUMBER,
  2506.                 ConsoleItemType.SELECT,
  2507.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID,
  2508.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_LABEL);
  2509.         List<Integer> size = modiProperties.getSignalHubSeedSize();
  2510.         if(size!=null && !size.isEmpty()) {
  2511.             for (Integer a : size) {
  2512.                 modiSignalHubAlgDimensioneSeme.addLabelValue(a.toString(),a.longValue());
  2513.             }
  2514.         }
  2515.         modiSignalHubAlgDimensioneSeme.setDefaultValue(modiProperties.getSignalHubDefaultSeedSize().longValue());
  2516.         modiSignalHubAlgDimensioneSeme.setType(ConsoleItemType.HIDDEN);
  2517.         configuration.addConsoleItem(modiSignalHubAlgDimensioneSeme);
  2518.        
  2519.         // seed lifetime
  2520.         NumberConsoleItem modiSignalHubAlgScadenzaSeme = (NumberConsoleItem)
  2521.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.NUMBER,
  2522.                 ConsoleItemType.TEXT_EDIT,
  2523.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID,
  2524.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_LABEL);
  2525.         if(!modiProperties.isSignalHubSeedLifetimeUnlimited()) {
  2526.             modiSignalHubAlgScadenzaSeme.setRequired(true);
  2527.             modiSignalHubAlgScadenzaSeme.setDefaultValue(modiProperties.getSignalHubDeSeedSeedLifetimeDaysDefault().longValue());
  2528.         }
  2529.         modiSignalHubAlgScadenzaSeme.setType(ConsoleItemType.HIDDEN);
  2530.         configuration.addConsoleItem(modiSignalHubAlgScadenzaSeme);

  2531.        
  2532.         // publisher
  2533.         StringConsoleItem modiSignalHubPublisherItem = (StringConsoleItem)
  2534.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2535.                         ConsoleItemType.TEXT,
  2536.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_TEXT_ID,
  2537.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_TEXT_LABEL);
  2538.         modiSignalHubPublisherItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_TEXT);
  2539.         configuration.addConsoleItem(modiSignalHubPublisherItem);
  2540.        
  2541.         // publisher applicative
  2542.         StringConsoleItem modiSignalHubPublisherSAItem = (StringConsoleItem)
  2543.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2544.                 ConsoleItemType.SELECT,
  2545.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID,
  2546.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_LABEL);
  2547.         modiSignalHubPublisherSAItem.setType(ConsoleItemType.HIDDEN);
  2548.         configuration.addConsoleItem(modiSignalHubPublisherSAItem);
  2549.        
  2550.         // publisher role
  2551.         StringConsoleItem modiSignalHubPublisherRoleItem = (StringConsoleItem)
  2552.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  2553.                 ConsoleItemType.SELECT,
  2554.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID,
  2555.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_LABEL);
  2556.         modiSignalHubPublisherRoleItem.setNote(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_NOTE);
  2557.         modiSignalHubPublisherRoleItem.setType(ConsoleItemType.HIDDEN);
  2558.         configuration.addConsoleItem(modiSignalHubPublisherRoleItem);
  2559.     }
  2560.    
  2561.     static void updatePdndInfo(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2562.             AccordoServizioParteComune api, String portType, IDServizio idServizio,
  2563.             IRegistryReader registryReader,
  2564.             IConfigIntegrationReader configIntegrationReader,
  2565.             Logger log) throws ProtocolException {
  2566.        
  2567.         ModIProperties modiProperties = ModIProperties.getInstance();
  2568.        
  2569.         boolean signalHub = false;
  2570.         if(modiProperties.isSignalHubEnabled()) {
  2571.             BooleanProperty modiSignalHubItemValue = (BooleanProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ID);
  2572.             signalHub = modiSignalHubItemValue!=null && modiSignalHubItemValue.getValue()!=null && modiSignalHubItemValue.getValue().booleanValue();
  2573.         }
  2574.        
  2575.        
  2576.         // eService id
  2577.         AbstractConsoleItem<?> modiEServiceIdItem =    
  2578.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ESERVICE_ID_ID);
  2579.         if(modiEServiceIdItem!=null) {
  2580.             modiEServiceIdItem.setRequired(signalHub);
  2581.         }
  2582.    
  2583.        
  2584.         // Signal hub
  2585.         if(modiProperties.isSignalHubEnabled()) {
  2586.            
  2587.             updateSignalHubInfo(consoleConfiguration, properties,
  2588.                     api, portType, idServizio,
  2589.                     log,
  2590.                     signalHub);
  2591.            
  2592.             updateSignalHubPublisherInfo(consoleConfiguration, properties,
  2593.                     idServizio,
  2594.                     registryReader,
  2595.                     configIntegrationReader,
  2596.                     log,
  2597.                     signalHub);
  2598.         }
  2599.     }
  2600.    
  2601.     private static void updateSignalHubInfo(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2602.             AccordoServizioParteComune api, String portType, IDServizio idServizio,
  2603.             Logger log,
  2604.             boolean signalHub) throws ProtocolException {

  2605.         ModIProperties modiProperties = ModIProperties.getInstance();
  2606.        
  2607.         // signalHub subsection
  2608.         BaseConsoleItem modiSignalHubSubtitleItem =    
  2609.                 ProtocolPropertiesUtils.getBaseConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SUBTITLE_ID);
  2610.         if(modiSignalHubSubtitleItem!=null) {
  2611.             if(signalHub) {
  2612.                 modiSignalHubSubtitleItem.setType(ConsoleItemType.SUBTITLE);
  2613.             }
  2614.             else {
  2615.                 modiSignalHubSubtitleItem.setType(ConsoleItemType.HIDDEN);
  2616.             }
  2617.         }
  2618.        
  2619.         // signalHub operation
  2620.         updatePdndInfoSignalHubOperation(api, portType, idServizio,
  2621.                 consoleConfiguration, properties,
  2622.                 log, signalHub);

  2623.         // signalHub algorithm
  2624.         updatePdndInfoSignalHubAlgo(modiProperties,
  2625.                 consoleConfiguration, properties,
  2626.                 signalHub);
  2627.        
  2628.         // seed
  2629.         updatePdndInfoSignalHubSeed(modiProperties,
  2630.                 consoleConfiguration, properties,
  2631.                 signalHub);
  2632.        
  2633.     }
  2634.     private static void updateSignalHubPublisherInfo(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2635.             IDServizio idServizio,
  2636.             IRegistryReader registryReader,
  2637.             IConfigIntegrationReader configIntegrationReader,
  2638.             Logger log,
  2639.             boolean signalHub) throws ProtocolException {
  2640.        
  2641.         // publisher
  2642.         updatePdndInfoSignalHubPublisher(consoleConfiguration, properties,
  2643.                 idServizio,
  2644.                 registryReader,
  2645.                 configIntegrationReader,
  2646.                 log,
  2647.                 signalHub);
  2648.        
  2649.     }
  2650.     private static void updatePdndInfoSignalHubOperation(AccordoServizioParteComune api, String portType, IDServizio idServizio,
  2651.             ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2652.             Logger log, boolean signalHub) throws ProtocolException {
  2653.         AbstractConsoleItem<?> modiSignalHubOpItem =    
  2654.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID);
  2655.         if(modiSignalHubOpItem!=null) {
  2656.             modiSignalHubOpItem.setRequired(signalHub);
  2657.             if(signalHub) {
  2658.                 modiSignalHubOpItem.setType(ConsoleItemType.SELECT);
  2659.                 addSignalHubOperations(api, idServizio, portType, modiSignalHubOpItem, log);
  2660.             }
  2661.             else {
  2662.                 modiSignalHubOpItem.setType(ConsoleItemType.HIDDEN);
  2663.                 modiSignalHubOpItem.clearMapLabelValues();
  2664.             }
  2665.         }
  2666.         StringProperty modiSignalHubOpItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID);
  2667.         if(modiSignalHubOpItemValue!=null && modiSignalHubOpItemValue.getValue()!=null && !signalHub) {
  2668.             modiSignalHubOpItemValue.setValue(null);
  2669.         }
  2670.     }
  2671.     private static void updatePdndInfoSignalHubAlgo(ModIProperties modiProperties,
  2672.             ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2673.             boolean signalHub) throws ProtocolException {
  2674.         AbstractConsoleItem<?> modiSignalHubAlgItem =  
  2675.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID);
  2676.         if(modiSignalHubAlgItem!=null) {
  2677.             if(signalHub) {
  2678.                 modiSignalHubAlgItem.setType(ConsoleItemType.SELECT);
  2679.             }
  2680.             else {
  2681.                 modiSignalHubAlgItem.setType(ConsoleItemType.HIDDEN);
  2682.             }
  2683.         }
  2684.         StringProperty modiSignalHubAlgItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID);
  2685.         if(modiSignalHubAlgItemValue!=null) {
  2686.             if(signalHub) {
  2687.                 if(modiSignalHubAlgItemValue.getValue()==null || StringUtils.isEmpty(modiSignalHubAlgItemValue.getValue())) {
  2688.                     modiSignalHubAlgItemValue.setValue(modiProperties.getSignalHubDefaultAlgorithm()); // default
  2689.                 }
  2690.             }
  2691.             else {
  2692.                 if(modiSignalHubAlgItemValue.getValue()!=null) {
  2693.                     modiSignalHubAlgItemValue.setValue(null);
  2694.                 }
  2695.             }
  2696.         }
  2697.     }
  2698.     private static void updatePdndInfoSignalHubSeed(ModIProperties modiProperties,
  2699.             ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2700.             boolean signalHub) throws ProtocolException {
  2701.        
  2702.         // signalHub seed size
  2703.         updatePdndInfoSignalHubSeedSize(modiProperties,
  2704.                 consoleConfiguration, properties,
  2705.                 signalHub);
  2706.        
  2707.         // signalHub seed lifetime
  2708.         updatePdndInfoSignalHubSeedLifeTime(consoleConfiguration, properties,
  2709.                 signalHub);
  2710.        
  2711.     }
  2712.     private static void updatePdndInfoSignalHubSeedSize(ModIProperties modiProperties,
  2713.             ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2714.             boolean signalHub) throws ProtocolException {
  2715.         AbstractConsoleItem<?> modiSignalHubSeedSizeItem =  
  2716.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID);
  2717.         if(modiSignalHubSeedSizeItem!=null) {
  2718.             if(signalHub) {
  2719.                 modiSignalHubSeedSizeItem.setType(ConsoleItemType.SELECT);
  2720.             }
  2721.             else {
  2722.                 modiSignalHubSeedSizeItem.setType(ConsoleItemType.HIDDEN);
  2723.             }
  2724.         }
  2725.         NumberProperty modiSignalHubSeedSizeItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID);
  2726.         if(modiSignalHubSeedSizeItemValue!=null) {
  2727.             if(signalHub) {
  2728.                 if(modiSignalHubSeedSizeItemValue.getValue()==null) {
  2729.                     modiSignalHubSeedSizeItemValue.setValue(modiProperties.getSignalHubDefaultSeedSize().longValue()); // default
  2730.                 }
  2731.             }
  2732.             else {
  2733.                 if(modiSignalHubSeedSizeItemValue.getValue()!=null) {
  2734.                     modiSignalHubSeedSizeItemValue.setValue(null);
  2735.                 }
  2736.             }
  2737.         }
  2738.     }
  2739.     private static void updatePdndInfoSignalHubSeedLifeTime(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2740.             boolean signalHub) throws ProtocolException {
  2741.         AbstractConsoleItem<?> modiSignalHubSeedLifeTimeItem =  
  2742.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID);
  2743.         if(modiSignalHubSeedLifeTimeItem!=null) {
  2744.             modiSignalHubSeedLifeTimeItem.setRequired(signalHub);
  2745.             if(signalHub) {
  2746.                 modiSignalHubSeedLifeTimeItem.setType(ConsoleItemType.TEXT_EDIT);
  2747.             }
  2748.             else {
  2749.                 modiSignalHubSeedLifeTimeItem.setType(ConsoleItemType.HIDDEN);
  2750.             }
  2751.         }
  2752.         NumberProperty modiSignalHubSeedLifeTimeItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID);
  2753.         if(modiSignalHubSeedLifeTimeItemValue!=null &&
  2754.             !signalHub &&
  2755.             modiSignalHubSeedLifeTimeItemValue.getValue()!=null) {
  2756.             modiSignalHubSeedLifeTimeItemValue.setValue(null);
  2757.         }
  2758.     }
  2759.     private static void updatePdndInfoSignalHubPublisher(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2760.             IDServizio idServizio,
  2761.             IRegistryReader registryReader,
  2762.             IConfigIntegrationReader configIntegrationReader,
  2763.             Logger log,
  2764.             boolean signalHub) throws ProtocolException {
  2765.        
  2766.         AbstractConsoleItem<?> modiSignalHubPublisherItem =    
  2767.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_TEXT_ID);
  2768.         if(modiSignalHubPublisherItem!=null) {
  2769.             if(signalHub) {
  2770.                 modiSignalHubPublisherItem.setType(ConsoleItemType.TEXT);
  2771.             }
  2772.             else {
  2773.                 modiSignalHubPublisherItem.setType(ConsoleItemType.HIDDEN);
  2774.             }
  2775.         }
  2776.         StringProperty modiSignalHubPublisherItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_TEXT_ID);
  2777.         if(modiSignalHubPublisherItemValue!=null) {
  2778.             if(signalHub) {
  2779.                 modiSignalHubPublisherItemValue.setValue(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_TEXT);
  2780.             }
  2781.             else {
  2782.                 modiSignalHubPublisherItemValue.setValue(null);
  2783.             }
  2784.         }
  2785.        
  2786.         updatePdndInfoSignalHubPublisherSA(consoleConfiguration, properties,
  2787.                 idServizio,
  2788.                 registryReader,
  2789.                 configIntegrationReader,
  2790.                 log,
  2791.                 signalHub);
  2792.        
  2793.         updatePdndInfoSignalHubPublisherRole(consoleConfiguration, properties,
  2794.                 registryReader,
  2795.                 log,
  2796.                 signalHub);
  2797.     }
  2798.     private static void updatePdndInfoSignalHubPublisherSA(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2799.             IDServizio idServizio,
  2800.             IRegistryReader registryReader,
  2801.             IConfigIntegrationReader configIntegrationReader,
  2802.             Logger log,
  2803.             boolean signalHub) throws ProtocolException {
  2804.         AbstractConsoleItem<?> modiSignalHubPublisherSAItem =  
  2805.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID);
  2806.         if(modiSignalHubPublisherSAItem!=null) {
  2807.             if(signalHub) {
  2808.                 modiSignalHubPublisherSAItem.setType(ConsoleItemType.SELECT);
  2809.                 addSignalHubServiziApplicativi(registryReader,
  2810.                         configIntegrationReader,
  2811.                         modiSignalHubPublisherSAItem, log,
  2812.                         idServizio);
  2813.             }
  2814.             else {
  2815.                 modiSignalHubPublisherSAItem.setType(ConsoleItemType.HIDDEN);
  2816.                 modiSignalHubPublisherSAItem.clearMapLabelValues();
  2817.             }
  2818.         }
  2819.         StringProperty modiSignalHubPublisherSAItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID);
  2820.         if(modiSignalHubPublisherSAItemValue!=null &&
  2821.             !signalHub) {
  2822.             modiSignalHubPublisherSAItemValue.setValue(null);
  2823.         }
  2824.     }
  2825.     private static void updatePdndInfoSignalHubPublisherRole(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  2826.             IRegistryReader registryReader,
  2827.             Logger log,
  2828.             boolean signalHub) throws ProtocolException {
  2829.         AbstractConsoleItem<?> modiSignalHubPublisherRoleItem =    
  2830.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID);
  2831.         if(modiSignalHubPublisherRoleItem!=null) {
  2832.             if(signalHub) {
  2833.                 modiSignalHubPublisherRoleItem.setType(ConsoleItemType.SELECT);
  2834.                 addSignalHubRuoli(registryReader,
  2835.                         modiSignalHubPublisherRoleItem, log);
  2836.             }
  2837.             else {
  2838.                 modiSignalHubPublisherRoleItem.setType(ConsoleItemType.HIDDEN);
  2839.                 modiSignalHubPublisherRoleItem.clearMapLabelValues();
  2840.             }
  2841.         }
  2842.         StringProperty modiSignalHubPublisherRoleItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID);
  2843.         if(modiSignalHubPublisherRoleItemValue!=null &&
  2844.             !signalHub) {
  2845.             modiSignalHubPublisherRoleItemValue.setValue(null);
  2846.         }
  2847.     }
  2848.    
  2849.     private static void addSignalHubOperations(AccordoServizioParteComune api, IDServizio idServizio, String portType, AbstractConsoleItem<?> modiSignalHubOpItem, Logger log) throws ProtocolException {
  2850.         Map<String,String> azioni = getSignalHubOperations(api, idServizio, portType, log);
  2851.         if(azioni!=null && !azioni.isEmpty()) {
  2852.             for (Map.Entry<String,String> entry : azioni.entrySet()) {
  2853.                 String azioneId = entry.getKey();
  2854.                 String azioneLabel = entry.getValue();
  2855.                 ((StringConsoleItem)modiSignalHubOpItem).addLabelValue(azioneLabel,azioneId);
  2856.             }
  2857.         }  
  2858.     }
  2859.    
  2860.     private static Map<String, String> getSignalHubOperations(AccordoServizioParteComune api, IDServizio idServizio, String portType, Logger log) throws ProtocolException {
  2861.        
  2862.         AccordoServizioParteSpecifica aspsRicercaAzioni = new AccordoServizioParteSpecifica();
  2863.         aspsRicercaAzioni.setTipo(idServizio.getTipo());
  2864.         aspsRicercaAzioni.setNome(idServizio.getNome());
  2865.         aspsRicercaAzioni.setVersione(idServizio.getVersione());
  2866.         if(idServizio.getSoggettoErogatore()!=null) {
  2867.             aspsRicercaAzioni.setTipoSoggettoErogatore(idServizio.getSoggettoErogatore().getTipo());
  2868.             aspsRicercaAzioni.setNomeSoggettoErogatore(idServizio.getSoggettoErogatore().getNome());
  2869.         }
  2870.         aspsRicercaAzioni.setPortType(portType);
  2871.        
  2872.         AccordoServizioParteComuneSintetico aspcSelected = new AccordoServizioParteComuneSintetico(api);

  2873.        
  2874.         List<String> filtraAzioniUtilizzate = new ArrayList<>();
  2875.         Map<String,String> azioni = null;
  2876.         try {
  2877.             azioni = AzioniUtils.getAzioniConLabel(aspsRicercaAzioni, aspcSelected, true, false,
  2878.                     filtraAzioniUtilizzate, ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED, ModIConsoleCostanti.MODIPA_LABEL_UNDEFINED, log);
  2879.         }catch(Exception e) {
  2880.             throw new ProtocolException("Lettura azioni '"+idServizio+"' non riuscita: "+e.getMessage(),e);
  2881.         }
  2882.         return azioni;
  2883.     }
  2884.    
  2885.     private static IDPortaDelegata readPDSignalHub(IRegistryReader registryReader,
  2886.             IConfigIntegrationReader configIntegrationReader,
  2887.             Logger log,
  2888.             IDServizio idServizio, IDAccordo idAccordoSignalHubPushAPI) {
  2889.         ProtocolFiltroRicercaFruizioniServizio filtro = new ProtocolFiltroRicercaFruizioniServizio();
  2890.         filtro.setIdAccordoServizioParteComune(idAccordoSignalHubPushAPI);
  2891.         filtro.setSoggettoFruitore(idServizio.getSoggettoErogatore());
  2892.         try {
  2893.             List<IDFruizione> list = registryReader.findIdFruizioni(filtro);
  2894.             if(list!=null && !list.isEmpty()) {
  2895.                 return readPDSignalHub(configIntegrationReader,list);
  2896.             }
  2897.         }catch(Exception e) {
  2898.             log.error("Lettura id servizio signalhub api push fallita: "+e.getMessage(),e);
  2899.         }
  2900.         return null;
  2901.     }
  2902.     private static IDPortaDelegata readPDSignalHub(IConfigIntegrationReader configIntegrationReader,List<IDFruizione> list) throws RegistryException {
  2903.         // prendo la prima
  2904.         IDFruizione idF = list.get(0);
  2905.         if(idF!=null) {
  2906.             List<MappingFruizionePortaDelegata> listMF = configIntegrationReader.getMappingFruizionePortaDelegataList(idF.getIdFruitore(), idF.getIdServizio());
  2907.             if(listMF!=null && !listMF.isEmpty()) {
  2908.                 for (MappingFruizionePortaDelegata mappingFruizionePortaDelegata : listMF) {
  2909.                     if(mappingFruizionePortaDelegata.isDefault()) {
  2910.                         return mappingFruizionePortaDelegata.getIdPortaDelegata();
  2911.                     }
  2912.                 }
  2913.             }
  2914.         }
  2915.         return null;
  2916.     }
  2917.     private static void addSignalHubServiziApplicativi(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader,
  2918.             AbstractConsoleItem<?> modiSignalHubPublisherSAItem, Logger log,
  2919.             IDServizio idServizio) {
  2920.        
  2921.         ((StringConsoleItem)modiSignalHubPublisherSAItem).addLabelValue(ModIConsoleCostanti.MODIPA_LABEL_UNDEFINED, ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED);

  2922.         if(idServizio!=null) {
  2923.             try {
  2924.                 List<IDServizioApplicativo> idSA = getSignalHubServiziApplicativi(registryReader, configIntegrationReader, idServizio);
  2925.                 if(idSA!=null && !idSA.isEmpty()) {
  2926.                     List<String> nomi = new ArrayList<>();
  2927.                     for (IDServizioApplicativo idServizioApplicativo : idSA) {
  2928.                         nomi.add(idServizioApplicativo.getNome());
  2929.                     }
  2930.                     Collections.sort(nomi);
  2931.                     for (String s : nomi) {
  2932.                         ((StringConsoleItem)modiSignalHubPublisherSAItem).addLabelValue(s,s);
  2933.                     }
  2934.                 }
  2935.             }catch(Exception e) {
  2936.                 log.error("Lettura porta delegata per signalhub api push fallita: "+e.getMessage(),e);
  2937.             }
  2938.         }
  2939.     }
  2940.    
  2941.     private static List<IDServizioApplicativo> getSignalHubServiziApplicativi(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, IDServizio idServizio) throws RegistryNotFound, RegistryException, DriverRegistroServiziException, ProtocolException {
  2942.         IDAccordo idAccordoSignalHubPushAPI = ModIDynamicConfigurationAccordiParteComuneUtilities.getIdAccordoSignalHubPush(registryReader, ModIProperties.getInstance());
  2943.         IDPortaDelegata idPD = readPDSignalHub(registryReader,
  2944.                 configIntegrationReader,
  2945.                 logger,
  2946.                 idServizio, idAccordoSignalHubPushAPI);
  2947.         PortaDelegata pd = configIntegrationReader.getPortaDelegata(idPD);
  2948.         return configIntegrationReader.findIdServiziApplicativiByPdAuth(pd, true, true);
  2949.     }
  2950.    
  2951.     private static void addSignalHubRuoli(IRegistryReader registryReader,
  2952.             AbstractConsoleItem<?> modiSignalHubPublisherRoleItem, Logger log) {
  2953.            
  2954.         ((StringConsoleItem)modiSignalHubPublisherRoleItem).addLabelValue(ModIConsoleCostanti.MODIPA_LABEL_UNDEFINED, ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED);
  2955.        
  2956.         List<IDRuolo>  l = getSignalHubRuoli(registryReader, log);
  2957.            
  2958.         if(l!=null && !l.isEmpty()) {
  2959.             for (IDRuolo idRuolo : l) {
  2960.                 ((StringConsoleItem)modiSignalHubPublisherRoleItem).addLabelValue(idRuolo.getNome(),idRuolo.getNome());
  2961.             }
  2962.         }

  2963.     }
  2964.    
  2965.     private static List<IDRuolo> getSignalHubRuoli(IRegistryReader registryReader, Logger log) {
  2966.         List<IDRuolo>  l = List.of();
  2967.         try {
  2968.             ProtocolFiltroRicercaRuoli filtro = new ProtocolFiltroRicercaRuoli();
  2969.             filtro.setContesto(RuoloContesto.PORTA_DELEGATA);
  2970.             filtro.setTipologia(RuoloTipologia.INTERNO);
  2971.             l = registryReader.findIdRuoli(filtro);
  2972.         }catch(RegistryNotFound e) {
  2973.             log.debug("Ruoli per signalhub api push non presenti"+e.getMessage(),e);
  2974.         }catch(Exception e) {
  2975.             log.error("Lettura id accordo signalhub api push fallita: "+e.getMessage(),e);
  2976.         }
  2977.         return l;
  2978.     }
  2979.    
  2980.    
  2981.     public static void validatePdndInfo(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, AccordoServizioParteComune api, IDServizio idServizio, String portType, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  2982.        
  2983.         ModIProperties modiProperties = ModIProperties.getInstance();
  2984.        
  2985.         // eServiceId
  2986.        
  2987.         String modiEServiceIdItemValue = validatePdndInfoId(registryReader, idServizio, consoleConfiguration, properties,
  2988.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ESERVICE_ID_ID, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ESERVICE_ID_LABEL,
  2989.                 ModIProperties.getInstance().isPdndEServiceIdCheckUnique());
  2990.        
  2991.         // descriptorId
  2992.        
  2993.         validatePdndInfoId(registryReader, idServizio, consoleConfiguration, properties,
  2994.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_DESCRIPTOR_ID_ID, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_DESCRIPTOR_ID_LABEL,
  2995.                 ModIProperties.getInstance().isPdndDescriptorIdCheckUnique());
  2996.        
  2997.        
  2998.         // signalHub
  2999.        
  3000.         boolean signalHub = false;
  3001.         if(modiProperties.isSignalHubEnabled()) {
  3002.             BooleanProperty modiSignalHubItemValue = (BooleanProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ID);
  3003.             signalHub = modiSignalHubItemValue!=null && modiSignalHubItemValue.getValue()!=null && modiSignalHubItemValue.getValue().booleanValue();
  3004.         }
  3005.        
  3006.         if(signalHub) {
  3007.             if (modiEServiceIdItemValue == null)
  3008.                 throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ID_ESERVICE_UNDEFINED);
  3009.             validatePdndInfoSignalHub(registryReader, configIntegrationReader, api, idServizio, portType, consoleConfiguration, properties);
  3010.         }
  3011.     }
  3012.     private static String validatePdndInfoId(IRegistryReader registryReader, IDServizio idServizio, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties,
  3013.             String id, String label, boolean checkUnique) throws ProtocolException {
  3014.         AbstractConsoleItem<?> modiEServiceIdItem =    
  3015.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3016.                         id
  3017.                         );
  3018.         StringProperty modiEServiceIdItemValue = null;
  3019.         if(modiEServiceIdItem!=null) {
  3020.            
  3021.             modiEServiceIdItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, id);
  3022.             String idValue = null;
  3023.             if(modiEServiceIdItemValue!=null && modiEServiceIdItemValue.getValue()!=null && !"".equals(modiEServiceIdItemValue.getValue())) {
  3024.                 try {
  3025.                     InputValidationUtils.validateTextAreaInput(modiEServiceIdItemValue.getValue(), label);
  3026.                 }catch(Exception e) {
  3027.                     throw new ProtocolException(e.getMessage(),e);
  3028.                 }
  3029.                 idValue = modiEServiceIdItemValue.getValue();
  3030.             }
  3031.            
  3032.             validatePdndInfoIdExists(registryReader, idServizio,
  3033.                     id, label, checkUnique, idValue);
  3034.            
  3035.             return idValue;
  3036.         }
  3037.         return null;
  3038.     }
  3039.     private static void validatePdndInfoIdExists(IRegistryReader registryReader, IDServizio idServizio,
  3040.             String id, String label, boolean checkUnique, String idValue) throws ProtocolException {
  3041.         if(idValue!=null && checkUnique) {
  3042.             if(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_DESCRIPTOR_ID_ID.equals(id)) {
  3043.                 List<String> values = ModISecurityConfig.convertToList(idValue);
  3044.                 if(values!=null && !values.isEmpty()) {
  3045.                     for (String v : values) {
  3046.                         validatePdndInfoIdExists(registryReader, idServizio,
  3047.                                 id, label, v, LikeConfig.contains(false)); // gli uuid sono sempre univoci, una ricerca per contains va bene        
  3048.                     }
  3049.                 }
  3050.             }
  3051.             else {
  3052.                 validatePdndInfoIdExists(registryReader, idServizio,
  3053.                         id, label, idValue, null);
  3054.             }
  3055.         }
  3056.     }
  3057.     private static void validatePdndInfoIdExists(IRegistryReader registryReader, IDServizio idServizio,
  3058.             String id, String label, String idValue, LikeConfig likeConfig) throws ProtocolException {
  3059.         ProtocolFiltroRicercaServizi filtro = new ProtocolFiltroRicercaServizi();
  3060.         filtro.setProtocolPropertiesServizi(new ProtocolProperties());
  3061.         filtro.getProtocolPropertiesServizi().addProperty(id, idValue, likeConfig);
  3062.         List<IDServizio> list = null;
  3063.         try {
  3064.             list = registryReader.findIdAccordiServizioParteSpecifica(filtro);
  3065.             if(list!=null && !list.isEmpty()) {
  3066.                 for (IDServizio check : list) {
  3067.                     if(!check.equals(idServizio, false)) {
  3068.                         String msg = "L'erogazione '"+check.getNome()+" v"+check.getVersione()+"' erogata da '"+check.getSoggettoErogatore().getNome()+"' risulta già registrata con il campo '"+label+"' valorizzato con l'identificativo fornito";
  3069.                         if(likeConfig==null) {
  3070.                             msg = msg + " '"+idValue+"'";
  3071.                         }
  3072.                         throw new ProtocolException(msg);
  3073.                     }
  3074.                 }
  3075.             }
  3076.         }catch(RegistryNotFound notFound) {
  3077.             // ignore
  3078.         }catch(Exception e) {
  3079.             throw new ProtocolException(e.getMessage(),e);
  3080.         }
  3081.     }
  3082.     private static void validatePdndInfoSignalHub(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, AccordoServizioParteComune api, IDServizio idServizio, String portType, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3083.        
  3084.         // operation
  3085.         validatePdndInfoSignalHubOperation(api, idServizio, portType, consoleConfiguration, properties);
  3086.        
  3087.         // algorithm
  3088.         validatePdndInfoSignalHubAlgorithm(consoleConfiguration, properties);

  3089.         // seed size
  3090.         validatePdndInfoSignalHubSeedSize(consoleConfiguration, properties);    
  3091.                
  3092.         // lifetime
  3093.         validatePdndInfoSignalHubLifeTime(consoleConfiguration, properties);
  3094.        
  3095.         // publisher
  3096.         validatePdndInfoSignalHubPublisher(registryReader, configIntegrationReader, idServizio, consoleConfiguration, properties);
  3097.        
  3098.     }
  3099.     private static void validatePdndInfoSignalHubOperation(AccordoServizioParteComune api, IDServizio idServizio, String portType,ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3100.         AbstractConsoleItem<?> profiloSignalHubOperationItem =  
  3101.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3102.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID
  3103.                         );
  3104.         StringProperty profiloSignalHubOperationItemValue = null;
  3105.         String profiloSignalHubOperation = null;
  3106.         if(profiloSignalHubOperationItem != null) {
  3107.             profiloSignalHubOperationItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID);
  3108.             if(profiloSignalHubOperationItemValue!=null && profiloSignalHubOperationItemValue.getValue()!=null && !"".equals(profiloSignalHubOperationItemValue.getValue())) {
  3109.                 profiloSignalHubOperation = profiloSignalHubOperationItemValue.getValue();  
  3110.             }
  3111.         }
  3112.         if(profiloSignalHubOperation==null || "".equals(profiloSignalHubOperation) ||
  3113.                 ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubOperation)) {
  3114.             throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ERROR_UNDEFINED);
  3115.         }
  3116.        
  3117.         Map<String, String> operations = getSignalHubOperations(api, idServizio, portType, logger);
  3118.         if (!operations.containsKey(profiloSignalHubOperation)) {
  3119.             throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ERROR_WRONG);
  3120.         }
  3121.     }
  3122.     private static void validatePdndInfoSignalHubAlgorithm(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3123.         AbstractConsoleItem<?> profiloSignalHubAlgorithmItem = ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3124.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID
  3125.                 );
  3126.        
  3127.         if(profiloSignalHubAlgorithmItem!=null) {
  3128.            
  3129.             StringProperty profiloSignalHubAlgorithmItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID);
  3130.             if(profiloSignalHubAlgorithmItemValue!=null && profiloSignalHubAlgorithmItemValue.getValue()!=null && !"".equals(profiloSignalHubAlgorithmItemValue.getValue())) {
  3131.                 List<String> algorithms = ModIProperties.getInstance().getSignalHubAlgorithms();
  3132.                
  3133.                 if (!algorithms.contains(profiloSignalHubAlgorithmItemValue.getValue())) {
  3134.                     throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ERROR_WRONG);
  3135.                 }
  3136.             }
  3137.            
  3138.         }
  3139.     }
  3140.    
  3141.     private static void validatePdndInfoSignalHubSeedSize(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3142.         AbstractConsoleItem<?> profiloSignalHubSeedSizetem = ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3143.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID
  3144.                 );
  3145.         Integer seedSize = null;
  3146.        
  3147.         if(profiloSignalHubSeedSizetem != null) {
  3148.            
  3149.             NumberProperty profiloSignalHubSeedSizeItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID);
  3150.             if(profiloSignalHubSeedSizeItemValue!=null && profiloSignalHubSeedSizeItemValue.getValue()!=null) {
  3151.                 List<Integer> seedSizes = ModIProperties.getInstance().getSignalHubSeedSize();
  3152.                 seedSize = profiloSignalHubSeedSizeItemValue.getValue().intValue();
  3153.                
  3154.                 if (!seedSizes.contains(seedSize)) {
  3155.                     throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ERROR_WRONG);
  3156.                 }
  3157.             }
  3158.            
  3159.         }
  3160.     }
  3161.    
  3162.     private static void validatePdndInfoSignalHubLifeTime(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3163.         AbstractConsoleItem<?> profiloSignalHubSeedLifeTimeItem =  
  3164.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3165.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID
  3166.                         );
  3167.         if(profiloSignalHubSeedLifeTimeItem!=null) {
  3168.            
  3169.             NumberProperty profiloSignalHubSeedLifeTimeItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID);
  3170.             if(profiloSignalHubSeedLifeTimeItemValue!=null && profiloSignalHubSeedLifeTimeItemValue.getValue()!=null) {
  3171.                 try {
  3172.                     long i = (profiloSignalHubSeedLifeTimeItemValue.getValue());
  3173.                     if(i<=0) {
  3174.                         throw new ProtocolException("deve essere fornito un numero intero maggiore di 0");
  3175.                     }
  3176.                 }catch(Exception e) {
  3177.                     throw new ProtocolException(CostantiLabel.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_LABEL+" '"+profiloSignalHubSeedLifeTimeItemValue.getValue()+"' non valido; must be a positive integer greater than 0");
  3178.                 }
  3179.             }
  3180.         }
  3181.     }
  3182.    
  3183.    
  3184.     private static void validatePdndInfoSignalHubPublisher(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, IDServizio idServizio, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3185.        
  3186.         boolean publisherSAundefined =  validatePdndIfnoSignalHubPublisherSA(registryReader, configIntegrationReader, idServizio, consoleConfiguration, properties);
  3187.        
  3188.         boolean publisherRoleUndefined = validatePdndIfnoSignalHubPublisherRole(registryReader, consoleConfiguration, properties);
  3189.        
  3190.         if(publisherSAundefined && publisherRoleUndefined) {
  3191.             throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ERROR_UNDEFINED);
  3192.         }
  3193.     }
  3194.    
  3195.     private static boolean validatePdndIfnoSignalHubPublisherSA(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, IDServizio idServizio, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties)  throws ProtocolException {
  3196.         AbstractConsoleItem<?> profiloSignalHubSAItem = ProtocolPropertiesUtils.getAbstractConsoleItem(
  3197.                 consoleConfiguration.getConsoleItem(),
  3198.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID);
  3199.         StringProperty profiloSignalHubSAItemValue = null;
  3200.         String profiloSignalHubSA = null;
  3201.         if (profiloSignalHubSAItem != null) {
  3202.             profiloSignalHubSAItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties,
  3203.                     ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID);
  3204.             if (profiloSignalHubSAItemValue != null &&
  3205.                     profiloSignalHubSAItemValue.getValue() != null &&
  3206.                     !"".equals(profiloSignalHubSAItemValue.getValue()) &&
  3207.                     !ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubSAItemValue.getValue())) {
  3208.                 profiloSignalHubSA = profiloSignalHubSAItemValue.getValue();

  3209.                 try {
  3210.                     String finalSAName = profiloSignalHubSA;
  3211.                     List<IDServizioApplicativo> idSAs = getSignalHubServiziApplicativi(registryReader,
  3212.                             configIntegrationReader, idServizio);
  3213.                     long matched = idSAs.stream().filter(id -> id.getNome().equals(finalSAName)).count();
  3214.                     if (matched < 1) {
  3215.                         throw new ProtocolException(
  3216.                                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_UNDEFINED);
  3217.                     }
  3218.                 } catch (RegistryNotFound | RegistryException | DriverRegistroServiziException e) {
  3219.                     throw new ProtocolException(
  3220.                             ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_UNDEFINED, e);
  3221.                 }

  3222.             }
  3223.         }
  3224.        
  3225.         return profiloSignalHubSA==null
  3226.                 || "".equals(profiloSignalHubSA)
  3227.                 || ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubSA);
  3228.     }
  3229.    
  3230.     private static boolean validatePdndIfnoSignalHubPublisherRole(IRegistryReader registryReader, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties)  throws ProtocolException {
  3231.         AbstractConsoleItem<?> profiloSignalHubRoleItem =  
  3232.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3233.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID
  3234.                         );
  3235.         StringProperty profiloSignalHubRoleItemValue = null;
  3236.         String profiloSignalHubRole = null;
  3237.         if(profiloSignalHubRoleItem!=null) {
  3238.             profiloSignalHubRoleItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID);
  3239.             if(profiloSignalHubRoleItemValue!=null &&
  3240.                     profiloSignalHubRoleItemValue.getValue()!=null &&
  3241.                     !"".equals(profiloSignalHubRoleItemValue.getValue()) &&
  3242.                     !ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubRoleItemValue.getValue())) {
  3243.                 profiloSignalHubRole = profiloSignalHubRoleItemValue.getValue();
  3244.                
  3245.                 String finalRole = profiloSignalHubRole;
  3246.                 List<IDRuolo> roles = getSignalHubRuoli(registryReader, logger);
  3247.                 long matched = roles.stream().filter(r -> r.getNome().equals(finalRole)).count();
  3248.                 if (matched == 0) {
  3249.                     throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_UNDEFINED);
  3250.                 }
  3251.             }
  3252.         }
  3253.        
  3254.         return profiloSignalHubRole==null
  3255.                 || "".equals(profiloSignalHubRole)
  3256.                 || ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubRole);
  3257.     }
  3258.    
  3259.     static void addSignaHubFruizioneConfig(ModIProperties modiProperties,
  3260.             ConsoleConfiguration configuration, boolean rest) throws ProtocolException {
  3261.        
  3262.        
  3263.         TitleConsoleItem titolo = (TitleConsoleItem) ProtocolPropertiesFactory.newTitleItem(
  3264.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_ID,
  3265.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_LABEL);
  3266.         configuration.addConsoleItem(titolo );
  3267.        
  3268.         ModISignalHubConfig c = modiProperties.getSignalHubConfig();
  3269.         if(c!=null && c.getClaims()!=null && !c.getClaims().isEmpty()) {
  3270.             for (ModISignalHubParamConfig modISignalHubParamConfig : c.getClaims()) {
  3271.                 addSignaHubFruizioneConfig(configuration, modISignalHubParamConfig, rest);
  3272.             }
  3273.         }
  3274.        
  3275.     }
  3276.    
  3277.     private static String addSignaHubFruizioneConfig(ConsoleConfiguration configuration, ModISignalHubParamConfig paramConfig, boolean rest) throws ProtocolException {
  3278.        
  3279.         String modeId = ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_ID_PREFIX+paramConfig.getNome();
  3280.        
  3281.         StringConsoleItem modeItem = (StringConsoleItem)
  3282.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  3283.                 ConsoleItemType.SELECT,
  3284.                 modeId,
  3285.                 paramConfig.getLabel());
  3286.         modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_LABEL_DEFAULT,
  3287.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT);
  3288.         modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_LABEL_RIDEFINISCI,
  3289.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI);
  3290.         modeItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_DEFAULT_VALUE);
  3291.         modeItem.setReloadOnChange(true, true);
  3292.         configuration.addConsoleItem(modeItem);
  3293.        
  3294.         StringConsoleItem ridefineItem = (StringConsoleItem)
  3295.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  3296.                 ConsoleItemType.TEXT_AREA,
  3297.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_VALUE_ID_PREFIX+paramConfig.getNome(),
  3298.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_VALUE_LABEL);
  3299.         ridefineItem.setRequired(true);
  3300.         ridefineItem.setRows(2);
  3301.         ridefineItem.setInfo(buildConsoleItemInfoCorniceSicurezza(paramConfig.getLabel(), rest));
  3302.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT)) {
  3303.             ridefineItem.setType(ConsoleItemType.HIDDEN);
  3304.         }
  3305.         configuration.addConsoleItem(ridefineItem);
  3306.        
  3307.         return modeId;
  3308.     }
  3309.    
  3310.     static void updateSignaHubFruizioneConfig(ModIProperties modiProperties,
  3311.             ConsoleConfiguration configuration, ProtocolProperties properties) throws ProtocolException {
  3312.        
  3313.         ModISignalHubConfig c = modiProperties.getSignalHubConfig();
  3314.         if(c!=null && c.getClaims()!=null && !c.getClaims().isEmpty()) {
  3315.             for (ModISignalHubParamConfig modISignalHubParamConfig : c.getClaims()) {
  3316.                 updateSignaHubFruizioneConfig(configuration, properties, modISignalHubParamConfig);
  3317.             }
  3318.         }
  3319.        
  3320.     }
  3321.    
  3322.     private static void updateSignaHubFruizioneConfig(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties, ModISignalHubParamConfig paramConfig) throws ProtocolException {
  3323.        
  3324.         String modeId = ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_ID_PREFIX+paramConfig.getNome();
  3325.        
  3326.         boolean ridefinisciItem = false;
  3327.         StringProperty selectSchemaModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties,
  3328.                 modeId);
  3329.         if(selectSchemaModeItemValue==null) {
  3330.             ridefinisciItem = false;    
  3331.         }
  3332.         else {
  3333.             ridefinisciItem = ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI.equals(selectSchemaModeItemValue.getValue());
  3334.         }
  3335.    
  3336.         AbstractConsoleItem<?> modeItem =  
  3337.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), modeId);
  3338.         if(ridefinisciItem) {
  3339.             modeItem.setInfo(null);
  3340.         }
  3341.         else {
  3342.             modeItem.setInfo(new ConsoleItemInfo(paramConfig.getLabel()));
  3343.             modeItem.getInfo().setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_MODE_DEFAULT_INFO_INTESTAZIONE.
  3344.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_MODE_DEFAULT_INFO_INTESTAZIONE_PARAM, paramConfig.getNome()));
  3345.             modeItem.getInfo().setListBody(new ArrayList<>());
  3346.             modeItem.getInfo().getListBody().addAll(paramConfig.getRulesInfo());
  3347.         }
  3348.        
  3349.         String id = ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_VALUE_ID_PREFIX+paramConfig.getNome();
  3350.         AbstractConsoleItem<?> valueItem =  
  3351.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), id);
  3352.         if(ridefinisciItem) {
  3353.             valueItem.setType(ConsoleItemType.TEXT_AREA);
  3354.         }
  3355.         else {
  3356.             valueItem.setType(ConsoleItemType.HIDDEN);
  3357.             StringProperty selectItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, id);
  3358.             if(selectItemValue!=null) {
  3359.                 selectItemValue.setValue(null);
  3360.             }
  3361.         }
  3362.        
  3363.     }
  3364. }
  3365.