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.sdk.ProtocolException;
  61. import org.openspcoop2.protocol.sdk.constants.ConsoleItemType;
  62. import org.openspcoop2.protocol.sdk.constants.ConsoleItemValueType;
  63. import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
  64. import org.openspcoop2.protocol.sdk.properties.AbstractConsoleItem;
  65. import org.openspcoop2.protocol.sdk.properties.BaseConsoleItem;
  66. import org.openspcoop2.protocol.sdk.properties.BooleanConsoleItem;
  67. import org.openspcoop2.protocol.sdk.properties.BooleanProperty;
  68. import org.openspcoop2.protocol.sdk.properties.ConsoleConfiguration;
  69. import org.openspcoop2.protocol.sdk.properties.ConsoleItemInfo;
  70. import org.openspcoop2.protocol.sdk.properties.IConsoleHelper;
  71. import org.openspcoop2.protocol.sdk.properties.NumberConsoleItem;
  72. import org.openspcoop2.protocol.sdk.properties.NumberProperty;
  73. import org.openspcoop2.protocol.sdk.properties.ProtocolProperties;
  74. import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesFactory;
  75. import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesUtils;
  76. import org.openspcoop2.protocol.sdk.properties.StringConsoleItem;
  77. import org.openspcoop2.protocol.sdk.properties.StringProperty;
  78. import org.openspcoop2.protocol.sdk.properties.SubtitleConsoleItem;
  79. import org.openspcoop2.protocol.sdk.properties.TitleConsoleItem;
  80. import org.openspcoop2.protocol.sdk.registry.IConfigIntegrationReader;
  81. import org.openspcoop2.protocol.sdk.registry.IRegistryReader;
  82. import org.openspcoop2.protocol.sdk.registry.ProtocolFiltroRicercaFruizioniServizio;
  83. import org.openspcoop2.protocol.sdk.registry.ProtocolFiltroRicercaRuoli;
  84. import org.openspcoop2.protocol.sdk.registry.RegistryException;
  85. import org.openspcoop2.protocol.sdk.registry.RegistryNotFound;
  86. import org.openspcoop2.utils.LoggerWrapperFactory;
  87. import org.openspcoop2.utils.certificate.remote.RemoteStoreConfig;
  88. import org.openspcoop2.utils.digest.DigestEncoding;
  89. import org.slf4j.Logger;
  90. import org.slf4j.LoggerFactory;

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

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

  170.        
  171.        
  172.         // Created Ttl Time

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

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

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

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

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

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

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

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

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

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

  2592.         ModIProperties modiProperties = ModIProperties.getInstance();
  2593.        
  2594.         // signalHub subsection
  2595.         BaseConsoleItem modiSignalHubSubtitleItem =    
  2596.                 ProtocolPropertiesUtils.getBaseConsoleItem(consoleConfiguration.getConsoleItem(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SUBTITLE_ID);
  2597.         if(modiSignalHubSubtitleItem!=null) {
  2598.             if(signalHub) {
  2599.                 modiSignalHubSubtitleItem.setType(ConsoleItemType.SUBTITLE);
  2600.             }
  2601.             else {
  2602.                 modiSignalHubSubtitleItem.setType(ConsoleItemType.HIDDEN);
  2603.             }
  2604.         }
  2605.        
  2606.         // signalHub operation
  2607.         updatePdndInfoSignalHubOperation(api, portType, idServizio,
  2608.                 consoleConfiguration, properties,
  2609.                 log, signalHub);

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

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

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

  2950.     }
  2951.    
  2952.     private static List<IDRuolo> getSignalHubRuoli(IRegistryReader registryReader, Logger log) {
  2953.         List<IDRuolo>  l = List.of();
  2954.         try {
  2955.             ProtocolFiltroRicercaRuoli filtro = new ProtocolFiltroRicercaRuoli();
  2956.             filtro.setContesto(RuoloContesto.PORTA_DELEGATA);
  2957.             filtro.setTipologia(RuoloTipologia.INTERNO);
  2958.             l = registryReader.findIdRuoli(filtro);
  2959.         }catch(RegistryNotFound e) {
  2960.             log.debug("Ruoli per signalhub api push non presenti"+e.getMessage(),e);
  2961.         }catch(Exception e) {
  2962.             log.error("Lettura id accordo signalhub api push fallita: "+e.getMessage(),e);
  2963.         }
  2964.         return l;
  2965.     }
  2966.    
  2967.    
  2968.     public static void validatePdndInfo(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, AccordoServizioParteComune api, IDServizio idServizio, String portType, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  2969.        
  2970.         ModIProperties modiProperties = ModIProperties.getInstance();
  2971.        
  2972.         AbstractConsoleItem<?> modiEServiceIdItem =    
  2973.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  2974.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ID_ESERVICE_ID
  2975.                         );
  2976.         StringProperty modiEServiceIdItemValue = null;
  2977.         if(modiEServiceIdItem!=null) {
  2978.            
  2979.             modiEServiceIdItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ID_ESERVICE_ID);
  2980.             if(modiEServiceIdItemValue!=null && modiEServiceIdItemValue.getValue()!=null && !"".equals(modiEServiceIdItemValue.getValue())) {
  2981.                 try {
  2982.                     InputValidationUtils.validateTextAreaInput(modiEServiceIdItemValue.getValue(), ModIConsoleCostanti.MODIPA_API_IMPL_INFO_ID_ESERVICE_LABEL);
  2983.                 }catch(Exception e) {
  2984.                     throw new ProtocolException(e.getMessage(),e);
  2985.                 }
  2986.             }
  2987.            
  2988.         }
  2989.        
  2990.         boolean signalHub = false;
  2991.         if(modiProperties.isSignalHubEnabled()) {
  2992.             BooleanProperty modiSignalHubItemValue = (BooleanProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ID);
  2993.             signalHub = modiSignalHubItemValue!=null && modiSignalHubItemValue.getValue()!=null && modiSignalHubItemValue.getValue().booleanValue();
  2994.         }
  2995.        
  2996.         if(signalHub) {
  2997.             if (modiEServiceIdItemValue == null)
  2998.                 throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ID_ESERVICE_UNDEFINED);
  2999.             validatePdndInfoSignalHub(registryReader, configIntegrationReader, api, idServizio, portType, consoleConfiguration, properties);
  3000.         }
  3001.     }
  3002.     private static void validatePdndInfoSignalHub(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, AccordoServizioParteComune api, IDServizio idServizio, String portType, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3003.        
  3004.         // operation
  3005.         validatePdndInfoSignalHubOperation(api, idServizio, portType, consoleConfiguration, properties);
  3006.        
  3007.         // algorithm
  3008.         validatePdndInfoSignalHubAlgorithm(consoleConfiguration, properties);

  3009.         // seed size
  3010.         validatePdndInfoSignalHubSeedSize(consoleConfiguration, properties);    
  3011.                
  3012.         // lifetime
  3013.         validatePdndInfoSignalHubLifeTime(consoleConfiguration, properties);
  3014.        
  3015.         // publisher
  3016.         validatePdndInfoSignalHubPublisher(registryReader, configIntegrationReader, idServizio, consoleConfiguration, properties);
  3017.        
  3018.     }
  3019.     private static void validatePdndInfoSignalHubOperation(AccordoServizioParteComune api, IDServizio idServizio, String portType,ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3020.         AbstractConsoleItem<?> profiloSignalHubOperationItem =  
  3021.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3022.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID
  3023.                         );
  3024.         StringProperty profiloSignalHubOperationItemValue = null;
  3025.         String profiloSignalHubOperation = null;
  3026.         if(profiloSignalHubOperationItem != null) {
  3027.             profiloSignalHubOperationItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ID);
  3028.             if(profiloSignalHubOperationItemValue!=null && profiloSignalHubOperationItemValue.getValue()!=null && !"".equals(profiloSignalHubOperationItemValue.getValue())) {
  3029.                 profiloSignalHubOperation = profiloSignalHubOperationItemValue.getValue();  
  3030.             }
  3031.         }
  3032.         if(profiloSignalHubOperation==null || "".equals(profiloSignalHubOperation) ||
  3033.                 ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubOperation)) {
  3034.             throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ERROR_UNDEFINED);
  3035.         }
  3036.        
  3037.         Map<String, String> operations = getSignalHubOperations(api, idServizio, portType, logger);
  3038.         if (!operations.containsKey(profiloSignalHubOperation)) {
  3039.             throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_OPERATION_ERROR_WRONG);
  3040.         }
  3041.     }
  3042.     private static void validatePdndInfoSignalHubAlgorithm(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3043.         AbstractConsoleItem<?> profiloSignalHubAlgorithmItem = ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3044.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID
  3045.                 );
  3046.        
  3047.         if(profiloSignalHubAlgorithmItem!=null) {
  3048.            
  3049.             StringProperty profiloSignalHubAlgorithmItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ID);
  3050.             if(profiloSignalHubAlgorithmItemValue!=null && profiloSignalHubAlgorithmItemValue.getValue()!=null && !"".equals(profiloSignalHubAlgorithmItemValue.getValue())) {
  3051.                 List<String> algorithms = ModIProperties.getInstance().getSignalHubAlgorithms();
  3052.                
  3053.                 if (!algorithms.contains(profiloSignalHubAlgorithmItemValue.getValue())) {
  3054.                     throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_ALGORITHM_ERROR_WRONG);
  3055.                 }
  3056.             }
  3057.            
  3058.         }
  3059.     }
  3060.    
  3061.     private static void validatePdndInfoSignalHubSeedSize(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3062.         AbstractConsoleItem<?> profiloSignalHubSeedSizetem = ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3063.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID
  3064.                 );
  3065.         Integer seedSize = null;
  3066.        
  3067.         if(profiloSignalHubSeedSizetem != null) {
  3068.            
  3069.             NumberProperty profiloSignalHubSeedSizeItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ID);
  3070.             if(profiloSignalHubSeedSizeItemValue!=null && profiloSignalHubSeedSizeItemValue.getValue()!=null) {
  3071.                 List<Integer> seedSizes = ModIProperties.getInstance().getSignalHubSeedSize();
  3072.                 seedSize = profiloSignalHubSeedSizeItemValue.getValue().intValue();
  3073.                
  3074.                 if (!seedSizes.contains(seedSize)) {
  3075.                     throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_SIZE_ERROR_WRONG);
  3076.                 }
  3077.             }
  3078.            
  3079.         }
  3080.     }
  3081.    
  3082.     private static void validatePdndInfoSignalHubLifeTime(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3083.         AbstractConsoleItem<?> profiloSignalHubSeedLifeTimeItem =  
  3084.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3085.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID
  3086.                         );
  3087.         if(profiloSignalHubSeedLifeTimeItem!=null) {
  3088.            
  3089.             NumberProperty profiloSignalHubSeedLifeTimeItemValue = (NumberProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_SEED_LIFETIME_ID);
  3090.             if(profiloSignalHubSeedLifeTimeItemValue!=null && profiloSignalHubSeedLifeTimeItemValue.getValue()!=null) {
  3091.                 try {
  3092.                     long i = (profiloSignalHubSeedLifeTimeItemValue.getValue());
  3093.                     if(i<=0) {
  3094.                         throw new ProtocolException("deve essere fornito un numero intero maggiore di 0");
  3095.                     }
  3096.                 }catch(Exception e) {
  3097.                     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");
  3098.                 }
  3099.             }
  3100.         }
  3101.     }
  3102.    
  3103.    
  3104.     private static void validatePdndInfoSignalHubPublisher(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, IDServizio idServizio, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties) throws ProtocolException {
  3105.        
  3106.         boolean publisherSAundefined =  validatePdndIfnoSignalHubPublisherSA(registryReader, configIntegrationReader, idServizio, consoleConfiguration, properties);
  3107.        
  3108.         boolean publisherRoleUndefined = validatePdndIfnoSignalHubPublisherRole(registryReader, consoleConfiguration, properties);
  3109.        
  3110.         if(publisherSAundefined && publisherRoleUndefined) {
  3111.             throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ERROR_UNDEFINED);
  3112.         }
  3113.     }
  3114.    
  3115.     private static boolean validatePdndIfnoSignalHubPublisherSA(IRegistryReader registryReader, IConfigIntegrationReader configIntegrationReader, IDServizio idServizio, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties)  throws ProtocolException {
  3116.         AbstractConsoleItem<?> profiloSignalHubSAItem = ProtocolPropertiesUtils.getAbstractConsoleItem(
  3117.                 consoleConfiguration.getConsoleItem(),
  3118.                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID);
  3119.         StringProperty profiloSignalHubSAItemValue = null;
  3120.         String profiloSignalHubSA = null;
  3121.         if (profiloSignalHubSAItem != null) {
  3122.             profiloSignalHubSAItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties,
  3123.                     ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_ID);
  3124.             if (profiloSignalHubSAItemValue != null &&
  3125.                     profiloSignalHubSAItemValue.getValue() != null &&
  3126.                     !"".equals(profiloSignalHubSAItemValue.getValue()) &&
  3127.                     !ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubSAItemValue.getValue())) {
  3128.                 profiloSignalHubSA = profiloSignalHubSAItemValue.getValue();

  3129.                 try {
  3130.                     String finalSAName = profiloSignalHubSA;
  3131.                     List<IDServizioApplicativo> idSAs = getSignalHubServiziApplicativi(registryReader,
  3132.                             configIntegrationReader, idServizio);
  3133.                     long matched = idSAs.stream().filter(id -> id.getNome().equals(finalSAName)).count();
  3134.                     if (matched < 1) {
  3135.                         throw new ProtocolException(
  3136.                                 ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_UNDEFINED);
  3137.                     }
  3138.                 } catch (RegistryNotFound | RegistryException | DriverRegistroServiziException e) {
  3139.                     throw new ProtocolException(
  3140.                             ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_SA_UNDEFINED, e);
  3141.                 }

  3142.             }
  3143.         }
  3144.        
  3145.         return profiloSignalHubSA==null
  3146.                 || "".equals(profiloSignalHubSA)
  3147.                 || ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubSA);
  3148.     }
  3149.    
  3150.     private static boolean validatePdndIfnoSignalHubPublisherRole(IRegistryReader registryReader, ConsoleConfiguration consoleConfiguration, ProtocolProperties properties)  throws ProtocolException {
  3151.         AbstractConsoleItem<?> profiloSignalHubRoleItem =  
  3152.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(),
  3153.                         ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID
  3154.                         );
  3155.         StringProperty profiloSignalHubRoleItemValue = null;
  3156.         String profiloSignalHubRole = null;
  3157.         if(profiloSignalHubRoleItem!=null) {
  3158.             profiloSignalHubRoleItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_ID);
  3159.             if(profiloSignalHubRoleItemValue!=null &&
  3160.                     profiloSignalHubRoleItemValue.getValue()!=null &&
  3161.                     !"".equals(profiloSignalHubRoleItemValue.getValue()) &&
  3162.                     !ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubRoleItemValue.getValue())) {
  3163.                 profiloSignalHubRole = profiloSignalHubRoleItemValue.getValue();
  3164.                
  3165.                 String finalRole = profiloSignalHubRole;
  3166.                 List<IDRuolo> roles = getSignalHubRuoli(registryReader, logger);
  3167.                 long matched = roles.stream().filter(r -> r.getNome().equals(finalRole)).count();
  3168.                 if (matched == 0) {
  3169.                     throw new ProtocolException(ModIConsoleCostanti.MODIPA_API_IMPL_INFO_SIGNAL_HUB_PUBLISHER_ROLE_UNDEFINED);
  3170.                 }
  3171.             }
  3172.         }
  3173.        
  3174.         return profiloSignalHubRole==null
  3175.                 || "".equals(profiloSignalHubRole)
  3176.                 || ModIConsoleCostanti.MODIPA_VALUE_UNDEFINED.equals(profiloSignalHubRole);
  3177.     }
  3178.    
  3179.     static void addSignaHubFruizioneConfig(ModIProperties modiProperties,
  3180.             ConsoleConfiguration configuration, boolean rest) throws ProtocolException {
  3181.        
  3182.        
  3183.         TitleConsoleItem titolo = (TitleConsoleItem) ProtocolPropertiesFactory.newTitleItem(
  3184.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_ID,
  3185.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_LABEL);
  3186.         configuration.addConsoleItem(titolo );
  3187.        
  3188.         ModISignalHubConfig c = modiProperties.getSignalHubConfig();
  3189.         if(c!=null && c.getClaims()!=null && !c.getClaims().isEmpty()) {
  3190.             for (ModISignalHubParamConfig modISignalHubParamConfig : c.getClaims()) {
  3191.                 addSignaHubFruizioneConfig(configuration, modISignalHubParamConfig, rest);
  3192.             }
  3193.         }
  3194.        
  3195.     }
  3196.    
  3197.     private static String addSignaHubFruizioneConfig(ConsoleConfiguration configuration, ModISignalHubParamConfig paramConfig, boolean rest) throws ProtocolException {
  3198.        
  3199.         String modeId = ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_ID_PREFIX+paramConfig.getNome();
  3200.        
  3201.         StringConsoleItem modeItem = (StringConsoleItem)
  3202.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  3203.                 ConsoleItemType.SELECT,
  3204.                 modeId,
  3205.                 paramConfig.getLabel());
  3206.         modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_LABEL_DEFAULT,
  3207.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT);
  3208.         modeItem.addLabelValue(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_LABEL_RIDEFINISCI,
  3209.                 ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI);
  3210.         modeItem.setDefaultValue(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_DEFAULT_VALUE);
  3211.         modeItem.setReloadOnChange(true, true);
  3212.         configuration.addConsoleItem(modeItem);
  3213.        
  3214.         StringConsoleItem ridefineItem = (StringConsoleItem)
  3215.                 ProtocolPropertiesFactory.newConsoleItem(ConsoleItemValueType.STRING,
  3216.                 ConsoleItemType.TEXT_AREA,
  3217.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_VALUE_ID_PREFIX+paramConfig.getNome(),
  3218.                 ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_VALUE_LABEL);
  3219.         ridefineItem.setRequired(true);
  3220.         ridefineItem.setRows(2);
  3221.         ridefineItem.setInfo(buildConsoleItemInfoCorniceSicurezza(paramConfig.getLabel(), rest));
  3222.         if(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_DEFAULT_VALUE.equals(ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_DEFAULT)) {
  3223.             ridefineItem.setType(ConsoleItemType.HIDDEN);
  3224.         }
  3225.         configuration.addConsoleItem(ridefineItem);
  3226.        
  3227.         return modeId;
  3228.     }
  3229.    
  3230.     static void updateSignaHubFruizioneConfig(ModIProperties modiProperties,
  3231.             ConsoleConfiguration configuration, ProtocolProperties properties) throws ProtocolException {
  3232.        
  3233.         ModISignalHubConfig c = modiProperties.getSignalHubConfig();
  3234.         if(c!=null && c.getClaims()!=null && !c.getClaims().isEmpty()) {
  3235.             for (ModISignalHubParamConfig modISignalHubParamConfig : c.getClaims()) {
  3236.                 updateSignaHubFruizioneConfig(configuration, properties, modISignalHubParamConfig);
  3237.             }
  3238.         }
  3239.        
  3240.     }
  3241.    
  3242.     private static void updateSignaHubFruizioneConfig(ConsoleConfiguration consoleConfiguration, ProtocolProperties properties, ModISignalHubParamConfig paramConfig) throws ProtocolException {
  3243.        
  3244.         String modeId = ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_MODE_ID_PREFIX+paramConfig.getNome();
  3245.        
  3246.         boolean ridefinisciItem = false;
  3247.         StringProperty selectSchemaModeItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties,
  3248.                 modeId);
  3249.         if(selectSchemaModeItemValue==null) {
  3250.             ridefinisciItem = false;    
  3251.         }
  3252.         else {
  3253.             ridefinisciItem = ModIConsoleCostanti.MODIPA_PROFILO_MODE_VALUE_RIDEFINISCI.equals(selectSchemaModeItemValue.getValue());
  3254.         }
  3255.    
  3256.         AbstractConsoleItem<?> modeItem =  
  3257.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), modeId);
  3258.         if(ridefinisciItem) {
  3259.             modeItem.setInfo(null);
  3260.         }
  3261.         else {
  3262.             modeItem.setInfo(new ConsoleItemInfo(paramConfig.getLabel()));
  3263.             modeItem.getInfo().setHeaderBody(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_MODE_DEFAULT_INFO_INTESTAZIONE.
  3264.                     replace(ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_MODE_DEFAULT_INFO_INTESTAZIONE_PARAM, paramConfig.getNome()));
  3265.             modeItem.getInfo().setListBody(new ArrayList<>());
  3266.             modeItem.getInfo().getListBody().addAll(paramConfig.getRulesInfo());
  3267.         }
  3268.        
  3269.         String id = ModIConsoleCostanti.MODIPA_API_IMPL_PUSH_SIGNAL_HUB_PARAM_VALUE_ID_PREFIX+paramConfig.getNome();
  3270.         AbstractConsoleItem<?> valueItem =  
  3271.                 ProtocolPropertiesUtils.getAbstractConsoleItem(consoleConfiguration.getConsoleItem(), id);
  3272.         if(ridefinisciItem) {
  3273.             valueItem.setType(ConsoleItemType.TEXT_AREA);
  3274.         }
  3275.         else {
  3276.             valueItem.setType(ConsoleItemType.HIDDEN);
  3277.             StringProperty selectItemValue = (StringProperty) ProtocolPropertiesUtils.getAbstractPropertyById(properties, id);
  3278.             if(selectItemValue!=null) {
  3279.                 selectItemValue.setValue(null);
  3280.             }
  3281.         }
  3282.        
  3283.     }
  3284. }
  3285.