AccordiServizioParteSpecificaFruitoriPorteDelegateAdd.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */


  20. package org.openspcoop2.web.ctrlstat.servlet.aps;

  21. import java.util.ArrayList;
  22. import java.util.Arrays;
  23. import java.util.List;
  24. import java.util.Map;
  25. import java.util.Properties;

  26. import javax.net.ssl.KeyManagerFactory;
  27. import javax.net.ssl.TrustManagerFactory;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import javax.servlet.http.HttpSession;

  31. import org.apache.commons.lang.StringUtils;
  32. import org.apache.struts.action.Action;
  33. import org.apache.struts.action.ActionForm;
  34. import org.apache.struts.action.ActionForward;
  35. import org.apache.struts.action.ActionMapping;
  36. import org.openspcoop2.core.commons.Liste;
  37. import org.openspcoop2.core.config.GenericProperties;
  38. import org.openspcoop2.core.config.constants.CredenzialeTipo;
  39. import org.openspcoop2.core.config.constants.PortaApplicativaAzioneIdentificazione;
  40. import org.openspcoop2.core.config.constants.StatoFunzionalita;
  41. import org.openspcoop2.core.config.constants.TipoAutenticazione;
  42. import org.openspcoop2.core.config.constants.TipoAutenticazionePrincipal;
  43. import org.openspcoop2.core.config.constants.TipoAutorizzazione;
  44. import org.openspcoop2.core.config.driver.db.IDServizioApplicativoDB;
  45. import org.openspcoop2.core.constants.CostantiConnettori;
  46. import org.openspcoop2.core.constants.TipiConnettore;
  47. import org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale;
  48. import org.openspcoop2.core.id.IDAccordo;
  49. import org.openspcoop2.core.id.IDServizio;
  50. import org.openspcoop2.core.id.IDSoggetto;
  51. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  52. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  53. import org.openspcoop2.core.registry.Connettore;
  54. import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
  55. import org.openspcoop2.core.registry.driver.IDAccordoFactory;
  56. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  57. import org.openspcoop2.message.constants.ServiceBinding;
  58. import org.openspcoop2.utils.BooleanNullable;
  59. import org.openspcoop2.web.ctrlstat.core.AutorizzazioneUtilities;
  60. import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
  61. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  62. import org.openspcoop2.web.ctrlstat.costanti.ConnettoreServletType;
  63. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  64. import org.openspcoop2.web.ctrlstat.plugins.ExtendedConnettore;
  65. import org.openspcoop2.web.ctrlstat.plugins.servlet.ServletExtendedConnettoreUtils;
  66. import org.openspcoop2.web.ctrlstat.servlet.ApiKeyState;
  67. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  68. import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCore;
  69. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
  70. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCostanti;
  71. import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoreStatusParams;
  72. import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriCostanti;
  73. import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriHelper;
  74. import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCore;
  75. import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCostanti;
  76. import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateHelper;
  77. import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCore;
  78. import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCostanti;
  79. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
  80. import org.openspcoop2.web.lib.mvc.BinaryParameter;
  81. import org.openspcoop2.web.lib.mvc.Costanti;
  82. import org.openspcoop2.web.lib.mvc.DataElement;
  83. import org.openspcoop2.web.lib.mvc.ForwardParams;
  84. import org.openspcoop2.web.lib.mvc.GeneralData;
  85. import org.openspcoop2.web.lib.mvc.PageData;
  86. import org.openspcoop2.web.lib.mvc.Parameter;
  87. import org.openspcoop2.web.lib.mvc.ServletUtils;
  88. import org.openspcoop2.web.lib.mvc.TipoOperazione;

  89. /**
  90.  * AccordiServizioParteSpecificaPorteDelegateAdd
  91.  *
  92.  * @author Andrea Poli (apoli@link.it)
  93.  * @author Giuliano Pintori (pintori@link.it)
  94.  * @author $Author$
  95.  * @version $Rev$, $Date$
  96.  *
  97.  */
  98. public final class AccordiServizioParteSpecificaFruitoriPorteDelegateAdd extends Action {

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

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

  102.         // Inizializzo PageData
  103.         PageData pd = new PageData();

  104.         GeneralHelper generalHelper = new GeneralHelper(session);

  105.         // Inizializzo GeneralData
  106.         GeneralData gd = generalHelper.initGeneralData(request);
  107.        
  108.         String userLogin = ServletUtils.getUserLoginFromSession(session);

  109.         // prelevo il flag che mi dice da quale pagina ho acceduto la sezione delle porte delegate
  110.         Integer parentPD = ServletUtils.getIntegerAttributeFromSession(PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT, session, request);
  111.         if(parentPD == null) parentPD = PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_NONE;

  112.         try {
  113.                        
  114.             AccordiServizioParteSpecificaHelper apsHelper = new AccordiServizioParteSpecificaHelper(request, pd, session);
  115.             String idAsps = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ID);
  116.             String idFruizione = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_MY_ID);
  117.             Long idFru = Long.parseLong(idFruizione);
  118.            
  119.             String idSoggFruitoreDelServizio = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ID_SOGGETTO);
  120.             @SuppressWarnings("unused")
  121.             Long idSoggFru = Long.parseLong(idSoggFruitoreDelServizio);
  122.            
  123.             String [] azioni = apsHelper.getParameterValues(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_AZIONI);
  124.            
  125.             String nome = apsHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_NOME);
  126.             String nomeGruppo = apsHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_NOME_GRUPPO);
  127.        
  128.             String modeCreazione = apsHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_MODE_CREAZIONE);
  129.             String modeCreazioneConnettore = apsHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_MODE_CREAZIONE_CONNETTORE);
  130.             String identificazione = apsHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_IDENTIFICAZIONE);
  131.             String mappingPD = apsHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_MAPPING);

  132.             String controlloAccessiStato = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_CONTROLLO_ACCESSI_STATO);
  133.            
  134.             String fruizioneServizioApplicativo = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_FRUIZIONE_NOME_SA);
  135.             String fruizioneRuolo = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_NOME_RUOLO);
  136.             String fruizioneAutenticazione = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTENTICAZIONE);
  137.             String fruizioneAutenticazioneOpzionale = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTENTICAZIONE_OPZIONALE);
  138.             String fruizioneAutenticazionePrincipalTipo = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTENTICAZIONE_PRINCIPAL_TIPO);
  139.             TipoAutenticazionePrincipal fruizioneAutenticazionePrincipal = TipoAutenticazionePrincipal.toEnumConstant(fruizioneAutenticazionePrincipalTipo, false);
  140.             List<String> fruizioneAutenticazioneParametroList = apsHelper.convertFromDataElementValue_parametroAutenticazioneList(fruizioneAutenticazione, fruizioneAutenticazionePrincipal);
  141.            
  142.             String fruizioneAutorizzazione = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTORIZZAZIONE);
  143.             String fruizioneAutorizzazioneAutenticati = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTORIZZAZIONE_AUTENTICAZIONE);
  144.             String fruizioneAutorizzazioneRuoli = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTORIZZAZIONE_RUOLI);
  145.             String fruizioneAutorizzazioneRuoliTipologia = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTORIZZAZIONE_RUOLO_TIPOLOGIA);
  146.             String fruizioneAutorizzazioneRuoliMatch = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_AUTORIZZAZIONE_RUOLO_MATCH);

  147.             String nomeSA = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_NOME_SA);
  148.            
  149.             String gestioneToken = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN);
  150.             String gestioneTokenPolicy = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN_POLICY);
  151.             String gestioneTokenOpzionale = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN_OPZIONALE);
  152.             String gestioneTokenValidazioneInput = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN_VALIDAZIONE_INPUT);
  153.             String gestioneTokenIntrospection = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN_INTROSPECTION);
  154.             String gestioneTokenUserInfo = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN_USERINFO);
  155.             String gestioneTokenTokenForward = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_GESTIONE_TOKEN_TOKEN_FORWARD);
  156.            
  157.             String autenticazioneTokenIssuer = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_ISSUER);
  158.             String autenticazioneTokenClientId = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_CLIENT_ID);
  159.             String autenticazioneTokenSubject = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_SUBJECT);
  160.             String autenticazioneTokenUsername = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_USERNAME);
  161.             String autenticazioneTokenEMail = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTENTICAZIONE_TOKEN_MAIL);
  162.            
  163.             String autorizzazioneAutenticatiToken = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTORIZZAZIONE_AUTENTICAZIONE_TOKEN);
  164.             String autorizzazioneRuoliToken = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTORIZZAZIONE_RUOLI_TOKEN);
  165.             String autorizzazioneRuoliTipologiaToken = apsHelper.getParameter(CostantiControlStation.PARAMETRO_RUOLO_TIPOLOGIA_TOKEN);
  166.             String autorizzazioneRuoliMatchToken = apsHelper.getParameter(CostantiControlStation.PARAMETRO_RUOLO_MATCH_TOKEN);
  167.            
  168.             String autorizzazioneToken = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTORIZZAZIONE_TOKEN);
  169.             String autorizzazioneTokenOptions = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTORIZZAZIONE_TOKEN_OPTIONS);
  170.             String autorizzazioneScope = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_AUTORIZZAZIONE_SCOPE);
  171.             String autorizzazioneScopeMatch = apsHelper.getParameter(CostantiControlStation.PARAMETRO_SCOPE_MATCH);
  172.             String scope = apsHelper.getParameter(CostantiControlStation.PARAMETRO_SCOPE);
  173.            
  174.             BinaryParameter allegatoXacmlPolicy = apsHelper.getBinaryParameter(CostantiControlStation.PARAMETRO_DOCUMENTO_SICUREZZA_XACML_POLICY);
  175.            
  176.             String identificazioneAttributiStato = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_ATTRIBUTI_STATO);
  177.             String [] attributeAuthoritySelezionate = apsHelper.getParameterValues(CostantiControlStation.PARAMETRO_PORTE_ATTRIBUTI_AUTHORITY);
  178.             String attributeAuthorityAttributi = apsHelper.getParameter(CostantiControlStation.PARAMETRO_PORTE_ATTRIBUTI_AUTHORITY_ATTRIBUTI);
  179.            
  180.             Properties parametersPOST = null;
  181.            
  182.             String endpointtype = apsHelper.readEndPointType();
  183.             String tipoconn = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TIPO_PERSONALIZZATO );
  184.             String autenticazioneHttp = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_ENDPOINT_TYPE_ENABLE_HTTP);

  185.             String connettoreDebug = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_DEBUG);

  186.             // token policy
  187.             String autenticazioneTokenS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TOKEN_POLICY_STATO);
  188.             boolean autenticazioneToken = ServletUtils.isCheckBoxEnabled(autenticazioneTokenS);
  189.             String tokenPolicy = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TOKEN_POLICY);
  190.            
  191.             // proxy
  192.             String proxyEnabled = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_ENABLED);
  193.             String proxyHostname = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_HOSTNAME);
  194.             String proxyPort = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_PORT);
  195.             String proxyUsername = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_USERNAME);
  196.             String proxyPassword = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_PASSWORD);

  197.             // tempi risposta
  198.             String tempiRispostaEnabled = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_REDEFINE);
  199.             String tempiRispostaConnectionTimeout = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_CONNECTION_TIMEOUT);
  200.             String tempiRispostaReadTimeout = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_READ_TIMEOUT);
  201.             String tempiRispostaTempoMedioRisposta = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_TEMPO_MEDIO_RISPOSTA);
  202.            
  203.             // opzioni avanzate
  204.             String transferMode = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_TRANSFER_MODE);
  205.             String transferModeChunkSize = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_TRANSFER_CHUNK_SIZE);
  206.             String redirectMode = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_REDIRECT_MODE);
  207.             String redirectMaxHop = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_REDIRECT_MAX_HOP);
  208.             String opzioniAvanzate = ConnettoriHelper.getOpzioniAvanzate(apsHelper, transferMode, redirectMode);

  209.             String user= null;
  210.             String password =null;
  211.            
  212.             // http
  213.             String url = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_URL  );
  214.             if(TipiConnettore.HTTP.toString().equals(endpointtype)){
  215.                 user = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_USERNAME);
  216.                 password = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_PASSWORD);
  217.             }

  218.             // api key
  219.             String autenticazioneApiKey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_ENDPOINT_TYPE_ENABLE_API_KEY);
  220.             String apiKeyHeader = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_HEADER);
  221.             if(apiKeyHeader==null || StringUtils.isEmpty(apiKeyHeader)) {
  222.                 apiKeyHeader = CostantiConnettori.DEFAULT_HEADER_API_KEY;
  223.             }
  224.             String apiKeyValue = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_VALUE);
  225.             String appIdHeader = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_APP_ID_HEADER);
  226.             if(appIdHeader==null || StringUtils.isEmpty(appIdHeader)) {
  227.                 appIdHeader = CostantiConnettori.DEFAULT_HEADER_APP_ID;
  228.             }
  229.             String appIdValue = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_APP_ID_VALUE);
  230.             String useOAS3NamesTmp = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_NOMI_OAS);
  231.             boolean useOAS3Names=true;
  232.             if(useOAS3NamesTmp!=null && StringUtils.isNotEmpty(useOAS3NamesTmp)) {
  233.                 useOAS3Names = ServletUtils.isCheckBoxEnabled(useOAS3NamesTmp);
  234.             }
  235.             else {
  236.                 useOAS3Names = apsHelper.isAutenticazioneApiKeyUseOAS3Names(apiKeyHeader, appIdHeader);
  237.             }
  238.             String useAppIdTmp = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_USE_APP_ID);
  239.             boolean useAppId=false;
  240.             if(useAppIdTmp!=null && StringUtils.isNotEmpty(useAppIdTmp)) {
  241.                 useAppId = ServletUtils.isCheckBoxEnabled(useAppIdTmp);
  242.             }
  243.             else {
  244.                 useAppId = apsHelper.isAutenticazioneApiKeyUseAppId(appIdValue);
  245.             }
  246.            
  247.             // jms
  248.             String nomeCodaJms = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_NOME_CODA);
  249.             String tipoJms = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_TIPO_CODA);
  250.             String initcont = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_INIT_CTX);
  251.             String urlpgk = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_URL_PKG);
  252.             String provurl = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_PROVIDER_URL);
  253.             String connfact = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_CONNECTION_FACTORY);
  254.             String tipoSendas = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_TIPO_OGGETTO_JMS);
  255.             if(TipiConnettore.JMS.toString().equals(endpointtype)){
  256.                 user = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_USERNAME);
  257.                 password = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_PASSWORD);
  258.             }

  259.             // https
  260.             String httpsurl = url;
  261.             String httpstipologia = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_SSL_TYPE );
  262.             String httpshostverifyS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_HOST_VERIFY);
  263.             String httpsTrustVerifyCertS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS );
  264.             boolean httpsTrustVerifyCert = ServletUtils.isCheckBoxEnabled(httpsTrustVerifyCertS);
  265.             String httpspath = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_LOCATION );
  266.             String httpstipo = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_TYPE);
  267.             String httpspwd = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_PASSWORD);
  268.             String httpsalgoritmo = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_MANAGEMENT_ALGORITM);
  269.             String httpsstatoS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_STATO);
  270.             String httpskeystore = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEYSTORE_CLIENT_AUTH_MODE);
  271.             String httpspwdprivatekeytrust = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_PASSWORD_PRIVATE_KEY_STORE);
  272.             String httpspathkey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_LOCATION);
  273.             String httpstipokey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_TYPE);
  274.             String httpspwdkey = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_PASSWORD);
  275.             String httpspwdprivatekey = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_PASSWORD_PRIVATE_KEY_KEYSTORE);
  276.             String httpsalgoritmokey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_MANAGEMENT_ALGORITM);
  277.             String httpsKeyAlias = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_ALIAS_PRIVATE_KEY_KEYSTORE);
  278.             String httpsTrustStoreCRLs = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_CRL);
  279.             String httpsTrustStoreOCSPPolicy = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_OCSP_POLICY);
  280.             String httpsKeyStoreBYOKPolicy = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_BYOK_POLICY);
  281.             if(TipiConnettore.HTTPS.toString().equals(endpointtype)){
  282.                 user = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_USERNAME);
  283.                 password = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_PASSWORD);
  284.             }
  285.            
  286.             // file
  287.             String requestOutputFileName = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME);
  288.             String requestOutputFileNamePermissions = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME_PERMISSIONS);
  289.             String requestOutputFileNameHeaders = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME_HEADERS);
  290.             String requestOutputFileNameHeadersPermissions = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME_HEADERS_PERMISSIONS);
  291.             String requestOutputParentDirCreateIfNotExists = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_AUTO_CREATE_DIR);
  292.             String requestOutputOverwriteIfExists = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_OVERWRITE_FILE_NAME);
  293.             String responseInputMode = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_MODE);
  294.             String responseInputFileName = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_FILE_NAME);
  295.             String responseInputFileNameHeaders = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_FILE_NAME_HEADERS);
  296.             String responseInputDeleteAfterRead = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_FILE_NAME_DELETE_AFTER_READ);
  297.             String responseInputWaitTime = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_WAIT_TIME);

  298.             // stauts
  299.             ConnettoreStatusParams connettoreStatusParams = ConnettoreStatusParams.fillFrom(apsHelper);
  300.            
  301.             boolean servizioApplicativoServerEnabled = false;
  302.             String servizioApplicativoServer = null;
  303.            
  304.             boolean httpshostverify = false;
  305.             if (httpshostverifyS != null && httpshostverifyS.equals(Costanti.CHECK_BOX_ENABLED))
  306.                 httpshostverify = true;
  307.             boolean httpsstato = false;
  308.             if (httpsstatoS != null && httpsstatoS.equals(Costanti.CHECK_BOX_ENABLED))
  309.                 httpsstato = true;

  310.             Boolean isConnettoreCustomUltimaImmagineSalvata = null;
  311.            
  312.             boolean forceEnableConnettore = false;
  313.             if( (!apsHelper.isModalitaCompleta())) {
  314.                 forceEnableConnettore = true;
  315.             }

  316.             boolean postBackViaPost = true;
  317.            
  318.             Connettore conTmp = null;
  319.             List<ExtendedConnettore> listExtendedConnettore =
  320.                     ServletExtendedConnettoreUtils.getExtendedConnettore(conTmp, ConnettoreServletType.ACCORDO_SERVIZIO_PARTE_SPECIFICA_PORTA_APPLICATIVA_ADD, apsHelper,
  321.                             parametersPOST, (endpointtype==null), endpointtype); // uso endpointtype per capire se è la prima volta che entro

  322.             PorteDelegateHelper porteDelegateHelper = new PorteDelegateHelper(request, pd, session);
  323.            
  324.             // Preparo il menu
  325.             apsHelper.makeMenu();

  326.             PorteDelegateCore porteDelegateCore = new PorteDelegateCore();
  327.             SoggettiCore soggettiCore = new SoggettiCore(porteDelegateCore);
  328.             AccordiServizioParteComuneCore apcCore = new AccordiServizioParteComuneCore(porteDelegateCore);
  329.             AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(porteDelegateCore);
  330.             ServiziApplicativiCore saCore = new ServiziApplicativiCore(porteDelegateCore);
  331.             ConfigurazioneCore confCore = new ConfigurazioneCore(porteDelegateCore);
  332.             int idServizio = Integer.parseInt(idAsps);
  333.             AccordoServizioParteSpecifica asps  =apsCore.getAccordoServizioParteSpecifica(idServizio);
  334.             IDServizio idServizio2 = IDServizioFactory.getInstance().getIDServizioFromAccordo(asps);
  335.             IDSoggetto idSoggettoFruitore = new IDSoggetto();
  336.             String tipoSoggettoFruitore = null;
  337.             String nomeSoggettoFruitore = null;
  338.             if(apsCore.isRegistroServiziLocale()){
  339.                 org.openspcoop2.core.registry.Soggetto soggettoFruitore = soggettiCore.getSoggettoRegistro(Integer.parseInt(idSoggFruitoreDelServizio));
  340.                 tipoSoggettoFruitore = soggettoFruitore.getTipo();
  341.                 nomeSoggettoFruitore = soggettoFruitore.getNome();
  342.             }else{
  343.                 org.openspcoop2.core.config.Soggetto soggettoFruitore = soggettiCore.getSoggetto(Integer.parseInt(idSoggFruitoreDelServizio));
  344.                 tipoSoggettoFruitore = soggettoFruitore.getTipo();
  345.                 nomeSoggettoFruitore = soggettoFruitore.getNome();
  346.             }
  347.             idSoggettoFruitore.setTipo(tipoSoggettoFruitore);
  348.             idSoggettoFruitore.setNome(nomeSoggettoFruitore);
  349.        
  350.             AccordiServizioParteSpecificaFruitoriPorteDelegateMappingInfo mappingInfo = AccordiServizioParteSpecificaUtilities.getMappingInfo(mappingPD, idSoggettoFruitore, asps, apsCore);
  351.             MappingFruizionePortaDelegata mappingSelezionato = mappingInfo.getMappingSelezionato();
  352.             MappingFruizionePortaDelegata mappingDefault = mappingInfo.getMappingDefault();
  353.             String mappingLabel = mappingInfo.getMappingLabel();
  354.             String[] listaMappingLabels = mappingInfo.getListaMappingLabels();
  355.             String[] listaMappingValues = mappingInfo.getListaMappingValues();
  356.             List<String> azioniOccupate = mappingInfo.getAzioniOccupate();
  357.             String nomeNuovaConfigurazione = mappingInfo.getNomeNuovaConfigurazione();
  358.                        
  359.             AccordoServizioParteComuneSintetico as = null;
  360.             ServiceBinding serviceBinding = null;
  361.             IDAccordo idAccordo = null;
  362.             String protocollo = null;
  363.             String portType = null;
  364.             if (asps != null) {
  365.                 idAccordo = IDAccordoFactory.getInstance().getIDAccordoFromUri(asps.getAccordoServizioParteComune());
  366.                 as = apcCore.getAccordoServizioSintetico(idAccordo);
  367.                 serviceBinding = apcCore.toMessageServiceBinding(as.getServiceBinding());
  368.                 protocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(asps.getTipoSoggettoErogatore());
  369.                 portType = asps.getPortType();
  370.             }

  371.             boolean forceHttps = false;
  372.             boolean forceHttpsClient = false;
  373.             boolean forcePDND = false;
  374.             boolean forceOAuth = false;
  375.             if(idAccordo!=null && apsHelper.isProfiloModIPA(protocollo)) {
  376.                 forceHttps = apsHelper.forceHttpsProfiloModiPA();
  377.                
  378.                 BooleanNullable forceHttpsClientWrapper = BooleanNullable.NULL();
  379.                 BooleanNullable forcePDNDWrapper = BooleanNullable.NULL();
  380.                 BooleanNullable forceOAuthWrapper = BooleanNullable.NULL();
  381.                
  382.                 List<String> azioniList = null;
  383.                 if(azioni!=null && azioni.length>0) {
  384.                     azioniList = Arrays.asList(azioni);
  385.                 }
  386.                 apsHelper.readModIConfiguration(forceHttpsClientWrapper, forcePDNDWrapper, forceOAuthWrapper,
  387.                         idAccordo,portType,
  388.                         azioniList);
  389.                
  390.                 if(forceHttpsClientWrapper.getValue()!=null) {
  391.                     forceHttpsClient = forceHttpsClientWrapper.getValue().booleanValue();
  392.                 }
  393.                 if(forcePDNDWrapper.getValue()!=null) {
  394.                     forcePDND = forcePDNDWrapper.getValue().booleanValue();
  395.                 }
  396.                 if(forceOAuthWrapper.getValue()!=null) {
  397.                     forceOAuth = forceOAuthWrapper.getValue().booleanValue();
  398.                 }
  399.                
  400.             }
  401.            
  402.             // Prendo le azioni  disponibili
  403.             boolean addTrattinoSelezioneNonEffettuata = false;
  404.             int sogliaAzioni = addTrattinoSelezioneNonEffettuata ? 1 : 0;
  405.             Map<String,String> azioniS = porteDelegateCore.getAzioniConLabel(asps, as, addTrattinoSelezioneNonEffettuata, true, azioniOccupate);
  406.             String[] azioniDisponibiliList = null;
  407.             String[] azioniDisponibiliLabelList = null;
  408.             if(azioniS!=null && azioniS.size()>0) {
  409.                 azioniDisponibiliList = new String[azioniS.size()];
  410.                 azioniDisponibiliLabelList = new String[azioniS.size()];
  411.                 int i = 0;
  412.                 for (String string : azioniS.keySet()) {
  413.                     azioniDisponibiliList[i] = string;
  414.                     azioniDisponibiliLabelList[i] = azioniS.get(string);
  415.                     i++;
  416.                 }
  417.             }
  418.            
  419.             String postBackElementName = apsHelper.getPostBackElementName();
  420.             boolean initConnettore = false;
  421.             // Controllo se ho modificato l'azione allora ricalcolo il nome
  422.             if(postBackElementName != null &&
  423.                 postBackElementName.equalsIgnoreCase(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_MODE_CREAZIONE_CONNETTORE) &&
  424.                 // devo resettare il connettore
  425.                 ServletUtils.isCheckBoxEnabled(modeCreazioneConnettore)) {
  426.                 initConnettore = true;
  427.             }
  428.            
  429.             // ServiziApplicativi
  430.             boolean escludiSAServer = saCore.isApplicativiServerEnabled(apsHelper);
  431.             String filtroTipoSA = escludiSAServer ? ServiziApplicativiCostanti.VALUE_SERVIZI_APPLICATIVI_TIPO_CLIENT : null;
  432.            
  433.             List<String> saList = new ArrayList<>();
  434.             saList.add("-");
  435.             if(idSoggettoFruitore!=null){
  436.                 String auth = fruizioneAutenticazione;
  437.                 if(auth==null || "".equals(auth)){
  438.                     auth = apsCore.getAutenticazione_generazioneAutomaticaPorteDelegate();
  439.                 }
  440.                 CredenzialeTipo credenziale = CredenzialeTipo.toEnumConstant(auth);
  441.                 Boolean appId = null;
  442.                 if(CredenzialeTipo.APIKEY.equals(credenziale)) {
  443.                     ApiKeyState apiKeyState =  new ApiKeyState(null);
  444.                     appId = apiKeyState.appIdSelected;
  445.                 }
  446.                 boolean bothSslAndToken = false;
  447.                 String tokenPolicyNull = null;
  448.                 boolean tokenPolicyOR = false;
  449.                
  450.                 List<IDServizioApplicativoDB> oldSilList = null;
  451.                 if(apsCore.isVisioneOggettiGlobale(userLogin)){
  452.                     oldSilList = saCore.soggettiServizioApplicativoList(idSoggettoFruitore,null,
  453.                             credenziale, appId, filtroTipoSA,
  454.                             bothSslAndToken, tokenPolicyNull, tokenPolicyOR);
  455.                 }
  456.                 else {
  457.                     oldSilList = saCore.soggettiServizioApplicativoList(idSoggettoFruitore,userLogin,
  458.                             credenziale, appId, filtroTipoSA,
  459.                             bothSslAndToken, tokenPolicyNull, tokenPolicyOR);
  460.                 }
  461.                 if(oldSilList!=null && !oldSilList.isEmpty()){
  462.                     for (int i = 0; i < oldSilList.size(); i++) {
  463.                         saList.add(oldSilList.get(i).getNome());        
  464.                     }
  465.                 }
  466.             }

  467.             List<Parameter> lstParm = porteDelegateHelper.getTitoloPD(parentPD, idSoggFruitoreDelServizio, idAsps, idFruizione);

  468.             lstParm.add(ServletUtils.getParameterAggiungi());
  469.            
  470.             // Token Policy
  471.             List<GenericProperties> gestorePolicyTokenList = confCore.gestorePolicyTokenList(null, ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_TIPOLOGIA_GESTIONE_POLICY_TOKEN, null);
  472.             String [] policyLabels = new String[gestorePolicyTokenList.size() + 1];
  473.             String [] policyValues = new String[gestorePolicyTokenList.size() + 1];
  474.            
  475.             policyLabels[0] = CostantiControlStation.DEFAULT_VALUE_NON_SELEZIONATO;
  476.             policyValues[0] = CostantiControlStation.DEFAULT_VALUE_NON_SELEZIONATO;
  477.            
  478.             for (int i = 0; i < gestorePolicyTokenList.size(); i++) {
  479.             GenericProperties genericProperties = gestorePolicyTokenList.get(i);
  480.                 policyLabels[(i+1)] = genericProperties.getNome();
  481.                 policyValues[(i+1)] = genericProperties.getNome();
  482.             }

  483.             // AttributeAuthority
  484.             List<GenericProperties> attributeAuthorityList = confCore.gestorePolicyTokenList(null, ConfigurazioneCostanti.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_TIPOLOGIA_ATTRIBUTE_AUTHORITY, null);
  485.             String [] attributeAuthorityLabels = new String[attributeAuthorityList.size()];
  486.             String [] attributeAuthorityValues = new String[attributeAuthorityList.size()];
  487.             for (int i = 0; i < attributeAuthorityList.size(); i++) {
  488.                 GenericProperties genericProperties = attributeAuthorityList.get(i);
  489.                 attributeAuthorityLabels[i] = genericProperties.getNome();
  490.                 attributeAuthorityValues[i] = genericProperties.getNome();
  491.             }

  492.             // Se idhid = null, devo visualizzare la pagina per l'inserimento
  493.             // dati
  494.             if (apsHelper.isEditModeInProgress()) {
  495.                 // setto la barra del titolo
  496.                 ServletUtils.setPageDataTitle(pd,lstParm);

  497.                 // preparo i campi
  498.                 List<DataElement> dati = new ArrayList<>();
  499.                 dati.add(ServletUtils.getDataElementForEditModeFinished());

  500.                 if(azioniDisponibiliList==null || azioniDisponibiliList.length <= sogliaAzioni) {
  501.                     pd.setMessage(porteDelegateHelper.getLabelAllAzioniConfigurate(serviceBinding), Costanti.MESSAGE_TYPE_INFO);
  502.                     pd.disableEditMode();
  503.                 }
  504.                 else {
  505.                
  506.                     if(azioni == null) {
  507.                         azioni = new String[0];
  508.                     }
  509.    
  510.                     if(nome == null) {
  511.                         // nome mapping calcolato in base al numero id configurazioni non di default presenti
  512.                         nome = nomeNuovaConfigurazione;
  513.    
  514.                         if(identificazione == null)
  515.                             identificazione = PortaApplicativaAzioneIdentificazione.DELEGATED_BY.toString();
  516.                     }
  517.                    
  518.                     if(modeCreazione == null)
  519.                         modeCreazione = PorteDelegateCostanti.DEFAULT_VALUE_PARAMETRO_PORTE_DELEGATE_MODO_CREAZIONE_EREDITA;
  520.                                        
  521.                     if(modeCreazioneConnettore == null) {
  522.                         modeCreazioneConnettore = Costanti.CHECK_BOX_DISABLED;
  523.                     }
  524.                        
  525.                     if(mappingPD==null) {
  526.                         mappingPD = listaMappingValues[listaMappingValues.length-1]; // sono ordinati all'incontrario
  527.                     }
  528.                        
  529.                     if(fruizioneServizioApplicativo==null || "".equals(fruizioneServizioApplicativo))
  530.                         fruizioneServizioApplicativo = "-";
  531.                     if(fruizioneRuolo==null || "".equals(fruizioneRuolo))
  532.                         fruizioneRuolo = "-";
  533.                     if(fruizioneAutenticazione==null || "".equals(fruizioneAutenticazione))
  534.                         fruizioneAutenticazione = apsCore.getAutenticazione_generazioneAutomaticaPorteDelegate();
  535.                     if(fruizioneAutorizzazione==null || "".equals(fruizioneAutorizzazione)){
  536.                         String tipoAutorizzazione = apsCore.getAutorizzazione_generazioneAutomaticaPorteDelegate();
  537.                         fruizioneAutorizzazione = AutorizzazioneUtilities.convertToStato(tipoAutorizzazione);
  538.                         if(TipoAutorizzazione.isAuthenticationRequired(tipoAutorizzazione))
  539.                             fruizioneAutorizzazioneAutenticati = Costanti.CHECK_BOX_ENABLED;
  540.                         if(TipoAutorizzazione.isRolesRequired(tipoAutorizzazione))
  541.                             fruizioneAutorizzazioneRuoli = Costanti.CHECK_BOX_ENABLED;
  542.                         fruizioneAutorizzazioneRuoliTipologia = AutorizzazioneUtilities.convertToRuoloTipologia(tipoAutorizzazione).getValue();
  543.                     }
  544.                     if(gestioneToken == null) {
  545.                         gestioneToken = StatoFunzionalita.DISABILITATO.getValue();
  546.                         gestioneTokenPolicy = CostantiControlStation.DEFAULT_VALUE_NON_SELEZIONATO;
  547.                         gestioneTokenOpzionale = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_OPZIONALE;
  548.                         gestioneTokenValidazioneInput = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_VALIDAZIONE_INPUT;
  549.                         gestioneTokenIntrospection = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_INTROSPECTION;
  550.                         gestioneTokenUserInfo = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_USER_INFO;
  551.                         gestioneTokenTokenForward = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_TOKEN_FORWARD;
  552.                         autenticazioneTokenIssuer = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_AUTENTICAZIONE_ISSUER;
  553.                         autenticazioneTokenClientId = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_AUTENTICAZIONE_CLIENT_ID;
  554.                         autenticazioneTokenSubject = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_AUTENTICAZIONE_SUBJECT;
  555.                         autenticazioneTokenUsername = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_AUTENTICAZIONE_USERNAME;
  556.                         autenticazioneTokenEMail = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_CONFIGURAZIONE_GESTORE_POLICY_TOKEN_AUTENTICAZIONE_EMAIL;
  557.                     }
  558.                     if(scope ==null || "".equals(scope))
  559.                         scope = "-";
  560.                     if(autorizzazioneScope ==null)
  561.                         autorizzazioneScope = "";
  562.                     if(identificazioneAttributiStato==null) {
  563.                         identificazioneAttributiStato = StatoFunzionalita.DISABILITATO.getValue();
  564.                     }
  565.                     // solo in modalita' nuova
  566.                     if(initConnettore) {
  567.                         tipoconn = "";
  568.                         url = "";
  569.                         nomeCodaJms = "";
  570.                         user = "";
  571.                         password = "";
  572.                         initcont = "";
  573.                         urlpgk = "";
  574.                         provurl = "";
  575.                         connfact = "";
  576.                         httpsurl = "";
  577.                         httpstipologia = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TYPE;
  578.                         httpshostverifyS = Costanti.CHECK_BOX_ENABLED_TRUE;
  579.                         httpshostverify = true;
  580.                         httpsTrustVerifyCert = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS;
  581.                         httpspath = "";
  582.                         httpstipo = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TIPOLOGIA_KEYSTORE_TYPE;
  583.                         httpspwd = "";
  584.                         httpsstato = false;
  585.                         httpskeystore = AccordiServizioParteSpecificaCostanti.DEFAULT_VALUE_DEFAULT;
  586.                         httpspwdprivatekeytrust = "";
  587.                         httpspathkey = "";
  588.                         httpstipokey =ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TIPOLOGIA_KEYSTORE_TYPE;
  589.                         httpspwdkey = "";
  590.                         httpspwdprivatekey = "";
  591.                        
  592.                         if(endpointtype==null) {
  593.                             if(!apsHelper.isModalitaCompleta()) {
  594.                                 endpointtype = TipiConnettore.HTTP.getNome();
  595.                             }
  596.                             else {
  597.                                 endpointtype = AccordiServizioParteSpecificaCostanti.DEFAULT_VALUE_DISABILITATO;
  598.                             }
  599.                         }
  600.                                                
  601.                         tipoSendas = ConnettoriCostanti.TIPO_SEND_AS[0];
  602.                         tipoJms = ConnettoriCostanti.TIPI_CODE_JMS[0];

  603.                         autenticazioneHttp = apsHelper.getAutenticazioneHttp(autenticazioneHttp, endpointtype, user);
  604.                        
  605.                         apiKeyHeader = null;
  606.                         apiKeyValue = null;
  607.                         appIdHeader = null;
  608.                         appIdValue = null;
  609.                                                
  610.                         tempiRispostaEnabled=null;
  611.                         ConfigurazioneCore configCore = new ConfigurazioneCore(soggettiCore);
  612.                         ConfigurazioneGenerale configGenerale = configCore.getConfigurazioneControlloTraffico();
  613.                         tempiRispostaConnectionTimeout = configGenerale.getTempiRispostaFruizione().getConnectionTimeout().intValue()+"";
  614.                         tempiRispostaReadTimeout = configGenerale.getTempiRispostaFruizione().getReadTimeout().intValue()+"";
  615.                         tempiRispostaTempoMedioRisposta = configGenerale.getTempiRispostaFruizione().getTempoMedioRisposta().intValue()+"";
  616.                            
  617.                     }
  618.                    
  619.                     // default (da inizializzare cmq)
  620.                     if (TipiConnettore.HTTPS.toString().equals(endpointtype)) {
  621.                         if(httpsalgoritmo==null || "".equals(httpsalgoritmo)){
  622.                             httpsalgoritmo = TrustManagerFactory.getDefaultAlgorithm();
  623.                         }
  624.                         if(httpsalgoritmokey==null || "".equals(httpsalgoritmokey)){
  625.                             httpsalgoritmokey = KeyManagerFactory.getDefaultAlgorithm();
  626.                         }
  627.                         if(httpstipologia==null || "".equals(httpstipologia)){
  628.                             httpstipologia = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TYPE;
  629.                         }
  630.                         if(httpshostverifyS==null || "".equals(httpshostverifyS)){
  631.                             httpshostverifyS = Costanti.CHECK_BOX_ENABLED_TRUE;
  632.                             httpshostverify = ServletUtils.isCheckBoxEnabled(httpshostverifyS);
  633.                         }
  634.                         if(httpsTrustVerifyCertS==null || "".equals(httpsTrustVerifyCertS)){
  635.                             httpsTrustVerifyCertS = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS ? Costanti.CHECK_BOX_ENABLED_TRUE : Costanti.CHECK_BOX_DISABLED;
  636.                             httpsTrustVerifyCert = ServletUtils.isCheckBoxEnabled(httpsTrustVerifyCertS);
  637.                         }
  638.                     }
  639.                    
  640.                     // Devo cmq rileggere i valori se non definiti
  641.                     if(tempiRispostaConnectionTimeout==null || "".equals(tempiRispostaConnectionTimeout)
  642.                             ||
  643.                             tempiRispostaReadTimeout==null || "".equals(tempiRispostaReadTimeout)
  644.                             ||
  645.                             tempiRispostaTempoMedioRisposta==null || "".equals(tempiRispostaTempoMedioRisposta) ){
  646.                         ConfigurazioneCore configCore = new ConfigurazioneCore(soggettiCore);
  647.                         ConfigurazioneGenerale configGenerale = configCore.getConfigurazioneControlloTraffico();
  648.                         if(tempiRispostaConnectionTimeout==null || "".equals(tempiRispostaConnectionTimeout) ) {
  649.                             tempiRispostaConnectionTimeout = configGenerale.getTempiRispostaFruizione().getConnectionTimeout().intValue()+"";
  650.                         }
  651.                         if(tempiRispostaReadTimeout==null || "".equals(tempiRispostaReadTimeout) ) {
  652.                             tempiRispostaReadTimeout = configGenerale.getTempiRispostaFruizione().getReadTimeout().intValue()+"";
  653.                         }
  654.                         if(tempiRispostaTempoMedioRisposta==null || "".equals(tempiRispostaTempoMedioRisposta) ) {
  655.                             tempiRispostaTempoMedioRisposta = configGenerale.getTempiRispostaFruizione().getTempoMedioRisposta().intValue()+"";
  656.                         }
  657.                     }
  658.                    
  659.    
  660.                     dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.ADD, idAsps, idSoggFruitoreDelServizio, null, null,
  661.                             idFruizione, tipoSoggettoFruitore, nomeSoggettoFruitore, dati);
  662.                     dati = apsHelper.addConfigurazioneFruizioneToDati(TipoOperazione.ADD, dati, nome, nomeGruppo, azioni, azioniDisponibiliList, azioniDisponibiliLabelList, idAsps, idSoggettoFruitore,
  663.                             identificazione, asps, as, serviceBinding, modeCreazione, modeCreazioneConnettore, listaMappingLabels, listaMappingValues,
  664.                             mappingPD, mappingLabel, saList, nomeSA,
  665.                             controlloAccessiStato,
  666.                             fruizioneAutenticazione, fruizioneAutenticazioneOpzionale, fruizioneAutenticazionePrincipal, fruizioneAutenticazioneParametroList,
  667.                             true, fruizioneAutorizzazione, fruizioneAutorizzazioneAutenticati,
  668.                             fruizioneAutorizzazioneRuoli, fruizioneRuolo, fruizioneAutorizzazioneRuoliTipologia, fruizioneAutorizzazioneRuoliMatch, fruizioneServizioApplicativo,
  669.                             gestioneToken, policyLabels, policyValues,
  670.                             gestioneTokenPolicy, gestioneTokenOpzionale,
  671.                             gestioneTokenValidazioneInput, gestioneTokenIntrospection, gestioneTokenUserInfo, gestioneTokenTokenForward,
  672.                             autenticazioneTokenIssuer, autenticazioneTokenClientId, autenticazioneTokenSubject, autenticazioneTokenUsername, autenticazioneTokenEMail,
  673.                             autorizzazioneToken,autorizzazioneTokenOptions,
  674.                             autorizzazioneScope,scope,autorizzazioneScopeMatch,allegatoXacmlPolicy,
  675.                             identificazioneAttributiStato, attributeAuthorityLabels, attributeAuthorityValues, attributeAuthoritySelezionate, attributeAuthorityAttributi,
  676.                             autorizzazioneAutenticatiToken,
  677.                             autorizzazioneRuoliToken, autorizzazioneRuoliTipologiaToken, autorizzazioneRuoliMatchToken);
  678.                    
  679.                     if(ServletUtils.isCheckBoxEnabled(modeCreazioneConnettore)) {
  680.                         dati = apsHelper.addEndPointToDati(dati, serviceBinding, connettoreDebug, endpointtype, autenticazioneHttp,
  681.                                 null, //(apsHelper.isModalitaCompleta() || !multitenant)?null:AccordiServizioParteSpecificaCostanti.LABEL_APS_APPLICATIVO_INTERNO_PREFIX ,
  682.                                 url, nomeCodaJms,
  683.                                 tipoJms, user,
  684.                                 password, initcont, urlpgk,
  685.                                 provurl, connfact, tipoSendas,
  686.                                 AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS_PORTE_APPLICATIVE,TipoOperazione.ADD,
  687.                                 httpsurl, httpstipologia, httpshostverify,
  688.                                 httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
  689.                                 httpsalgoritmo, httpsstato, httpskeystore,
  690.                                 httpspwdprivatekeytrust, httpspathkey,
  691.                                 httpstipokey, httpspwdkey,
  692.                                 httpspwdprivatekey, httpsalgoritmokey,
  693.                                 httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
  694.                                 tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_PORTE_APPLICATIVE_ADD, null, null,
  695.                                 null, null, null, null, null, null, true,
  696.                                 isConnettoreCustomUltimaImmagineSalvata,
  697.                                 proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
  698.                                 tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
  699.                                 opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
  700.                                 requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
  701.                                 requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
  702.                                 responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
  703.                                 autenticazioneToken, tokenPolicy, forcePDND, forceOAuth,
  704.                                 listExtendedConnettore, forceEnableConnettore,
  705.                                 protocollo, forceHttps, forceHttpsClient, false, servizioApplicativoServerEnabled,servizioApplicativoServer, null,
  706.                                 autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
  707.                                 connettoreStatusParams,
  708.                                 postBackViaPost);
  709.                     }
  710.                 }
  711.                    
  712.                 pd.setDati(dati);

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

  714.                 return ServletUtils.getStrutsForwardEditModeInProgress(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS_FRUITORI_PORTE_DELEGATE,
  715.                         ForwardParams.ADD());

  716.             }

  717.             // Controlli sui campi immessi
  718.             boolean isOk = apsHelper.configurazioneFruizioneCheckData(TipoOperazione.ADD, nome, nomeGruppo, azioni, asps, azioniOccupate,modeCreazione,null,true, mappingInfo);
  719.            
  720.             // controllo endpoint
  721.             if(isOk && ServletUtils.isCheckBoxEnabled(modeCreazioneConnettore)) {
  722.                 isOk = apsHelper.endPointCheckData(serviceBinding, protocollo, false,
  723.                         endpointtype, url, nome, tipoJms,
  724.                         user, password, initcont, urlpgk, provurl, connfact,
  725.                         tipoSendas, httpsurl, httpstipologia, httpshostverify,
  726.                         httpsTrustVerifyCert, httpspath, httpstipo, httpspwd, httpsalgoritmo, httpsstato,
  727.                         httpskeystore, httpspwdprivatekeytrust, httpspathkey,
  728.                         httpstipokey, httpspwdkey,
  729.                         httpspwdprivatekey, httpsalgoritmokey,
  730.                         httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
  731.                         tipoconn,autenticazioneHttp,
  732.                         proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
  733.                         tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
  734.                         opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
  735.                         requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
  736.                         requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
  737.                         responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
  738.                         autenticazioneToken, tokenPolicy,
  739.                         autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
  740.                         listExtendedConnettore,servizioApplicativoServerEnabled,servizioApplicativoServer);
  741.             }
  742.            
  743.             if (!isOk) {
  744.                 // setto la barra del titolo
  745.                 ServletUtils.setPageDataTitle(pd,lstParm);

  746.                 // preparo i campi
  747.                 List<DataElement> dati = new ArrayList<>();

  748.                 dati.add(ServletUtils.getDataElementForEditModeFinished());

  749.                 dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.ADD, idAsps, idSoggFruitoreDelServizio, null, null,
  750.                         idFruizione, tipoSoggettoFruitore, nomeSoggettoFruitore, dati);

  751.                 dati = apsHelper.addConfigurazioneFruizioneToDati(TipoOperazione.ADD, dati, nome, nomeGruppo, azioni, azioniDisponibiliList, azioniDisponibiliLabelList, idAsps, idSoggettoFruitore,
  752.                         identificazione, asps, as, serviceBinding, modeCreazione, modeCreazioneConnettore, listaMappingLabels, listaMappingValues,
  753.                         mappingPD, mappingLabel, saList, nomeSA,
  754.                         controlloAccessiStato,
  755.                         fruizioneAutenticazione, fruizioneAutenticazioneOpzionale, fruizioneAutenticazionePrincipal, fruizioneAutenticazioneParametroList,
  756.                         true, fruizioneAutorizzazione, fruizioneAutorizzazioneAutenticati,
  757.                         fruizioneAutorizzazioneRuoli, fruizioneRuolo, fruizioneAutorizzazioneRuoliTipologia, fruizioneAutorizzazioneRuoliMatch, fruizioneServizioApplicativo,
  758.                         gestioneToken, policyLabels, policyValues,
  759.                         gestioneTokenPolicy, gestioneTokenOpzionale,
  760.                         gestioneTokenValidazioneInput, gestioneTokenIntrospection, gestioneTokenUserInfo, gestioneTokenTokenForward,
  761.                         autenticazioneTokenIssuer, autenticazioneTokenClientId, autenticazioneTokenSubject, autenticazioneTokenUsername, autenticazioneTokenEMail,
  762.                         autorizzazioneToken,autorizzazioneTokenOptions,
  763.                         autorizzazioneScope,scope,autorizzazioneScopeMatch,allegatoXacmlPolicy,
  764.                         identificazioneAttributiStato, attributeAuthorityLabels, attributeAuthorityValues, attributeAuthoritySelezionate, attributeAuthorityAttributi,
  765.                         autorizzazioneAutenticatiToken,
  766.                         autorizzazioneRuoliToken, autorizzazioneRuoliTipologiaToken, autorizzazioneRuoliMatchToken);
  767.                
  768.                 if(ServletUtils.isCheckBoxEnabled(modeCreazioneConnettore)) {
  769.                     dati = apsHelper.addEndPointToDati(dati, serviceBinding, connettoreDebug, endpointtype, autenticazioneHttp,
  770.                             null, //(apsHelper.isModalitaCompleta() || !multitenant)?null:AccordiServizioParteSpecificaCostanti.LABEL_APS_APPLICATIVO_INTERNO_PREFIX ,
  771.                             url, nomeCodaJms,
  772.                             tipoJms, user,
  773.                             password, initcont, urlpgk,
  774.                             provurl, connfact, tipoSendas,
  775.                             AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS_PORTE_APPLICATIVE,TipoOperazione.ADD,
  776.                             httpsurl, httpstipologia, httpshostverify,
  777.                             httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
  778.                             httpsalgoritmo, httpsstato, httpskeystore,
  779.                             httpspwdprivatekeytrust, httpspathkey,
  780.                             httpstipokey, httpspwdkey,
  781.                             httpspwdprivatekey, httpsalgoritmokey,
  782.                             httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
  783.                             tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_PORTE_APPLICATIVE_ADD, null, null,
  784.                             null, null, null, null, null, null, true,
  785.                             isConnettoreCustomUltimaImmagineSalvata,
  786.                             proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
  787.                             tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
  788.                             opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
  789.                             requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
  790.                             requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
  791.                             responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
  792.                             autenticazioneToken, tokenPolicy, forcePDND, forceOAuth,
  793.                             listExtendedConnettore, forceEnableConnettore,
  794.                             protocollo, forceHttps, forceHttpsClient, false, servizioApplicativoServerEnabled,servizioApplicativoServer, null,
  795.                             autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
  796.                             connettoreStatusParams,
  797.                             postBackViaPost);
  798.                 }

  799.                 pd.setDati(dati);

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

  801.                 return ServletUtils.getStrutsForwardEditModeCheckError(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS_FRUITORI_PORTE_DELEGATE,
  802.                         ForwardParams.ADD());
  803.             }

  804.             if(PorteDelegateCostanti.DEFAULT_VALUE_PARAMETRO_PORTE_DELEGATE_MODO_CREAZIONE_NUOVA.equals(modeCreazione)
  805.                     && CostantiControlStation.VALUE_PARAMETRO_PORTE_CONTROLLO_ACCESSI_STATO_PUBBLICO.equals(controlloAccessiStato)) {
  806.                
  807.                 fruizioneAutenticazione = TipoAutenticazione.DISABILITATO.getValue();
  808.                 fruizioneAutenticazioneOpzionale = null;
  809.                 fruizioneAutenticazionePrincipal = null;
  810.                 fruizioneAutenticazioneParametroList = null;
  811.                
  812.                 fruizioneAutorizzazione = TipoAutorizzazione.DISABILITATO.getValue();
  813.                 fruizioneAutorizzazioneAutenticati = null;
  814.                 fruizioneAutorizzazioneRuoli = null;
  815.                 fruizioneAutorizzazioneRuoliTipologia = null;
  816.                 fruizioneAutorizzazioneRuoliMatch = null;
  817.                
  818.             }

  819.            
  820.             AccordiServizioParteSpecificaUtilities.addAccordoServizioParteSpecificaPorteDelegate(
  821.                     mappingDefault,
  822.                     mappingSelezionato,
  823.                     nome, nomeGruppo, azioni, modeCreazione, modeCreazioneConnettore,
  824.                     endpointtype, tipoconn, autenticazioneHttp,
  825.                     connettoreDebug,
  826.                     url,
  827.                     nomeCodaJms, tipoJms,
  828.                     initcont, urlpgk, provurl, connfact, tipoSendas,
  829.                     user, password,
  830.                     httpsurl, httpstipologia, httpshostverify,
  831.                     httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
  832.                     httpsalgoritmo, httpsstato, httpskeystore,
  833.                     httpspwdprivatekeytrust, httpspathkey,
  834.                     httpstipokey, httpspwdkey,
  835.                     httpspwdprivatekey, httpsalgoritmokey,
  836.                     httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
  837.                     proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
  838.                     tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
  839.                     opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
  840.                     requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
  841.                     requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
  842.                     responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
  843.                     autenticazioneToken, tokenPolicy,
  844.                     listExtendedConnettore,
  845.                     fruizioneAutenticazione, fruizioneAutenticazioneOpzionale, fruizioneAutenticazionePrincipal, fruizioneAutenticazioneParametroList,
  846.                     fruizioneAutorizzazione, fruizioneAutorizzazioneAutenticati, fruizioneAutorizzazioneRuoli, fruizioneAutorizzazioneRuoliTipologia, fruizioneAutorizzazioneRuoliMatch,
  847.                     fruizioneServizioApplicativo, fruizioneRuolo,
  848.                     autorizzazioneAutenticatiToken,
  849.                     autorizzazioneRuoliToken, autorizzazioneRuoliTipologiaToken, autorizzazioneRuoliMatchToken,
  850.                     autorizzazioneTokenOptions,
  851.                     autorizzazioneScope, scope, autorizzazioneScopeMatch,allegatoXacmlPolicy,
  852.                     gestioneToken,
  853.                     gestioneTokenPolicy,  gestioneTokenOpzionale,  
  854.                     gestioneTokenValidazioneInput, gestioneTokenIntrospection, gestioneTokenUserInfo, gestioneTokenTokenForward,
  855.                     autenticazioneTokenIssuer, autenticazioneTokenClientId, autenticazioneTokenSubject, autenticazioneTokenUsername, autenticazioneTokenEMail,
  856.                     idSoggettoFruitore, asps,
  857.                     userLogin,
  858.                     apsCore, apsHelper,
  859.                     identificazioneAttributiStato, attributeAuthoritySelezionate, attributeAuthorityAttributi,
  860.                     apiKeyHeader, apiKeyValue, appIdHeader, appIdValue, connettoreStatusParams);
  861.            
  862.             // Preparo la lista
  863.             ConsoleSearch ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);

  864.             int idLista = Liste.CONFIGURAZIONE_FRUIZIONE;

  865.             ricerca = porteDelegateHelper.checkSearchParameters(idLista, ricerca);

  866.             List<MappingFruizionePortaDelegata> lista = apsCore.serviziFruitoriMappingList(idFru, idSoggettoFruitore , idServizio2, ricerca);
  867.            
  868.             apsHelper.serviziFruitoriMappingList(lista, idAsps, idSoggFruitoreDelServizio, idSoggettoFruitore, idFruizione, ricerca);
  869.            
  870.             // reset posizione tab
  871.             if(!apsHelper.isModalitaCompleta())
  872.                 ServletUtils.setObjectIntoSession(request, session, "0", CostantiControlStation.PARAMETRO_ID_TAB);

  873.             ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
  874.            
  875.             ForwardParams fwP = apsHelper.isModalitaCompleta() ? ForwardParams.ADD() : AccordiServizioParteSpecificaCostanti.TIPO_OPERAZIONE_CONFIGURAZIONE;
  876.             // Forward control to the specified success URI
  877.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS_FRUITORI_PORTE_DELEGATE, fwP);

  878.         } catch (Exception e) {
  879.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
  880.                     AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS_FRUITORI_PORTE_DELEGATE,
  881.                     ForwardParams.ADD());
  882.         }  
  883.     }
  884. }