AccordiServizioParteSpecificaChange.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.web.ctrlstat.servlet.aps;
- import java.net.URLEncoder;
- import java.text.MessageFormat;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- import javax.net.ssl.KeyManagerFactory;
- import javax.net.ssl.TrustManagerFactory;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.commons.lang.StringUtils;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import org.openspcoop2.core.commons.CoreException;
- import org.openspcoop2.core.commons.Filtri;
- import org.openspcoop2.core.commons.Liste;
- import org.openspcoop2.core.config.CanaleConfigurazione;
- import org.openspcoop2.core.config.CanaliConfigurazione;
- import org.openspcoop2.core.config.constants.CostantiConfigurazione;
- import org.openspcoop2.core.config.driver.db.IDServizioApplicativoDB;
- import org.openspcoop2.core.constants.CostantiConnettori;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.constants.TipiConnettore;
- import org.openspcoop2.core.constants.TransferLengthModes;
- import org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.id.IDPortaApplicativa;
- import org.openspcoop2.core.id.IDPortaDelegata;
- import org.openspcoop2.core.id.IDServizio;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
- import org.openspcoop2.core.registry.Connettore;
- import org.openspcoop2.core.registry.Fruitore;
- import org.openspcoop2.core.registry.PortType;
- import org.openspcoop2.core.registry.ProtocolProperty;
- import org.openspcoop2.core.registry.Soggetto;
- import org.openspcoop2.core.registry.beans.AccordoServizioParteComuneSintetico;
- import org.openspcoop2.core.registry.beans.OperationSintetica;
- import org.openspcoop2.core.registry.beans.PortTypeSintetico;
- import org.openspcoop2.core.registry.constants.StatiAccordo;
- import org.openspcoop2.core.registry.constants.TipologiaServizio;
- import org.openspcoop2.core.registry.driver.IDAccordoFactory;
- import org.openspcoop2.core.registry.driver.IDServizioFactory;
- import org.openspcoop2.core.registry.driver.ValidazioneStatoPackageException;
- import org.openspcoop2.core.registry.driver.db.IDAccordoDB;
- import org.openspcoop2.message.constants.ServiceBinding;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.protocol.sdk.ProtocolException;
- import org.openspcoop2.protocol.sdk.constants.ConsoleOperationType;
- import org.openspcoop2.protocol.sdk.properties.ProtocolPropertiesUtils;
- import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
- import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
- import org.openspcoop2.web.ctrlstat.costanti.ConnettoreServletType;
- import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
- import org.openspcoop2.web.ctrlstat.plugins.ExtendedConnettore;
- import org.openspcoop2.web.ctrlstat.plugins.servlet.ServletExtendedConnettoreUtils;
- import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
- import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCore;
- import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.apc.AccordiServizioParteComuneUtilities;
- import org.openspcoop2.web.ctrlstat.servlet.aps.erogazioni.ErogazioniCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.aps.erogazioni.ErogazioniHelper;
- import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
- import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoreStatusParams;
- import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.connettori.ConnettoriHelper;
- import org.openspcoop2.web.ctrlstat.servlet.pa.PorteApplicativeCore;
- import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCore;
- import org.openspcoop2.web.ctrlstat.servlet.pdd.PddCore;
- import org.openspcoop2.web.ctrlstat.servlet.protocol_properties.ProtocolPropertiesCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCore;
- import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiCostanti;
- import org.openspcoop2.web.ctrlstat.servlet.sa.ServiziApplicativiHelper;
- import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
- import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCostanti;
- import org.openspcoop2.web.lib.mvc.BinaryParameter;
- import org.openspcoop2.web.lib.mvc.Costanti;
- import org.openspcoop2.web.lib.mvc.DataElement;
- import org.openspcoop2.web.lib.mvc.DataElementType;
- import org.openspcoop2.web.lib.mvc.ForwardParams;
- import org.openspcoop2.web.lib.mvc.GeneralData;
- import org.openspcoop2.web.lib.mvc.PageData;
- import org.openspcoop2.web.lib.mvc.Parameter;
- import org.openspcoop2.web.lib.mvc.ServletUtils;
- import org.openspcoop2.web.lib.mvc.TipoOperazione;
- import org.openspcoop2.web.lib.users.dao.PermessiUtente;
- /**
- * serviziChange
- *
- * @author Andrea Poli (apoli@link.it)
- * @author Stefano Corallo (corallo@link.it)
- * @author Sandra Giangrandi (sandra@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- *
- */
- public final class AccordiServizioParteSpecificaChange extends Action {
-
- @Override
- public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
- HttpSession session = request.getSession(true);
- // Inizializzo PageData
- PageData pd = new PageData();
- GeneralHelper generalHelper = new GeneralHelper(session);
- // Inizializzo GeneralData
- GeneralData gd = generalHelper.initGeneralData(request);
- String userLogin = ServletUtils.getUserLoginFromSession(session);
- IDAccordoFactory idAccordoFactory = IDAccordoFactory.getInstance();
-
- AccordiServizioParteSpecificaChangeStrutsBean strutsBean = new AccordiServizioParteSpecificaChangeStrutsBean();
-
- // Parametri Protocol Properties relativi al tipo di operazione e al tipo di visualizzazione
- strutsBean.consoleOperationType = ConsoleOperationType.CHANGE;
-
- // Parametri relativi al tipo operazione
- TipoOperazione tipoOp = TipoOperazione.CHANGE;
- List<ProtocolProperty> oldProtocolPropertyList = null;
- try {
-
- AccordiServizioParteSpecificaHelper apsHelper = new AccordiServizioParteSpecificaHelper(request, pd, session);
-
- String tipoProtocollo = apsHelper.getParameter(AccordiServizioParteComuneCostanti.PARAMETRO_APC_PROTOCOLLO);
-
- strutsBean.editMode = apsHelper.getParameter(Costanti.DATA_ELEMENT_EDIT_MODE_NAME);
- strutsBean.protocolPropertiesSet = apsHelper.getParameter(ProtocolPropertiesCostanti.PARAMETRO_PP_SET);
- String id = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ID);
- String nomeservizio = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_NOME_SERVIZIO);
- String tiposervizio = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_SERVIZIO);
- String accordo = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ACCORDO);
- String servcorr = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_SERVIZIO_CORRELATO);
-
- String endpointtype = apsHelper.readEndPointType();
- String tipoconn = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TIPO_PERSONALIZZATO );
- String autenticazioneHttp = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_ENDPOINT_TYPE_ENABLE_HTTP);
- String user = null;
- String password = null;
-
- String connettoreDebug = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_DEBUG);
-
- String tipoSoggettoFruitore = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_SOGGETTO_FRUITORE);
- String nomeSoggettoFruitore = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_NOME_SOGGETTO_FRUITORE);
- IDSoggetto idSoggettoFruitore = null;
- if(tipoSoggettoFruitore!=null && !"".equals(tipoSoggettoFruitore) &&
- nomeSoggettoFruitore!=null && !"".equals(nomeSoggettoFruitore)) {
- idSoggettoFruitore = new IDSoggetto(tipoSoggettoFruitore, nomeSoggettoFruitore);
- }
-
- // token policy
- String autenticazioneTokenS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TOKEN_POLICY_STATO);
- boolean autenticazioneToken = ServletUtils.isCheckBoxEnabled(autenticazioneTokenS);
- String tokenPolicy = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TOKEN_POLICY);
- boolean forcePDND = false;
- boolean forceOAuth = false;
-
- // proxy
- String proxyEnabled = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_ENABLED);
- String proxyHostname = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_HOSTNAME);
- String proxyPort = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_PORT);
- String proxyUsername = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_USERNAME);
- String proxyPassword = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROXY_PASSWORD);
-
- // tempi risposta
- String tempiRispostaEnabled = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_REDEFINE);
- String tempiRispostaConnectionTimeout = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_CONNECTION_TIMEOUT);
- String tempiRispostaReadTimeout = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_READ_TIMEOUT);
- String tempiRispostaTempoMedioRisposta = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_TEMPI_RISPOSTA_TEMPO_MEDIO_RISPOSTA);
-
- // opzioni avanzate
- String transferMode = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_TRANSFER_MODE);
- String transferModeChunkSize = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_TRANSFER_CHUNK_SIZE);
- String redirectMode = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_REDIRECT_MODE);
- String redirectMaxHop = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_OPZIONI_AVANZATE_REDIRECT_MAX_HOP);
- String opzioniAvanzate = ConnettoriHelper.getOpzioniAvanzate(apsHelper, transferMode, redirectMode);
-
- // http
- String url = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_URL );
- if(TipiConnettore.HTTP.toString().equals(endpointtype)){
- user = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_USERNAME);
- password = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_PASSWORD);
- }
-
- // api key
- String autenticazioneApiKey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_ENDPOINT_TYPE_ENABLE_API_KEY);
- String apiKeyHeader = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_HEADER);
- if(apiKeyHeader==null || StringUtils.isEmpty(apiKeyHeader)) {
- apiKeyHeader = CostantiConnettori.DEFAULT_HEADER_API_KEY;
- }
- String apiKeyValue = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_VALUE);
- String appIdHeader = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_APP_ID_HEADER);
- if(appIdHeader==null || StringUtils.isEmpty(appIdHeader)) {
- appIdHeader = CostantiConnettori.DEFAULT_HEADER_APP_ID;
- }
- String appIdValue = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_APP_ID_VALUE);
- String useOAS3NamesTmp = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_NOMI_OAS);
- boolean useOAS3Names=true;
- if(useOAS3NamesTmp!=null && StringUtils.isNotEmpty(useOAS3NamesTmp)) {
- useOAS3Names = ServletUtils.isCheckBoxEnabled(useOAS3NamesTmp);
- }
- else {
- useOAS3Names = apsHelper.isAutenticazioneApiKeyUseOAS3Names(apiKeyHeader, appIdHeader);
- }
- String useAppIdTmp = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_API_KEY_USE_APP_ID);
- boolean useAppId=false;
- if(useAppIdTmp!=null && StringUtils.isNotEmpty(useAppIdTmp)) {
- useAppId = ServletUtils.isCheckBoxEnabled(useAppIdTmp);
- }
- else {
- useAppId = apsHelper.isAutenticazioneApiKeyUseAppId(appIdValue);
- }
-
- // jms
- String nome = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_NOME_CODA);
- String tipo = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_TIPO_CODA);
- String initcont = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_INIT_CTX);
- String urlpgk = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_URL_PKG);
- String provurl = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_PROVIDER_URL);
- String connfact = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_CONNECTION_FACTORY);
- String sendas = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_TIPO_OGGETTO_JMS);
- if(TipiConnettore.JMS.toString().equals(endpointtype)){
- user = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_USERNAME);
- password = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_JMS_PASSWORD);
- }
-
- // https
- String httpsurl = url;
- String httpstipologia = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_SSL_TYPE );
- String httpshostverifyS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_HOST_VERIFY);
- boolean httpshostverify = false;
- if (httpshostverifyS != null && httpshostverifyS.equals(Costanti.CHECK_BOX_ENABLED))
- httpshostverify = true;
- String httpsTrustVerifyCertS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS );
- boolean httpsTrustVerifyCert = ServletUtils.isCheckBoxEnabled(httpsTrustVerifyCertS);
- String httpspath = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_LOCATION );
- String httpstipo = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_TYPE);
- String httpspwd = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_PASSWORD);
- String httpsalgoritmo = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_MANAGEMENT_ALGORITM);
- String httpsstatoS = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_STATO);
- boolean httpsstato = false;
- if (httpsstatoS != null && httpsstatoS.equals(Costanti.CHECK_BOX_ENABLED))
- httpsstato = true;
- String httpskeystore = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEYSTORE_CLIENT_AUTH_MODE);
- String httpspwdprivatekeytrust = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_PASSWORD_PRIVATE_KEY_STORE);
- String httpspathkey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_LOCATION);
- String httpstipokey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_TYPE);
- String httpspwdkey = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_PASSWORD);
- String httpspwdprivatekey = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_PASSWORD_PRIVATE_KEY_KEYSTORE);
- String httpsalgoritmokey = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_MANAGEMENT_ALGORITM);
- String httpsKeyAlias = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_ALIAS_PRIVATE_KEY_KEYSTORE);
- String httpsTrustStoreCRLs = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_CRL);
- String httpsTrustStoreOCSPPolicy = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_TRUST_STORE_OCSP_POLICY);
- String httpsKeyStoreBYOKPolicy = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_KEY_STORE_BYOK_POLICY);
- if(TipiConnettore.HTTPS.toString().equals(endpointtype)){
- user = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_USERNAME);
- password = apsHelper.getLockedParameter(ConnettoriCostanti.PARAMETRO_INVOCAZIONE_CREDENZIALI_AUTENTICAZIONE_PASSWORD);
- }
-
- // file
- String requestOutputFileName = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME);
- String requestOutputFileNamePermissions = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME_PERMISSIONS);
- String requestOutputFileNameHeaders = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME_HEADERS);
- String requestOutputFileNameHeadersPermissions = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_FILE_NAME_HEADERS_PERMISSIONS);
- String requestOutputParentDirCreateIfNotExists = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_AUTO_CREATE_DIR);
- String requestOutputOverwriteIfExists = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_REQUEST_OUTPUT_OVERWRITE_FILE_NAME);
- String responseInputMode = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_MODE);
- String responseInputFileName = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_FILE_NAME);
- String responseInputFileNameHeaders = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_FILE_NAME_HEADERS);
- String responseInputDeleteAfterRead = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_FILE_NAME_DELETE_AFTER_READ);
- String responseInputWaitTime = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_FILE_RESPONSE_INPUT_WAIT_TIME);
-
- //status
- ConnettoreStatusParams connettoreStatusParams = ConnettoreStatusParams.fillFrom(apsHelper);
-
- String profilo = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_PROFILO);
-
- String priv = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_PRIVATO);
- Boolean privato = ServletUtils.isCheckBoxEnabled(priv);
-
- String portType = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_PORT_TYPE);
- String descrizione = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_DESCRIZIONE);
- String statoPackage = apsHelper.getParameter(ConnettoriCostanti.PARAMETRO_CONNETTORE_HTTPS_STATO_PACKAGE);
-
- String versione = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_VERSIONE);
-
- String backToStato = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_RIPRISTINA_STATO);
- String backToConfermaModificaDatiServizio = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_CONFERMA_MODIFICA_DATI_SERVIZIO);
- String actionConfirm = apsHelper.getParameter(Costanti.PARAMETRO_ACTION_CONFIRM);
- String tmpModificaAPI = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_MODIFICA_API);
- /**boolean modificaAPI = false;
- if(tmpModificaAPI!=null) {
- modificaAPI = "true".equals(tmpModificaAPI);
- }*/
-
- String tmpModificaProfilo = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_MODIFICA_PROFILO);
- boolean modificaProfilo = false;
- if(tmpModificaProfilo!=null) {
- modificaProfilo = "true".equals(tmpModificaProfilo);
- }
-
- String tmpCambiaAPI = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_CAMBIA_API);
- boolean cambiaAPI = false;
- if(tmpCambiaAPI!=null) {
- cambiaAPI = "true".equals(tmpCambiaAPI);
- }
-
- String tmpModificaDescrizione = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_MODIFICA_DESCRIZIONE);
- boolean modificaDescrizione = false;
- if(tmpModificaDescrizione!=null) {
- modificaDescrizione = "true".equals(tmpModificaDescrizione);
- }
- String descrizioneModificata = null;
- if(modificaDescrizione) {
- descrizioneModificata = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_DESCRIZIONE_MODIFICA);
- }
-
- String tmpCambiaSoggettoErogatore = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_CAMBIA_SOGGETTO_EROGATORE);
- boolean cambiaErogatore = false;
- if(tmpCambiaSoggettoErogatore!=null) {
- cambiaErogatore = "true".equals(tmpCambiaSoggettoErogatore);
- }
-
- boolean addPropertiesHidden = false;
- if(!apsHelper.isModalitaCompleta() && !modificaProfilo) {
- addPropertiesHidden = true;
- }
-
- boolean validazioneDocumenti = true;
- String tmpValidazioneDocumenti = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_VALIDAZIONE_DOCUMENTI);
- if(ServletUtils.isEditModeInProgress(strutsBean.editMode)){
- // primo accesso alla servlet
- if(tmpValidazioneDocumenti!=null){
- if(Costanti.CHECK_BOX_ENABLED_TRUE.equalsIgnoreCase(tmpValidazioneDocumenti) || Costanti.CHECK_BOX_ENABLED.equalsIgnoreCase(tmpValidazioneDocumenti)){
- validazioneDocumenti = true;
- }
- else if("false".equalsIgnoreCase(tmpValidazioneDocumenti) || Costanti.CHECK_BOX_DISABLED.equalsIgnoreCase(tmpValidazioneDocumenti)){
- validazioneDocumenti = false;
- }
- }else{
- validazioneDocumenti = true;
- }
- }else{
- if(Costanti.CHECK_BOX_ENABLED_TRUE.equalsIgnoreCase(tmpValidazioneDocumenti) || Costanti.CHECK_BOX_ENABLED.equalsIgnoreCase(tmpValidazioneDocumenti)){
- validazioneDocumenti = true;
- }
- else{
- validazioneDocumenti = false;
- }
- }
-
- String erogazioneServizioApplicativoServerEnabledS = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ABILITA_USO_APPLICATIVO_SERVER);
- boolean erogazioneServizioApplicativoServerEnabled = ServletUtils.isCheckBoxEnabled(erogazioneServizioApplicativoServerEnabledS);
- String erogazioneServizioApplicativoServer = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ID_APPLICATIVO_SERVER);
-
- String canale = apsHelper.getParameter(CostantiControlStation.PARAMETRO_CONFIGURAZIONE_CANALI_CANALE);
- String canaleStato = apsHelper.getParameter(CostantiControlStation.PARAMETRO_CONFIGURAZIONE_CANALI_CANALE_STATO);
-
- boolean postBackViaPost = true;
-
- // Preparo il menu
- apsHelper.makeMenu();
- String[] ptList = null;
- // Prendo nome, tipo e provider dal db
- // Prendo la lista di soggetti e la metto in un array
- // Prendo la lista di accordi e la metto in un array
- String provider = "";
- String[] soggettiList = null;
- String[] soggettiListLabel = null;
- String[] accordiList = null;
- String[] accordiListLabel = null;
- AccordiServizioParteSpecificaCore apsCore = null;
- SoggettiCore soggettiCore = null;
- AccordiServizioParteComuneCore apcCore = null;
- PorteApplicativeCore porteApplicativeCore = null;
- PorteDelegateCore porteDelegateCore = null;
- String nomeSoggettoErogatore = "";
- String tipoSoggettoErogatore = "";
- AccordoServizioParteSpecifica asps = null;
- String oldversioneaccordo = null;
- String oldtiposervizio = null;
- String oldnomeservizio = null;
- String oldtiposoggetto = null;
- String oldnomesoggetto = null;
- String oldStatoPackage = null;
- boolean accordoPrivato = false;
- String uriAccordo = null;
- Soggetto soggettoErogatoreID = null;
- List<String> versioniProtocollo = null;
- List<String> tipiSoggettiCompatibiliAccordo = null;
- List<String> tipiServizioCompatibiliAccordo = null;
- apsCore = new AccordiServizioParteSpecificaCore();
- soggettiCore = new SoggettiCore(apsCore);
- apcCore = new AccordiServizioParteComuneCore(apsCore);
- porteApplicativeCore = new PorteApplicativeCore(apsCore);
- porteDelegateCore = new PorteDelegateCore(apsCore);
- PddCore pddCore = new PddCore(apsCore);
- ServiziApplicativiCore saCore = new ServiziApplicativiCore(apsCore);
- ConfigurazioneCore confCore = new ConfigurazioneCore(apsCore);
-
- // carico i canali
- CanaliConfigurazione gestioneCanali = confCore.getCanaliConfigurazione(false);
- List<CanaleConfigurazione> canaleList = gestioneCanali != null ? gestioneCanali.getCanaleList() : new ArrayList<>();
- boolean gestioneCanaliEnabled = gestioneCanali != null && org.openspcoop2.core.config.constants.StatoFunzionalita.ABILITATO.equals(gestioneCanali.getStato());
-
- String tipologia = ServletUtils.getObjectFromSession(request, session, String.class, AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE);
- boolean gestioneFruitori = false;
- boolean gestioneErogatori = false;
- if(tipologia!=null) {
- if(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE_VALUE_FRUIZIONE.equals(tipologia)) {
- gestioneFruitori = true;
- }
- else if(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE_VALUE_EROGAZIONE.equals(tipologia)) {
- gestioneErogatori = true;
- }
- }
-
- boolean isApplicativiServerEnabled = apsCore.isApplicativiServerEnabled(apsHelper);
-
- // La lista degli SA viene filtrata per tipo se sono abilitati gli applicativiServer.
- String tipoSA = (isApplicativiServerEnabled && gestioneErogatori) ? ServiziApplicativiCostanti.VALUE_SERVIZI_APPLICATIVI_TIPO_SERVER : null;
-
- PermessiUtente pu = ServletUtils.getUserFromSession(request, session).getPermessi();
- boolean soggettoOperativo = true;
- boolean generaPACheckSoggetto = true;
- boolean [] permessi = new boolean[2];
- permessi[0] = pu.isServizi();
- permessi[1] = pu.isAccordiCooperazione();
-
- // Servizio
- asps = apsCore.getAccordoServizioParteSpecifica(Long.parseLong(id));
- if(tipoProtocollo==null) {
- tipoProtocollo = soggettiCore.getProtocolloAssociatoTipoSoggetto(asps.getTipoSoggettoErogatore());
- }
-
- if(cambiaAPI) {
-
- List<IDAccordoDB> listaIdAPI = AccordiServizioParteSpecificaUtilities.getListaIdAPI(tipoProtocollo, userLogin, apsCore, apsHelper);
-
- IDAccordo oldIDAccodo = idAccordoFactory.getIDAccordoFromUri(asps.getAccordoServizioParteComune());
- IDAccordoDB attuale = null;
- if (!listaIdAPI.isEmpty()) {
- int i = 0;
- int remove = -1;
- for (IDAccordo oldIDAccodoCheck : listaIdAPI) {
- if(oldIDAccodoCheck.equals(oldIDAccodo)) {
- remove = i;
- break;
- }
- i++;
- }
- if(remove>=0) {
- attuale = listaIdAPI.remove(remove);
- }
- }
-
- if(attuale!=null) {
- accordiList = new String[listaIdAPI.size()+1];
- accordiListLabel = new String[listaIdAPI.size()+1];
- accordiList[0] = attuale.getId().toString();
- accordiListLabel[0] = apsHelper.getLabelIdAccordo(tipoProtocollo, attuale); // Attuale alla posizione 0
-
- if (!listaIdAPI.isEmpty()) {
- int i = 1;
- for (IDAccordoDB as : listaIdAPI) {
- accordiList[i] = as.getId().toString();
- accordiListLabel[i] = apsHelper.getLabelIdAccordo(tipoProtocollo, as);
- i++;
- }
- }
- }
-
- }
- else {
-
- boolean soloAccordiConsistentiRest = false;
- boolean soloAccordiConsistentiSoap = false;
- if(!apsHelper.isModalitaCompleta()) {
- // filtro accordi senza risorse o senza pt/operation
- soloAccordiConsistentiRest = true;
- soloAccordiConsistentiSoap = true;
- }
-
- List<IDAccordoDB> lista =
- AccordiServizioParteComuneUtilities.idAccordiListFromPermessiUtente(apcCore, userLogin, new ConsoleSearch(true), permessi,
- soloAccordiConsistentiRest, soloAccordiConsistentiSoap);
-
- if (!lista.isEmpty()) {
- accordiList = new String[lista.size()];
- accordiListLabel = new String[lista.size()];
- int i = 0;
- for (IDAccordoDB as : lista) {
- accordiList[i] = as.getId().toString();
- IDSoggetto soggettoReferente = null;
- long idReferente = -1;
- if(as.getSoggettoReferenteDB()!=null && as.getSoggettoReferenteDB().getId()!=null)
- idReferente = as.getSoggettoReferenteDB().getId();
-
- if(idReferente>0){
- soggettoReferente = new IDSoggetto();
- soggettoReferente.setTipo(as.getSoggettoReferente().getTipo());
- soggettoReferente.setNome(as.getSoggettoReferente().getNome());
- }
- accordiListLabel[i] = idAccordoFactory.getUriFromValues(as.getNome(),soggettoReferente,as.getVersione());
- i++;
- }
- }
-
- }
-
- String providerSoggettoFruitore = null;
- Fruitore fruitore = null;
- if(gestioneFruitori) {
- // In questa modalità ci deve essere solo un fruitore
- // In questa modalità ci deve essere un fruitore indirizzato
- for (Fruitore check : asps.getFruitoreList()) {
- if(check.getTipo().equals(idSoggettoFruitore.getTipo()) && check.getNome().equals(idSoggettoFruitore.getNome())) {
- fruitore = check;
- break;
- }
- }
- if(fruitore==null) {
- throw new CoreException("Fruitore '"+idSoggettoFruitore.getTipo()+"/"+idSoggettoFruitore.getNome()+"' non trovato");
- }
- providerSoggettoFruitore = fruitore.getId()+"";
- }
-
- String tmpTitle = apsHelper.getLabelIdServizio(asps);
- if(gestioneFruitori) {
- tmpTitle = apsHelper.getLabelServizioFruizione(tipoProtocollo, idSoggettoFruitore, asps);
- }
- else if(gestioneErogatori) {
- tmpTitle = apsHelper.getLabelServizioErogazione(tipoProtocollo, asps);
- }
-
- Boolean isConnettoreCustomUltimaImmagineSalvata = asps.getConfigurazioneServizio()!=null &&
- asps.getConfigurazioneServizio().getConnettore()!=null &&
- asps.getConfigurazioneServizio().getConnettore().getCustom();
-
- List<ExtendedConnettore> listExtendedConnettore =
- ServletExtendedConnettoreUtils.getExtendedConnettore(asps.getConfigurazioneServizio().getConnettore(), ConnettoreServletType.ACCORDO_SERVIZIO_PARTE_SPECIFICA_CHANGE, apsHelper,
- (endpointtype==null), endpointtype); // uso endpointtype per capire se è la prima volta che entro
-
- // Lista port-type associati all'accordo di servizio
- // se l'accordo e' selezionato allora prendo quello selezionato
- // altrimenti il primo
- // della lista
- AccordoServizioParteComuneSintetico as = null;
- if (accordo != null && !"".equals(accordo)) {
- as = apcCore.getAccordoServizioSintetico(Long.parseLong(accordo));
- if(as==null) {
- throw new CoreException("AccordoServizioParteComune con id '"+accordo+"' non trovato");
- }
- } else {
- as = apcCore.getAccordoServizioSintetico(idAccordoFactory.getIDAccordoFromUri(asps.getAccordoServizioParteComune()));
- if(as==null) {
- throw new CoreException("AccordoServizioParteComune con id '"+asps.getAccordoServizioParteComune()+"' non trovato");
- }
- portType = asps.getPortType();
- }
-
- String canaleAPI = as != null ? as.getCanale() : null;
-
- ServiceBinding serviceBinding = apcCore.toMessageServiceBinding(as.getServiceBinding());
- org.openspcoop2.protocol.manifest.constants.InterfaceType formatoSpecifica = apcCore.formatoSpecifica2InterfaceType(as.getFormatoSpecifica());
- // Lista di Accordi Compatibili
- List<AccordoServizioParteComune> asParteComuneCompatibili = null;
- try{
- asParteComuneCompatibili = apsCore.findAccordiParteComuneBySoggettoAndNome(as.getNome(),
- new IDSoggetto(as.getSoggettoReferente().getTipo(), as.getSoggettoReferente().getNome()));
- }catch(Exception e){
- ControlStationCore.logError("Errore durante la ricerca degli accordi parte comune compatibili", e);
- }
-
- // Versione
- versioniProtocollo = apsCore.getVersioniProtocollo(tipoProtocollo);
- tipiSoggettiCompatibiliAccordo = soggettiCore.getTipiSoggettiGestitiProtocollo(tipoProtocollo);
- tipiServizioCompatibiliAccordo = apsCore.getTipiServiziGestitiProtocollo(tipoProtocollo,serviceBinding);
- // verifico implementazioni del servizio utilizzate nelle fruizioni e/o nelle erogazioni
- boolean moreThenOneImplementation = false;
- List<IDPortaDelegata> listMappingPD = new ArrayList<>();
- List<IDPortaApplicativa> listMappingPA = new ArrayList<>();
- if(
- (gestioneFruitori || gestioneErogatori)
- &&
- (
- (tmpModificaAPI!=null && !"".equals(tmpModificaAPI))
- ||
- cambiaAPI
- ||
- cambiaErogatore
- )
- ) {
-
- IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromAccordo(asps);
-
- // Fruizioni
- for (Fruitore fruitoreCheck : asps.getFruitoreList()) {
- IDSoggetto idSoggettoFr = new IDSoggetto(fruitoreCheck.getTipo(), fruitoreCheck.getNome());
- Soggetto soggetto = soggettiCore.getSoggettoRegistro(idSoggettoFr);
- if(!pddCore.isPddEsterna(soggetto.getPortaDominio())){
- IDPortaDelegata idPD = porteDelegateCore.getIDPortaDelegataAssociataDefault(idServizio, idSoggettoFr);
- if(idPD!=null) {
- listMappingPD.add(idPD);
- }
- }
- }
-
- // Erogazioni
- IDPortaApplicativa idPA = porteApplicativeCore.getIDPortaApplicativaAssociataDefault(idServizio);
- if(idPA!=null) {
- listMappingPA.add(idPA);
- }
-
- moreThenOneImplementation = (listMappingPD.size()+listMappingPA.size()) > 1;
- }
-
- // calcolo soggetti compatibili con accordi
- List<Soggetto> list = null;
- String nuovoTipoSoggettoErogatore = null;
- String nuovoNomeSoggettoErogatore = null;
- if(cambiaErogatore) {
-
- provider = apsHelper.getParameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_PROVIDER_CAMBIO_EROGATORE);
-
- ConsoleSearch searchSoggetti = new ConsoleSearch(true);
- searchSoggetti.addFilter(Liste.SOGGETTI, Filtri.FILTRO_PROTOCOLLO, tipoProtocollo);
- boolean gestioneFruitoriSoggettiErogatoriEscludiSoggettoFruitore = false;
- if(gestioneFruitori) {
- boolean filtraSoloEsterni = true;
- if(apsCore.isMultitenant() && apsCore.getMultitenantSoggettiFruizioni()!=null) {
- switch (apsCore.getMultitenantSoggettiFruizioni()) {
- case SOLO_SOGGETTI_ESTERNI:
- filtraSoloEsterni = true;
- break;
- case ESCLUDI_SOGGETTO_FRUITORE:
- filtraSoloEsterni = false;
- gestioneFruitoriSoggettiErogatoriEscludiSoggettoFruitore = true;
- break;
- case TUTTI:
- filtraSoloEsterni = false;
- break;
- }
- }
- if(filtraSoloEsterni) {
- searchSoggetti.addFilter(Liste.SOGGETTI, Filtri.FILTRO_DOMINIO, SoggettiCostanti.SOGGETTO_DOMINIO_ESTERNO_VALUE);
- }
- }
- if(gestioneErogatori) {
- searchSoggetti.addFilter(Liste.SOGGETTI, Filtri.FILTRO_DOMINIO, SoggettiCostanti.SOGGETTO_DOMINIO_OPERATIVO_VALUE);
- }
-
- if(apsCore.isVisioneOggettiGlobale(userLogin)){
- list = soggettiCore.soggettiRegistroList(null, searchSoggetti);
- }else{
- list = soggettiCore.soggettiRegistroList(userLogin, searchSoggetti);
- }
-
- if(gestioneFruitoriSoggettiErogatoriEscludiSoggettoFruitore && list!=null && !list.isEmpty()) {
- for (int i = 0; i < list.size(); i++) {
- Soggetto soggettoCheck = list.get(i);
- if(soggettoCheck.getTipo().equals(tipoSoggettoFruitore) && soggettoCheck.getNome().equals(nomeSoggettoFruitore)) {
- list.remove(i);
- break;
- }
- }
- }
- if(list!=null && !list.isEmpty()) {
- long idErogatore = asps.getIdSoggetto();
- for (int i = 0; i < list.size(); i++) {
- Soggetto soggettoCheck = list.get(i);
- if(idErogatore == soggettoCheck.getId().longValue()) {
- list.remove(i);
- break;
- }
- }
- }
- if(list == null || list.isEmpty()) {
- if(gestioneFruitori) {
- pd.setMessage("Non risultano registrati altri soggetti che possano erogare API", Costanti.MESSAGE_TYPE_INFO);
- }
- else {
- pd.setMessage("Non risultano registrati altri soggetti", Costanti.MESSAGE_TYPE_INFO);
- }
-
- pd.disableEditMode();
- List<DataElement> dati = new ArrayList<>();
- dati.add(ServletUtils.getDataElementForEditModeFinished());
- pd.setDati(dati);
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardEditModeCheckError(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
- }
- else {
- if(apsCore.isVisioneOggettiGlobale(userLogin)){
- list = soggettiCore.soggettiRegistroList(null, new ConsoleSearch(true));
- }else{
- list = soggettiCore.soggettiRegistroList(userLogin, new ConsoleSearch(true));
- }
- }
-
- if (list!=null && !list.isEmpty()) {
- List<String> soggettiListTmp = new ArrayList<>();
- List<String> soggettiListLabelTmp = new ArrayList<>();
- if(cambiaErogatore) {
- soggettiListTmp.add("");
- soggettiListLabelTmp.add("-");
- }
- for (Soggetto soggetto : list) {
- if(tipiSoggettiCompatibiliAccordo.contains(soggetto.getTipo())){
- String idS = soggetto.getId().toString();
- soggettiListTmp.add(idS);
- soggettiListLabelTmp.add(apsHelper.getLabelNomeSoggetto(tipoProtocollo, soggetto.getTipo() , soggetto.getNome()));
- if(cambiaErogatore && provider!=null && !"".equals(provider) && idS.equals(provider)) {
- nuovoTipoSoggettoErogatore = soggetto.getTipo();
- nuovoNomeSoggettoErogatore = soggetto.getNome();
- }
- }
- }
- soggettiList = soggettiListTmp.toArray(new String[1]);
- soggettiListLabel = soggettiListLabelTmp.toArray(new String[1]);
- }
- nomeSoggettoErogatore = asps.getNomeSoggettoErogatore();
- tipoSoggettoErogatore = asps.getTipoSoggettoErogatore();
- if(cambiaErogatore && nuovoNomeSoggettoErogatore!=null && nuovoTipoSoggettoErogatore!=null) {
- nomeSoggettoErogatore = nuovoNomeSoggettoErogatore;
- tipoSoggettoErogatore = nuovoTipoSoggettoErogatore;
- }
- if(asps.getVersione()!=null)
- oldversioneaccordo = asps.getVersione()+"";
- oldtiposervizio = asps.getTipo();
- oldnomeservizio = asps.getNome();
- oldtiposoggetto = asps.getTipoSoggettoErogatore();
- oldnomesoggetto = asps.getNomeSoggettoErogatore();
- oldStatoPackage = asps.getStatoPackage();
- // aggiorno tmpTitle
- @SuppressWarnings("unused")
- String tmpVersione = IDServizioFactory.getInstance().getUriFromAccordo(asps);
- soggettoErogatoreID = soggettiCore.getSoggettoRegistro(new IDSoggetto(tipoSoggettoErogatore,nomeSoggettoErogatore));
- if(versione == null)
- versione = oldversioneaccordo;
- if(as!=null){
- accordoPrivato = as.getPrivato()!=null && as.getPrivato();
- uriAccordo = idAccordoFactory.getUriFromAccordo(as);
- if( apsCore.isShowCorrelazioneAsincronaInAccordi() &&
- portType != null && !"".equals(portType) && !"-".equals(portType)){
- PortTypeSintetico pt = null;
- for(int i=0; i<as.getPortType().size(); i++){
- if(portType.equals(as.getPortType().get(i).getNome())){
- pt = as.getPortType().get(i);
- break;
- }
- }
- boolean servizioCorrelato = false;
- if(pt!=null){
- for(int i=0; i<pt.getAzione().size(); i++){
- OperationSintetica op = pt.getAzione().get(i);
- if(op.getCorrelataServizio()!=null && !pt.getNome().equals(op.getCorrelataServizio()) && op.getCorrelata()!=null){
- servizioCorrelato = true;
- break;
- }
- }
- }
- if(servizioCorrelato){
- servcorr=Costanti.CHECK_BOX_ENABLED;
- }
- else{
- servcorr=Costanti.CHECK_BOX_DISABLED;
- }
- }
- }
- List<PortType> portTypesTmp = apcCore.accordiPorttypeList(as.getId().intValue(), new ConsoleSearch(true));
- List<PortType> portTypes = null;
-
- if(apsHelper.isModalitaCompleta()) {
- portTypes = portTypesTmp;
- }
- else {
- // filtro pt senza op
- portTypes = new ArrayList<>();
- for (PortType portTypeCheck : portTypesTmp) {
- if(portTypeCheck.sizeAzioneList()>0) {
- portTypes.add(portTypeCheck);
- }
- }
- }
-
-
- if (!portTypes.isEmpty()) {
- ptList = new String[portTypes.size() + 1];
- ptList[0] = "-";
- int i = 1;
- for (Iterator<PortType> iterator = portTypes.iterator(); iterator.hasNext();) {
- PortType portType2 = iterator.next();
- ptList[i] = portType2.getNome();
- i++;
- }
- }
-
- // Lista dei servizi applicativi per la creazione automatica
- List<IDServizioApplicativoDB> listaIdSA = null;
- if (gestioneErogatori && (provider != null) && !provider.equals("") && !cambiaErogatore) {
- long idErogatore = Long.parseLong(provider);
-
- // I servizi applicativi da visualizzare sono quelli che hanno
- // -Integration Manager (getMessage abilitato)
- // -connettore != disabilitato
- listaIdSA = saCore.getIdServiziApplicativiWithIdErogatore(idErogatore, tipoSA, true, true);
- List<IDServizioApplicativoDB> newListaIdSA = new ArrayList<>();
- IDServizioApplicativoDB idSA = new IDServizioApplicativoDB();
- idSA.setNome("-"); // elemento nullo di default
- idSA.setIdSoggettoProprietario(new IDSoggetto("-", "-"));
- newListaIdSA.add(idSA);
- if(listaIdSA!=null && !listaIdSA.isEmpty()) {
- newListaIdSA.addAll(listaIdSA);
- }
- listaIdSA = newListaIdSA;
- }
- String [] saSoggetti = ServiziApplicativiHelper.toArray(listaIdSA);
-
- //se passo dal link diretto di ripristino stato (e poi con conferma == ok) imposto il nuovo stato
- if(backToStato != null && (actionConfirm == null || actionConfirm.equals(Costanti.PARAMETRO_ACTION_CONFIRM_VALUE_OK)))
- statoPackage = backToStato;
-
-
- strutsBean.protocolFactory = ProtocolFactoryManager.getInstance().getProtocolFactoryByName(tipoProtocollo);
- strutsBean.consoleDynamicConfiguration = strutsBean.protocolFactory.createDynamicConfigurationConsole();
- strutsBean.registryReader = soggettiCore.getRegistryReader(strutsBean.protocolFactory);
- strutsBean.configRegistryReader = soggettiCore.getConfigIntegrationReader(strutsBean.protocolFactory);
- IDServizio oldIdAps = apsHelper.getIDServizioFromValues(oldtiposervizio, oldnomeservizio, oldtiposoggetto,oldnomesoggetto, oldversioneaccordo);
- oldIdAps.setUriAccordoServizioParteComune(idAccordoFactory.getUriFromAccordo(as));
- oldIdAps.setPortType((portType != null && !"".equals(portType) ? portType : asps.getPortType()));
- strutsBean.consoleConfiguration = strutsBean.consoleDynamicConfiguration.getDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleOperationType, apsHelper,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps );
- strutsBean.protocolProperties = apsHelper.estraiProtocolPropertiesDaRequest(strutsBean.consoleConfiguration, strutsBean.consoleOperationType);
- oldProtocolPropertyList = asps.getProtocolPropertyList();
- if(strutsBean.protocolPropertiesSet == null){
- ProtocolPropertiesUtils.mergeProtocolPropertiesRegistry(strutsBean.protocolProperties, oldProtocolPropertyList, strutsBean.consoleOperationType);
- }
-
- Properties propertiesProprietario = new Properties();
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_ID_PROPRIETARIO, id);
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO, ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_PROPRIETARIO_VALUE_ACCORDO_SERVIZIO_PARTE_SPECIFICA);
- if(uriAccordo!=null) {
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_NOME_PROPRIETARIO, uriAccordo);
- }
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_URL_ORIGINALE_CHANGE, URLEncoder.encode( AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE + "?" + request.getQueryString(), "UTF-8"));
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_PROTOCOLLO, tipoProtocollo);
- propertiesProprietario.setProperty(ProtocolPropertiesCostanti.PARAMETRO_PP_TIPO_ACCORDO, "");
-
-
-
- // verifico versione change
- String postBackElementName = apsHelper.getPostBackElementName();
- boolean portTypeErased = false;
- if(postBackElementName != null ){
-
- if(postBackElementName.equalsIgnoreCase(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ACCORDO)){
-
- if(cambiaAPI) {
- portType = null;
- portTypeErased = true;
- }
-
- if(!cambiaAPI) {
- // ho modificato l'accordo (la versione)
- // verifico se la versione precedente della API era uguale alla versione attuale del servizio, modifico anche la versione del servizio se sono in standard.
- // se non esiste gia' una nuova versione del servizio
- IDAccordo oldIDAccodo = IDAccordoFactory.getInstance().getIDAccordoFromUri(asps.getAccordoServizioParteComune());
- if(oldIDAccodo.getVersione().intValue() == asps.getVersione().intValue()) {
- String tmpNewVersion = as.getVersione().intValue()+"";
- IDServizio idApsCheck = apsHelper.getIDServizioFromValues(oldtiposervizio, oldnomeservizio, oldtiposoggetto,oldnomesoggetto, tmpNewVersion);
- if(!apsCore.existsAccordoServizioParteSpecifica(idApsCheck)) {
- versione = tmpNewVersion;
- }
- }
- }
-
- }
-
- backToConfermaModificaDatiServizio = null; // non ho ancora cliccato su salva configurazione
- }
-
- // setto la barra del titolo
- List<Parameter> lstParm = apsHelper.getTitoloAps(TipoOperazione.CHANGE, asps, gestioneFruitori, tmpTitle, null, true, tipoSoggettoFruitore, nomeSoggettoFruitore);
- Boolean vistaErogazioni = ServletUtils.getBooleanAttributeFromSession(ErogazioniCostanti.ASPS_EROGAZIONI_ATTRIBUTO_VISTA_EROGAZIONI, session, request).getValue();
-
- // Se idhid = null, devo visualizzare la pagina per la
- // modifica dati
- if (ServletUtils.isEditModeInProgress(strutsBean.editMode)) {
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(pd, lstParm );
- if(nomeSoggettoErogatore==null) {
- nomeSoggettoErogatore = asps.getNomeSoggettoErogatore();
- }
- if(tipoSoggettoErogatore==null) {
- tipoSoggettoErogatore = asps.getTipoSoggettoErogatore();
- }
- if (servcorr == null) {
- if(TipologiaServizio.CORRELATO.equals(asps.getTipologiaServizio()))
- servcorr = Costanti.CHECK_BOX_ENABLED;
- else
- servcorr = Costanti.CHECK_BOX_DISABLED;
- }
- if (accordo == null)
- accordo = asps.getIdAccordo().toString();
- if (profilo == null)
- profilo = asps.getVersioneProtocollo();
- if (descrizione == null)
- descrizione = asps.getDescrizione();
- if(statoPackage==null)
- statoPackage = asps.getStatoPackage();
- if(modificaDescrizione &&
- (descrizioneModificata==null)
- ){
- descrizioneModificata = gestioneFruitori ? fruitore.getDescrizione() : asps.getDescrizione();
- }
-
- if(versione==null &&
- asps.getVersione()!=null) {
- versione=asps.getVersione().intValue()+"";
- }
- if(tiposervizio==null){
- tiposervizio = asps.getTipo();
- }
- if(nomeservizio==null){
- nomeservizio = asps.getNome();
- }
-
- // Controllo se il soggetto erogare appartiene ad una pdd di tipo operativo.
- IDSoggetto idSoggettoEr = new IDSoggetto( tipoSoggettoErogatore, nomeSoggettoErogatore);
- Soggetto soggetto = soggettiCore.getSoggettoRegistro(idSoggettoEr );
- if(pddCore.isPddEsterna(soggetto.getPortaDominio())){
- soggettoOperativo = false;
- generaPACheckSoggetto = soggettoOperativo;
- }
- Connettore connettore = asps.getConfigurazioneServizio().getConnettore();
- if ((endpointtype == null) || (url == null) || (nome == null)) {
- Map<String, String> props = connettore.getProperties();
- if (endpointtype == null) {
- if ((connettore.getCustom()!=null && connettore.getCustom()) &&
- !connettore.getTipo().equals(CostantiDB.CONNETTORE_TIPO_HTTPS) &&
- !connettore.getTipo().equals(CostantiDB.CONNETTORE_TIPO_FILE) &&
- !connettore.getTipo().equals(CostantiDB.CONNETTORE_TIPO_STATUS)) {
- endpointtype = ConnettoriCostanti.DEFAULT_CONNETTORE_TYPE_CUSTOM;
- tipoconn = connettore.getTipo();
- } else
- endpointtype = connettore.getTipo();
- }
-
- if(connettoreDebug==null && props!=null){
- String v = props.get(CostantiDB.CONNETTORE_DEBUG);
- if(v!=null){
- if("true".equals(v)){
- connettoreDebug = Costanti.CHECK_BOX_ENABLED;
- }
- else{
- connettoreDebug = Costanti.CHECK_BOX_DISABLED;
- }
- }
- }
-
- if(proxyEnabled==null && props!=null){
- String v = props.get(CostantiDB.CONNETTORE_PROXY_TYPE);
- if(v!=null && !"".equals(v)){
- proxyEnabled = Costanti.CHECK_BOX_ENABLED_TRUE;
-
- // raccolgo anche altre proprietÃ
- v = props.get(CostantiDB.CONNETTORE_PROXY_HOSTNAME);
- if(v!=null && !"".equals(v)){
- proxyHostname = v.trim();
- }
- v = props.get(CostantiDB.CONNETTORE_PROXY_PORT);
- if(v!=null && !"".equals(v)){
- proxyPort = v.trim();
- }
- v = props.get(CostantiDB.CONNETTORE_PROXY_USERNAME);
- if(v!=null && !"".equals(v)){
- proxyUsername = v.trim();
- }
- v = props.get(CostantiDB.CONNETTORE_PROXY_PASSWORD);
- if(v!=null && !"".equals(v)){
- proxyPassword = v.trim();
- }
- }
- }
-
- if(tempiRispostaEnabled == null ||
- tempiRispostaConnectionTimeout==null || "".equals(tempiRispostaConnectionTimeout)
- ||
- tempiRispostaReadTimeout==null || "".equals(tempiRispostaReadTimeout)
- ||
- tempiRispostaTempoMedioRisposta==null || "".equals(tempiRispostaTempoMedioRisposta) ){
-
- ConfigurazioneCore configCore = new ConfigurazioneCore(soggettiCore);
- ConfigurazioneGenerale configGenerale = configCore.getConfigurazioneControlloTraffico();
-
- if( props!=null ) {
- if(tempiRispostaConnectionTimeout==null || "".equals(tempiRispostaConnectionTimeout) ) {
- String v = props.get(CostantiDB.CONNETTORE_CONNECTION_TIMEOUT);
- if(v!=null && !"".equals(v)){
- tempiRispostaConnectionTimeout = v.trim();
- tempiRispostaEnabled = Costanti.CHECK_BOX_ENABLED_TRUE;
- }
- else {
- tempiRispostaConnectionTimeout = configGenerale.getTempiRispostaFruizione().getConnectionTimeout().intValue()+"";
- }
- }
-
- if(tempiRispostaReadTimeout==null || "".equals(tempiRispostaReadTimeout) ) {
- String v = props.get(CostantiDB.CONNETTORE_READ_CONNECTION_TIMEOUT);
- if(v!=null && !"".equals(v)){
- tempiRispostaReadTimeout = v.trim();
- tempiRispostaEnabled = Costanti.CHECK_BOX_ENABLED_TRUE;
- }
- else {
- tempiRispostaReadTimeout = configGenerale.getTempiRispostaFruizione().getReadTimeout().intValue()+"";
- }
- }
-
- if(tempiRispostaTempoMedioRisposta==null || "".equals(tempiRispostaTempoMedioRisposta) ) {
- String v = props.get(CostantiDB.CONNETTORE_TEMPO_MEDIO_RISPOSTA);
- if(v!=null && !"".equals(v)){
- tempiRispostaTempoMedioRisposta = v.trim();
- tempiRispostaEnabled = Costanti.CHECK_BOX_ENABLED_TRUE;
- }
- else {
- tempiRispostaTempoMedioRisposta = configGenerale.getTempiRispostaFruizione().getTempoMedioRisposta().intValue()+"";
- }
- }
- }
- else {
- if(tempiRispostaConnectionTimeout==null || "".equals(tempiRispostaConnectionTimeout) ) {
- tempiRispostaConnectionTimeout = configGenerale.getTempiRispostaFruizione().getConnectionTimeout().intValue()+"";
- }
- if(tempiRispostaReadTimeout==null || "".equals(tempiRispostaReadTimeout) ) {
- tempiRispostaReadTimeout = configGenerale.getTempiRispostaFruizione().getReadTimeout().intValue()+"";
- }
- if(tempiRispostaTempoMedioRisposta==null || "".equals(tempiRispostaTempoMedioRisposta) ) {
- tempiRispostaTempoMedioRisposta = configGenerale.getTempiRispostaFruizione().getTempoMedioRisposta().intValue()+"";
- }
- }
- }
-
- if(transferMode==null && props!=null){
- String v = props.get(CostantiDB.CONNETTORE_HTTP_DATA_TRANSFER_MODE);
- if(v!=null && !"".equals(v)){
-
- transferMode = v.trim();
-
- if(TransferLengthModes.TRANSFER_ENCODING_CHUNKED.getNome().equals(transferMode)){
- // raccolgo anche altra proprietà correlata
- v = props.get(CostantiDB.CONNETTORE_HTTP_DATA_TRANSFER_MODE_CHUNK_SIZE);
- if(v!=null && !"".equals(v)){
- transferModeChunkSize = v.trim();
- }
- }
-
- }
- }
-
- if(redirectMode==null && props!=null){
- String v = props.get(CostantiDB.CONNETTORE_HTTP_REDIRECT_FOLLOW);
- if(v!=null && !"".equals(v)){
-
- if("true".equalsIgnoreCase(v.trim()) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v.trim())){
- redirectMode = CostantiConfigurazione.ABILITATO.getValue();
- }
- else{
- redirectMode = CostantiConfigurazione.DISABILITATO.getValue();
- }
-
- if(CostantiConfigurazione.ABILITATO.getValue().equals(redirectMode)){
- // raccolgo anche altra proprietà correlata
- v = props.get(CostantiDB.CONNETTORE_HTTP_REDIRECT_MAX_HOP);
- if(v!=null && !"".equals(v)){
- redirectMaxHop = v.trim();
- }
- }
-
- }
- }
-
- if(tokenPolicy==null && props!=null){
- String v = props.get(CostantiDB.CONNETTORE_TOKEN_POLICY);
- if(v!=null && !"".equals(v)){
- tokenPolicy = v;
- autenticazioneToken = true;
- }
- }
-
- opzioniAvanzate = ConnettoriHelper.getOpzioniAvanzate(apsHelper, transferMode, redirectMode);
-
- if (url == null) {
- url = props.get(CostantiDB.CONNETTORE_HTTP_LOCATION);
- }
- if (nome == null) {
- nome = props.get(CostantiDB.CONNETTORE_JMS_NOME);
- String userTmp = props.get(CostantiDB.CONNETTORE_USER);
- if(userTmp!=null && !"".equals(userTmp)){
- user = userTmp;
- }
- String passwordTmp = props.get(CostantiDB.CONNETTORE_PWD);
- if(passwordTmp!=null && !"".equals(passwordTmp)){
- password = passwordTmp;
- }
- tipo = props.get(CostantiDB.CONNETTORE_JMS_TIPO);
- initcont = props.get(CostantiDB.CONNETTORE_JMS_CONTEXT_JAVA_NAMING_FACTORY_INITIAL);
- urlpgk = props.get(CostantiDB.CONNETTORE_JMS_CONTEXT_JAVA_NAMING_FACTORY_URL_PKG);
- provurl = props.get(CostantiDB.CONNETTORE_JMS_CONTEXT_JAVA_NAMING_PROVIDER_URL);
- connfact = props.get(CostantiDB.CONNETTORE_JMS_CONNECTION_FACTORY);
- sendas = props.get(CostantiDB.CONNETTORE_JMS_SEND_AS);
- }
-
- autenticazioneHttp = apsHelper.getAutenticazioneHttp(autenticazioneHttp, endpointtype, user);
-
- if(autenticazioneApiKey==null || StringUtils.isEmpty(autenticazioneApiKey)) {
- apiKeyHeader = props.get(CostantiDB.CONNETTORE_APIKEY_HEADER);
- apiKeyValue = props.get(CostantiDB.CONNETTORE_APIKEY);
- appIdHeader = props.get(CostantiDB.CONNETTORE_APIKEY_APPID_HEADER);
- appIdValue = props.get(CostantiDB.CONNETTORE_APIKEY_APPID);
-
- autenticazioneApiKey = apsHelper.getAutenticazioneApiKey(autenticazioneApiKey, endpointtype, apiKeyValue);
- if(ServletUtils.isCheckBoxEnabled(autenticazioneApiKey)) {
- useOAS3Names = apsHelper.isAutenticazioneApiKeyUseOAS3Names(apiKeyHeader, appIdHeader);
- useAppId = apsHelper.isAutenticazioneApiKeyUseAppId(appIdValue);
- }
- else {
- apiKeyValue=null;
- apiKeyHeader=null;
- appIdHeader=null;
- appIdValue=null;
- }
- }
-
- if (httpstipologia == null) {
- httpsurl = props.get(CostantiDB.CONNETTORE_HTTPS_LOCATION);
- httpstipologia = props.get(CostantiDB.CONNETTORE_HTTPS_SSL_TYPE);
- httpshostverifyS = props.get(CostantiDB.CONNETTORE_HTTPS_HOSTNAME_VERIFIER);
- if(httpshostverifyS!=null){
- httpshostverify = Boolean.valueOf(httpshostverifyS);
- }
- httpsTrustVerifyCertS = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_ALL_CERTS);
- if(httpsTrustVerifyCertS!=null){
- httpsTrustVerifyCert = !Boolean.valueOf(httpsTrustVerifyCertS);
- }
- else {
- httpsTrustVerifyCert = true; // backward compatibility
- }
- httpspath = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_STORE_LOCATION);
- httpstipo = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_STORE_TYPE);
- httpspwd = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_STORE_PASSWORD);
- httpsalgoritmo = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_MANAGEMENT_ALGORITM);
- httpspwdprivatekeytrust = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_PASSWORD);
- httpspathkey = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_STORE_LOCATION);
- httpstipokey = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_STORE_TYPE);
- httpspwdkey = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_STORE_PASSWORD);
- httpspwdprivatekey = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_PASSWORD);
- httpsalgoritmokey = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_MANAGEMENT_ALGORITM);
- httpsKeyAlias = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_ALIAS);
- httpsTrustStoreCRLs = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_STORE_CRLS);
- httpsTrustStoreOCSPPolicy = props.get(CostantiDB.CONNETTORE_HTTPS_TRUST_STORE_OCSP_POLICY);
- httpsKeyStoreBYOKPolicy = props.get(CostantiDB.CONNETTORE_HTTPS_KEY_STORE_BYOK_POLICY);
- if (httpspathkey == null) {
- httpsstato = false;
- httpskeystore = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_KEYSTORE_CLIENT_AUTH_MODE_DEFAULT;
- } else {
- httpsstato = true;
- if (httpspathkey.equals(httpspath) &&
- httpstipokey.equals(httpstipo) &&
- (
- (httpspwdkey!=null && httpspwdkey.equals(httpspwd))
- ||
- (httpspwdkey==null && httpspwd==null)
- )
- )
- httpskeystore = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_KEYSTORE_CLIENT_AUTH_MODE_DEFAULT;
- else
- httpskeystore = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_KEYSTORE_CLIENT_AUTH_MODE_RIDEFINISCI;
- }
- }
-
- // file
- if(responseInputMode==null && props!=null){
-
- requestOutputFileName = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE);
- requestOutputFileNamePermissions = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE_PERMISSIONS);
- requestOutputFileNameHeaders = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE_HEADERS);
- requestOutputFileNameHeadersPermissions = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_FILE_HEADERS_PERMISSIONS);
- String v = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_AUTO_CREATE_DIR);
- if(v!=null && !"".equals(v) &&
- ("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) )
- ){
- requestOutputParentDirCreateIfNotExists = Costanti.CHECK_BOX_ENABLED_TRUE;
- }
- v = props.get(CostantiDB.CONNETTORE_FILE_REQUEST_OUTPUT_OVERWRITE_FILE);
- if(v!=null && !"".equals(v) &&
- ("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) )
- ){
- requestOutputOverwriteIfExists = Costanti.CHECK_BOX_ENABLED_TRUE;
- }
-
- v = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_MODE);
- if(v!=null && !"".equals(v) &&
- ("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) )
- ){
- responseInputMode = CostantiConfigurazione.ABILITATO.getValue();
- }
- if(CostantiConfigurazione.ABILITATO.getValue().equals(responseInputMode)){
- responseInputFileName = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE);
- responseInputFileNameHeaders = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE_HEADERS);
- v = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_FILE_DELETE_AFTER_READ);
- if(v!=null && !"".equals(v) &&
- ("true".equalsIgnoreCase(v) || CostantiConfigurazione.ABILITATO.getValue().equalsIgnoreCase(v) )
- ){
- responseInputDeleteAfterRead = Costanti.CHECK_BOX_ENABLED_TRUE;
- }
- responseInputWaitTime = props.get(CostantiDB.CONNETTORE_FILE_RESPONSE_INPUT_WAIT_TIME);
- }
-
- }
- }
- // default
- if(httpsalgoritmo==null || "".equals(httpsalgoritmo)){
- httpsalgoritmo = TrustManagerFactory.getDefaultAlgorithm();
- }
- if(httpsalgoritmokey==null || "".equals(httpsalgoritmokey)){
- httpsalgoritmokey = KeyManagerFactory.getDefaultAlgorithm();
- }
- if(httpstipologia==null || "".equals(httpstipologia)){
- httpstipologia = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TYPE;
- }
- if(postBackElementName == null || "".equals(postBackElementName) ){
- // altrimenti sono checkbox
- if(httpshostverifyS==null || "".equals(httpshostverifyS)){
- httpshostverifyS = Costanti.CHECK_BOX_ENABLED_TRUE;
- httpshostverify = ServletUtils.isCheckBoxEnabled(httpshostverifyS);
- }
- if(httpsTrustVerifyCertS==null || "".equals(httpsTrustVerifyCertS)){
- httpsTrustVerifyCertS = ConnettoriCostanti.DEFAULT_CONNETTORE_HTTPS_TRUST_VERIFY_CERTS ? Costanti.CHECK_BOX_ENABLED_TRUE : Costanti.CHECK_BOX_DISABLED;
- httpsTrustVerifyCert = ServletUtils.isCheckBoxEnabled(httpsTrustVerifyCertS);
- }
- }
- portType = (portType != null && !"".equals(portType) ? portType : asps.getPortType());
- if(portTypeErased) {
- portType = null;
- }
-
- privato = asps.getPrivato()!=null && asps.getPrivato();
-
- if(strutsBean.wsdlimpler == null){
- strutsBean.wsdlimpler = new BinaryParameter();
- strutsBean.wsdlimpler.setValue(asps.getByteWsdlImplementativoErogatore());
- }
-
- if(strutsBean.wsdlimplfru == null){
- strutsBean.wsdlimplfru = new BinaryParameter();
- strutsBean.wsdlimplfru.setValue(asps.getByteWsdlImplementativoFruitore());
- }
-
- if(backToStato == null && backToConfermaModificaDatiServizio==null){
- // preparo i campi
- List<DataElement> dati = new ArrayList<>();
- dati.add(ServletUtils.getDataElementForEditModeFinished());
-
- // update della configurazione
- strutsBean.consoleDynamicConfiguration.updateDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, apsHelper, strutsBean.protocolProperties,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps);
-
- dati = apsHelper.addHiddenFieldsToDati(tipoOp, id, null, null, dati);
- dati = apsHelper.addServiziToDati(dati, nomeservizio, tiposervizio, oldnomeservizio, oldtiposervizio,
- provider, tipoSoggettoErogatore, nomeSoggettoErogatore,
- soggettiList, soggettiListLabel, accordo,serviceBinding, formatoSpecifica, accordiList, accordiListLabel, servcorr, strutsBean.wsdlimpler, strutsBean.wsdlimplfru, tipoOp,
- id, tipiServizioCompatibiliAccordo, profilo, portType, ptList, privato,uriAccordo,
- descrizione, descrizioneModificata,
- soggettoErogatoreID.getId(),statoPackage,oldStatoPackage
- ,versione,versioniProtocollo,validazioneDocumenti,
- null,null,generaPACheckSoggetto,asParteComuneCompatibili,
- null,
- null,null,null,null,null,null,false,
- null,null,null,null,null,null,null,
- tipoProtocollo,null,
- null, null, providerSoggettoFruitore, tipoSoggettoFruitore, nomeSoggettoFruitore,
- null, null, null, null, null, null, null,
- null, null, null, null,
- null,null,null,null,null,null,null,null,null,null,
- null,null,null,null,null,
- null,null,
- null,null,null,null,moreThenOneImplementation, canaleStato, canaleAPI, canale, canaleList, gestioneCanaliEnabled,
- null, null, null, null, null,
- null,
- null,null,null);
- if(apsHelper.isModalitaCompleta() || (!soggettoOperativo && !gestioneFruitori)) {
-
- boolean forceEnableConnettore = false;
- /**if( apsHelper.isModalitaStandard() && !TipiConnettore.DISABILITATO.getNome().equals(endpointtype) ) {
- forceEnableConnettore = true;
- }*/
-
- dati = apsHelper.addEndPointToDati(dati, serviceBinding, connettoreDebug, endpointtype, autenticazioneHttp,
- null, //(apsHelper.isModalitaCompleta() || !multitenant)?null:AccordiServizioParteSpecificaCostanti.LABEL_APS_APPLICATIVO_ESTERNO_PREFIX,
- url,nome, tipo, user, password, initcont, urlpgk,
- provurl, connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd, httpsalgoritmo,
- httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage, true,
- isConnettoreCustomUltimaImmagineSalvata,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy, forcePDND, forceOAuth,
- listExtendedConnettore, forceEnableConnettore,
- tipoProtocollo, false, false, isApplicativiServerEnabled, erogazioneServizioApplicativoServerEnabled,
- erogazioneServizioApplicativoServer, saSoggetti,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams,
- postBackViaPost);
-
- }
- else {
- dati = apsHelper.addEndPointSAServerToDatiAsHidden(dati, erogazioneServizioApplicativoServerEnabled, erogazioneServizioApplicativoServer);
-
- dati = apsHelper.addEndPointToDatiAsHidden(dati, serviceBinding, connettoreDebug,
- endpointtype, autenticazioneHttp,
- url, nome, tipo,
- user, password, initcont, urlpgk,
- provurl, connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams);
-
- }
-
- // aggiunta campi custom
- if(addPropertiesHidden) {
- dati = apsHelper.addProtocolPropertiesToDatiAsHidden(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- else {
- dati = apsHelper.addProtocolPropertiesToDatiRegistry(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- pd.setDati(dati);
- if(apsHelper.isShowGestioneWorkflowStatoDocumenti() && StatiAccordo.finale.toString().equals(asps.getStatoPackage())){
- pd.setMode(Costanti.DATA_ELEMENT_EDIT_MODE_DISABLE_NAME);
- }
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
-
- return ServletUtils.getStrutsForwardEditModeInProgress(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
- }
- if (apsHelper.isModalitaStandard() && (nomeservizio==null || "".equals(nomeservizio))) {
- switch (serviceBinding) {
- case REST:
- // il nome del servizio e' quello dell'accordo
- nomeservizio = as.getNome();
- break;
- case SOAP:
- default:
- // il nome del servizio e' quello del porttype selezionato
- nomeservizio = portType;
- break;
- }
- }
-
- String descrizioneVerificata = descrizione;
- if(modificaDescrizione) {
- descrizioneVerificata = descrizioneModificata;
- }
-
- // Controlli sui campi immessi
- boolean isOk = apsHelper.serviziCheckData(tipoOp, soggettiList,
- accordiList, asps.getNome(), asps.getTipo(), asps.getVersione(),
- nomeservizio, tiposervizio, provider,
- nomeSoggettoErogatore, tipoSoggettoErogatore, accordo, serviceBinding,
- servcorr, endpointtype, url, nome, tipo, user, password,
- initcont, urlpgk, provurl, connfact, sendas, strutsBean.wsdlimpler, strutsBean.wsdlimplfru, id,
- profilo, portType,ptList,accordoPrivato,privato,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd, httpsalgoritmo,
- httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn,versione,validazioneDocumenti,backToStato,autenticazioneHttp,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- null,null,null,null,null,
- null, null, null, null,null,null,false,
- generaPACheckSoggetto, listExtendedConnettore,
- null,null,null,null,null,null,null,
- null, null, null, null,
- tipoProtocollo,null,
- descrizioneVerificata, tipoSoggettoFruitore, nomeSoggettoFruitore,
- autenticazioneToken, tokenPolicy,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- erogazioneServizioApplicativoServerEnabled, erogazioneServizioApplicativoServer,
- canaleStato, canale, gestioneCanaliEnabled);
-
- // updateDynamic
- if(isOk) {
- strutsBean.consoleDynamicConfiguration.updateDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, apsHelper, strutsBean.protocolProperties,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps);
- }
-
- // Validazione base dei parametri custom
- if(isOk){
- try{
- apsHelper.validaProtocolProperties(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, strutsBean.protocolProperties);
- }catch(ProtocolException e){
- ControlStationCore.getLog().error(e.getMessage(),e);
- pd.setMessage(e.getMessage());
- isOk = false;
- }
- }
- // Valido i parametri custom se ho gia' passato tutta la validazione prevista
- if(isOk){
- try{
- //validazione campi dinamici
- strutsBean.consoleDynamicConfiguration.validateDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, apsHelper, strutsBean.protocolProperties,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps);
- }catch(ProtocolException e){
- ControlStationCore.getLog().error(e.getMessage(),e);
- pd.setMessage(e.getMessage());
- isOk = false;
- }
- }
-
- if (!isOk) {
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(pd, lstParm );
- portType = (portType != null && !"".equals(portType) ? portType : asps.getPortType());
- if(portTypeErased) {
- portType = null;
- }
- // preparo i campi
- List<DataElement> dati = new ArrayList<>();
- dati.add(ServletUtils.getDataElementForEditModeFinished());
-
- // update della configurazione
- strutsBean.consoleDynamicConfiguration.updateDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, apsHelper, strutsBean.protocolProperties,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps);
- dati = apsHelper.addHiddenFieldsToDati(tipoOp, id, null, null, dati);
- dati = apsHelper.addServiziToDati(dati, nomeservizio, tiposervizio, oldnomeservizio, oldtiposervizio,
- provider, tipoSoggettoErogatore, nomeSoggettoErogatore, soggettiList,
- soggettiListLabel, accordo, serviceBinding,formatoSpecifica,
- accordiList, accordiListLabel, servcorr, strutsBean.wsdlimpler, strutsBean.wsdlimplfru, tipoOp,
- id, tipiServizioCompatibiliAccordo, profilo, portType, ptList, privato,uriAccordo,
- descrizione, descrizioneModificata,
- soggettoErogatoreID.getId(),
- statoPackage,oldStatoPackage,versione,versioniProtocollo,validazioneDocumenti,
- null,null,generaPACheckSoggetto,asParteComuneCompatibili,
- null,
- null,null,null,null,null,null,false,
- null,null,null,null,null,null,null,
- tipoProtocollo,null,
- null, null, providerSoggettoFruitore, tipoSoggettoFruitore, nomeSoggettoFruitore,
- null, null, null, null, null,null,null,
- null, null, null, null,
- null,null,null,null,null,null,null,null,null,null,
- null,null,null,null,null,
- null,null,
- null,null,null,null,moreThenOneImplementation, canaleStato, canaleAPI, canale, canaleList, gestioneCanaliEnabled,
- null,null,null,null,null,
- null,
- null,null,null);
- if(apsHelper.isModalitaCompleta() || (!soggettoOperativo && !gestioneFruitori)) {
-
- boolean forceEnableConnettore = false;
- /**if( apsHelper.isModalitaStandard() && !TipiConnettore.DISABILITATO.getNome().equals(endpointtype) ) {
- forceEnableConnettore = true;
- }*/
-
- dati = apsHelper.addEndPointToDati(dati, serviceBinding, connettoreDebug, endpointtype, autenticazioneHttp,
- null, //(apsHelper.isModalitaCompleta() || !multitenant)?null:AccordiServizioParteSpecificaCostanti.LABEL_APS_APPLICATIVO_ESTERNO_PREFIX,
- url, nome,
- tipo, user, password, initcont, urlpgk, provurl,
- connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn,AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage, true,
- isConnettoreCustomUltimaImmagineSalvata,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy, forcePDND, forceOAuth,
- listExtendedConnettore, forceEnableConnettore,
- tipoProtocollo, false, false, isApplicativiServerEnabled, erogazioneServizioApplicativoServerEnabled,
- erogazioneServizioApplicativoServer, saSoggetti,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams,
- postBackViaPost);
-
- }
- else {
-
- dati = apsHelper.addEndPointSAServerToDatiAsHidden(dati, erogazioneServizioApplicativoServerEnabled, erogazioneServizioApplicativoServer);
-
- dati = apsHelper.addEndPointToDatiAsHidden(dati, serviceBinding, connettoreDebug,
- endpointtype, autenticazioneHttp,
- url, nome, tipo,
- user, password, initcont, urlpgk,
- provurl, connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams);
-
- }
-
- // aggiunta campi custom
- if(addPropertiesHidden) {
- dati = apsHelper.addProtocolPropertiesToDatiAsHidden(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- else {
- dati = apsHelper.addProtocolPropertiesToDatiRegistry(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- pd.setDati(dati);
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardEditModeCheckError(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
- // I dati dell'utente sono validi, se ha scelto di modificare lo stato da finale ad operativo visualizzo la schermata di conferma
- if( actionConfirm == null &&
- ( backToStato != null || backToConfermaModificaDatiServizio!=null)
- ){
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(pd, lstParm );
- portType = (portType != null && !"".equals(portType) ? portType : asps.getPortType());
- if(portTypeErased) {
- portType = null;
- }
- // preparo i campi
- List<DataElement> dati = new ArrayList<>();
- dati.add(ServletUtils.getDataElementForEditModeFinished());
-
- // update della configurazione
- strutsBean.consoleDynamicConfiguration.updateDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, apsHelper, strutsBean.protocolProperties,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps);
-
- dati = apsHelper.addHiddenFieldsToDati(tipoOp, id, null, null, dati);
- dati = apsHelper.addServiziToDati(dati, nomeservizio, tiposervizio, oldnomeservizio, oldtiposervizio,
- provider, tipoSoggettoErogatore, nomeSoggettoErogatore, soggettiList,
- soggettiListLabel, accordo, serviceBinding,formatoSpecifica,
- accordiList, accordiListLabel, servcorr, strutsBean.wsdlimpler, strutsBean.wsdlimplfru, tipoOp,
- id, tipiServizioCompatibiliAccordo, profilo, portType, ptList, privato,uriAccordo,
- descrizione, descrizioneModificata,
- soggettoErogatoreID.getId(),
- statoPackage,oldStatoPackage,versione,versioniProtocollo,validazioneDocumenti,
- null,null,generaPACheckSoggetto,asParteComuneCompatibili,
- null,
- null,null,null,null,null,null,false,
- null,null,null,null,null,null,null,
- tipoProtocollo,null,
- null, null, providerSoggettoFruitore, tipoSoggettoFruitore, nomeSoggettoFruitore,
- null, null, null, null, null,null,null,
- null, null, null, null,
- null,null,null,null,null,null,null,null,null,null,
- null,null,null,null,null,
- null,null,
- null,null,null,null,moreThenOneImplementation, canaleStato, canaleAPI, canale, canaleList, gestioneCanaliEnabled,
- null,null,null,null,null,
- null,
- null,null,null);
- if(apsHelper.isModalitaCompleta() || (!soggettoOperativo && !gestioneFruitori)) {
- boolean forceEnableConnettore = false;
- if( apsHelper.isModalitaStandard() && !TipiConnettore.DISABILITATO.getNome().equals(endpointtype) ) {
- forceEnableConnettore = true;
- }
-
- dati = apsHelper.addEndPointToDati(dati, serviceBinding, connettoreDebug, endpointtype, autenticazioneHttp,
- null, //(apsHelper.isModalitaCompleta() || !multitenant)?null:AccordiServizioParteSpecificaCostanti.LABEL_APS_APPLICATIVO_ESTERNO_PREFIX,
- url, nome,
- tipo, user, password, initcont, urlpgk, provurl,
- connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia,httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn,AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage, true,
- isConnettoreCustomUltimaImmagineSalvata,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy, forcePDND, forceOAuth,
- listExtendedConnettore, forceEnableConnettore,
- tipoProtocollo, false, false, isApplicativiServerEnabled, erogazioneServizioApplicativoServerEnabled,
- erogazioneServizioApplicativoServer, saSoggetti,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams,
- postBackViaPost);
-
- }
-
- dati = apsHelper.addServiziToDatiAsHidden(dati, nomeservizio, tiposervizio, provider, tipoSoggettoErogatore, nomeSoggettoErogatore, soggettiList,
- soggettiListLabel, accordo, serviceBinding,accordiList, accordiListLabel, servcorr, "", "", tipoOp,
- id, tipiServizioCompatibiliAccordo, profilo, portType, ptList, privato,uriAccordo,
- descrizione, soggettoErogatoreID.getId(),
- statoPackage,oldStatoPackage,versione,versioniProtocollo,validazioneDocumenti,
- null,null,tipoProtocollo,generaPACheckSoggetto);
- dati = apsHelper.addEndPointSAServerToDatiAsHidden(dati, erogazioneServizioApplicativoServerEnabled, erogazioneServizioApplicativoServer);
-
- dati = apsHelper.addEndPointToDatiAsHidden(dati, serviceBinding, connettoreDebug,
- endpointtype, autenticazioneHttp,
- url, nome,
- tipo, user, password, initcont, urlpgk, provurl,
- connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn,AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams);
-
- if(backToStato != null) {
- // backtostato per chiudere la modifica dopo la conferma
- DataElement de = new DataElement();
- de.setLabel(CostantiControlStation.LABEL_PARAMETRO_NOME);
- de.setValue(backToStato);
- de.setType(DataElementType.HIDDEN);
- de.setName(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_RIPRISTINA_STATO);
- dati.add(de);
- }
- if(backToConfermaModificaDatiServizio != null) {
- // backtostato per chiudere la modifica dopo la conferma
- DataElement de = new DataElement();
- de.setLabel(CostantiControlStation.LABEL_PARAMETRO_NOME);
- de.setValue(backToConfermaModificaDatiServizio);
- de.setType(DataElementType.HIDDEN);
- de.setName(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_CONFERMA_MODIFICA_DATI_SERVIZIO);
- dati.add(de);
- }
-
- // aggiunta campi custom
- if(addPropertiesHidden) {
- dati = apsHelper.addProtocolPropertiesToDatiAsHidden(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- else {
- dati = apsHelper.addProtocolPropertiesToDatiRegistry(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
-
- // aggiunta campi custom come hidden, quelli sopra vengono bruciati dal no-edit
- dati = apsHelper.addProtocolPropertiesToDatiAsHidden(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
-
- StringBuilder msgSB = new StringBuilder();
- if(backToStato != null) {
- msgSB.append("È stato richiesto di ripristinare lo stato dell''accordo [{0}] in operativo. Tale operazione permetterà successive modifiche all''accordo. Vuoi procedere?");
- }
- else if(backToConfermaModificaDatiServizio != null) {
- msgSB.append(AccordiServizioParteSpecificaCostanti.MESSAGGIO_ERRORE_MULTI_API_INFLUENZATE_MODIFICA);
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE+"Di seguito vengono elencate tutte le configurazioni coinvolte dalla modifica. Vuoi procedere?");
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- if(!listMappingPD.isEmpty()) {
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- if(listMappingPD.size()==1) {
- msgSB.append("La fruizione:");
- }
- else if(listMappingPD.size()>1) {
- msgSB.append("Le "+listMappingPD.size()+" fruizioni:");
- }
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- for (IDPortaDelegata idPortaDelegata : listMappingPD) {
- msgSB.append("- ");
- msgSB.append(apsHelper.getLabelServizioFruizione(tipoProtocollo, idPortaDelegata.getIdentificativiFruizione().getSoggettoFruitore(), idPortaDelegata.getIdentificativiFruizione().getIdServizio()));
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- }
- }
- if(!listMappingPA.isEmpty()) {
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- if(listMappingPA.size()==1) {
- msgSB.append("L'erogazione:");
- }
- else if(listMappingPA.size()>1) {
- msgSB.append(listMappingPA.size()+" erogazioni:");
- }
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- for (IDPortaApplicativa idPortaApplicativa : listMappingPA) {
- msgSB.append("- ");
- msgSB.append(apsHelper.getLabelServizioErogazione(tipoProtocollo, idPortaApplicativa.getIdentificativiErogazione().getIdServizio()));
- msgSB.append(org.openspcoop2.core.constants.Costanti.WEB_NEW_LINE);
- }
- }
- }
- String msg = msgSB.length()>0 ? msgSB.toString() : null;
-
- String pre = Costanti.HTML_MODAL_SPAN_PREFIX;
- String post = Costanti.HTML_MODAL_SPAN_SUFFIX;
- if(uriAccordo!=null) {
- pd.setMessage(pre + MessageFormat.format(msg, uriAccordo) + post, Costanti.MESSAGE_TYPE_CONFIRM);
- }
- else {
- pd.setMessage(pre + msg + post, Costanti.MESSAGE_TYPE_CONFIRM);
- }
-
- pd.setDati(dati);
-
- String[][] bottoni = {
- { Costanti.LABEL_MONITOR_BUTTON_ANNULLA,
- Costanti.LABEL_MONITOR_BUTTON_ANNULLA_CONFERMA_PREFIX +
- Costanti.LABEL_MONITOR_BUTTON_ANNULLA_CONFERMA_SUFFIX
- },
- { Costanti.LABEL_MONITOR_BUTTON_CONFERMA,
- Costanti.LABEL_MONITOR_BUTTON_ESEGUI_OPERAZIONE_CONFERMA_PREFIX +
- Costanti.LABEL_MONITOR_BUTTON_ESEGUI_OPERAZIONE_CONFERMA_SUFFIX }};
- pd.setBottoni(bottoni);
-
- // disabilito la form
- pd.disableEditMode();
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardEditModeInProgress(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
-
- // Esco immediatamente nel caso di modifica API non confermata
- // Il caso invece del ripristina viene gestito differentemente
- if(moreThenOneImplementation && actionConfirm != null && actionConfirm.equals(Costanti.PARAMETRO_ACTION_CONFIRM_VALUE_NO)){
-
- String superUser = ServletUtils.getUserLoginFromSession(session);
-
- ConsoleSearch ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);
- List<AccordoServizioParteSpecifica> listaServizi = null;
- if(apsCore.isVisioneOggettiGlobale(superUser)){
- listaServizi = apsCore.soggettiServizioList(null, ricerca,permessi, gestioneFruitori, gestioneErogatori);
- }else{
- listaServizi = apsCore.soggettiServizioList(superUser, ricerca,permessi, gestioneFruitori, gestioneErogatori);
- }
- apsHelper.prepareServiziList(ricerca, listaServizi);
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
-
- if(vistaErogazioni != null && vistaErogazioni.booleanValue()) {
- ErogazioniHelper erogazioniHelper = new ErogazioniHelper(request, pd, session);
- erogazioniHelper.prepareErogazioneChange(TipoOperazione.CHANGE, asps, idSoggettoFruitore);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, ErogazioniCostanti.OBJECT_NAME_ASPS_EROGAZIONI, ForwardParams.CHANGE());
- }
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
-
- // Modifico i dati del servizio nel db
-
- boolean cambioAccordoAlreadyExists = false;
- if(
- (gestioneFruitori || gestioneErogatori)
- &&
- // Per adesso non gestito, vedi spiegazione nel metodo
- (AccordiServizioParteSpecificaCostanti.isModificaDatiIdentificativiVersoApsEsistente())
- ){
- IDServizio nuovoIdAps = apsHelper.getIDServizioFromValues(tiposervizio, nomeservizio, tipoSoggettoErogatore, nomeSoggettoErogatore, versione);
- String nuovoURI = IDServizioFactory.getInstance().getUriFromIDServizio(nuovoIdAps);
- String oldURI = IDServizioFactory.getInstance().getUriFromIDServizio(oldIdAps);
- if(!nuovoURI.equals(oldURI)) {
- cambioAccordoAlreadyExists = apsCore.existsAccordoServizioParteSpecifica(nuovoIdAps);
- }
- }
-
- asps = apsCore.getAccordoServizioParteSpecifica(Long.parseLong(id));
- fruitore = null;
- if(gestioneFruitori && idSoggettoFruitore!=null) {
- // In questa modalità ci deve essere solo un fruitore
- for (Fruitore check : asps.getFruitoreList()) {
- if(check.getTipo().equals(idSoggettoFruitore.getTipo()) && check.getNome().equals(idSoggettoFruitore.getNome())) {
- fruitore = check;
- break;
- }
- }
- }
-
-
- // nuovi valori
-
- asps.setTipoSoggettoErogatore(tipoSoggettoErogatore);
- asps.setNomeSoggettoErogatore(nomeSoggettoErogatore);
-
- asps.setNome(nomeservizio);
- asps.setTipo(tiposervizio);
- asps.setDescrizione(descrizione);
- if (!"-".equals(profilo))
- asps.setVersioneProtocollo(profilo);
- else
- asps.setVersioneProtocollo(null);
- asps.setPrivato(privato);
- if (portType != null && !"".equals(portType) && !"-".equals(portType))
- asps.setPortType(portType);
- else
- asps.setPortType(null);
- // Connettore
- Connettore newConnettore = new Connettore();
- newConnettore.setId(asps.getConfigurazioneServizio().getConnettore().getId());
- newConnettore.setNome(asps.getConfigurazioneServizio().getConnettore().getNome());
- if (endpointtype.equals(ConnettoriCostanti.DEFAULT_CONNETTORE_TYPE_CUSTOM))
- newConnettore.setTipo(tipoconn);
- else
- newConnettore.setTipo(endpointtype);
- String oldConnT = asps.getConfigurazioneServizio().getConnettore().getTipo();
- if ((asps.getConfigurazioneServizio().getConnettore().getCustom()!=null && asps.getConfigurazioneServizio().getConnettore().getCustom()) &&
- !asps.getConfigurazioneServizio().getConnettore().getTipo().equals(CostantiDB.CONNETTORE_TIPO_HTTPS) &&
- !asps.getConfigurazioneServizio().getConnettore().getTipo().equals(CostantiDB.CONNETTORE_TIPO_FILE) &&
- !asps.getConfigurazioneServizio().getConnettore().getTipo().equals(CostantiDB.CONNETTORE_TIPO_STATUS)){
- oldConnT = ConnettoriCostanti.DEFAULT_CONNETTORE_TYPE_CUSTOM;
- // mantengo vecchie proprieta connettore custom
- for(int i=0; i<asps.getConfigurazioneServizio().getConnettore().sizePropertyList(); i++){
- newConnettore.addProperty(asps.getConfigurazioneServizio().getConnettore().getProperty(i));
- }
- }
- apsHelper.fillConnettore(newConnettore, connettoreDebug, endpointtype, oldConnT,
- tipoconn, url, nome,
- tipo, user, password, initcont, urlpgk, provurl,
- connfact, sendas,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- tokenPolicy,
- apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams,
- listExtendedConnettore);
- asps.getConfigurazioneServizio().setConnettore(newConnettore);
- // Accordo
- as = apcCore.getAccordoServizioSintetico(Long.parseLong(accordo));
- asps.setAccordoServizioParteComune(idAccordoFactory.getUriFromAccordo(as));
- asps.setIdAccordo(as.getId());
- asps.setTipologiaServizio(((servcorr != null) && servcorr.equals(Costanti.CHECK_BOX_ENABLED)) ? TipologiaServizio.CORRELATO : TipologiaServizio.NORMALE);
- IDServizio oldIDServizioForUpdate =
- IDServizioFactory.getInstance().getIDServizioFromValues(oldtiposervizio, oldnomeservizio,
- oldtiposoggetto, oldnomesoggetto,
- (oldversioneaccordo!=null && !"".equals(oldversioneaccordo)) ? Integer.parseInt(oldversioneaccordo) : 1);
- asps.setOldIDServizioForUpdate(oldIDServizioForUpdate);
-
- // Versione
- if(apsCore.isSupportatoVersionamentoAccordiServizioParteSpecifica(tipoProtocollo)){
- if(versione!=null && !"".equals(versione)){
- asps.setVersione(Integer.parseInt(versione));
- }
- else{
- asps.setVersione(1);
- }
- }else{
- asps.setVersione(1);
- }
- // stato
- asps.setStatoPackage(statoPackage);
- // descrizioneModificata
- if(modificaDescrizione) {
- if(gestioneFruitori) {
- if(fruitore!=null) {
- fruitore.setDescrizione(descrizioneModificata);
- }
- }
- else {
- asps.setDescrizione(descrizioneModificata);
- }
- }
- // Check stato
- if(apsHelper.isShowGestioneWorkflowStatoDocumenti() && !cambioAccordoAlreadyExists){
- try{
- boolean gestioneWsdlImplementativo = apcCore.showPortiAccesso(tipoProtocollo, serviceBinding, formatoSpecifica);
- boolean checkConnettore = !gestioneFruitori && !gestioneErogatori;
- apsCore.validaStatoAccordoServizioParteSpecifica(asps, gestioneWsdlImplementativo, checkConnettore);
- }catch(ValidazioneStatoPackageException validazioneException){
- // Setto messaggio di errore
- pd.setMessage(validazioneException.toString());
- // setto la barra del titolo
- ServletUtils.setPageDataTitle(pd, lstParm );
- portType = (portType != null && !"".equals(portType) ? portType : asps.getPortType());
- // preparo i campi
- List<DataElement> dati = new ArrayList<>();
- dati.add(ServletUtils.getDataElementForEditModeFinished());
-
- // update della configurazione
- strutsBean.consoleDynamicConfiguration.updateDynamicConfigAccordoServizioParteSpecifica(strutsBean.consoleConfiguration, strutsBean.consoleOperationType, apsHelper, strutsBean.protocolProperties,
- strutsBean.registryReader, strutsBean.configRegistryReader, oldIdAps);
- dati = apsHelper.addHiddenFieldsToDati(tipoOp, id, null, null, dati);
- dati = apsHelper.addServiziToDati(dati, nomeservizio, tiposervizio, oldnomeservizio, oldtiposervizio,
- provider, tipoSoggettoErogatore, nomeSoggettoErogatore, soggettiList,
- soggettiListLabel, accordo, serviceBinding,formatoSpecifica,
- accordiList, accordiListLabel, servcorr, strutsBean.wsdlimpler, strutsBean.wsdlimplfru, tipoOp,
- id, tipiServizioCompatibiliAccordo, profilo, portType, ptList, privato,uriAccordo,
- descrizione, descrizioneModificata,
- soggettoErogatoreID.getId(),statoPackage,oldStatoPackage,versione,versioniProtocollo,validazioneDocumenti,
- null,null,generaPACheckSoggetto,asParteComuneCompatibili,
- null,
- null,null,null,null,null,null,false,
- null,null,null,null,null,null,null,
- tipoProtocollo,null,
- null, null, providerSoggettoFruitore, tipoSoggettoFruitore, nomeSoggettoFruitore,
- null, null, null, null, null,null,null,
- null, null, null, null,
- null,null,null,null,null,null,null,null,null,null,
- null,null,null,null,null,
- null,null,
- null,null,null,null,moreThenOneImplementation, canaleStato, canaleAPI, canale, canaleList, gestioneCanaliEnabled,
- null,null,null,null,null,
- null,
- null,null,null);
- if(apsHelper.isModalitaCompleta() || (!soggettoOperativo && !gestioneFruitori)) {
-
- boolean forceEnableConnettore = false;
- /**if( apsHelper.isModalitaStandard() && !TipiConnettore.DISABILITATO.getNome().equals(endpointtype) ) {
- forceEnableConnettore = true;
- }*/
-
- dati = apsHelper.addEndPointToDati(dati, serviceBinding, connettoreDebug, endpointtype, autenticazioneHttp,
- null, //(apsHelper.isModalitaCompleta() || !multitenant)?null:AccordiServizioParteSpecificaCostanti.LABEL_APS_APPLICATIVO_ESTERNO_PREFIX,
- url,
- nome, tipo, user, password, initcont, urlpgk,
- provurl, connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato,
- httpskeystore, httpspwdprivatekeytrust,
- httpspathkey, httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null,
- oldStatoPackage, true,
- isConnettoreCustomUltimaImmagineSalvata,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy, forcePDND, forceOAuth,
- listExtendedConnettore, forceEnableConnettore,
- tipoProtocollo, false, false, isApplicativiServerEnabled, erogazioneServizioApplicativoServerEnabled,
- erogazioneServizioApplicativoServer, saSoggetti,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams,
- postBackViaPost);
-
- }
- else {
- dati = apsHelper.addEndPointSAServerToDatiAsHidden(dati, erogazioneServizioApplicativoServerEnabled, erogazioneServizioApplicativoServer);
-
- dati = apsHelper.addEndPointToDatiAsHidden(dati, serviceBinding, connettoreDebug,
- endpointtype, autenticazioneHttp,
- url, nome, tipo,
- user, password, initcont, urlpgk,
- provurl, connfact, sendas, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,tipoOp,
- httpsurl, httpstipologia, httpshostverify,
- httpsTrustVerifyCert, httpspath, httpstipo, httpspwd,
- httpsalgoritmo, httpsstato, httpskeystore,
- httpspwdprivatekeytrust, httpspathkey,
- httpstipokey, httpspwdkey,
- httpspwdprivatekey, httpsalgoritmokey,
- httpsKeyAlias, httpsTrustStoreCRLs, httpsTrustStoreOCSPPolicy, httpsKeyStoreBYOKPolicy,
- tipoconn, AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_CHANGE, id,
- nomeservizio, tiposervizio, null, null, null,
- null, oldStatoPackage,
- proxyEnabled, proxyHostname, proxyPort, proxyUsername, proxyPassword,
- tempiRispostaEnabled, tempiRispostaConnectionTimeout, tempiRispostaReadTimeout, tempiRispostaTempoMedioRisposta,
- opzioniAvanzate, transferMode, transferModeChunkSize, redirectMode, redirectMaxHop,
- requestOutputFileName, requestOutputFileNamePermissions, requestOutputFileNameHeaders, requestOutputFileNameHeadersPermissions,
- requestOutputParentDirCreateIfNotExists,requestOutputOverwriteIfExists,
- responseInputMode, responseInputFileName, responseInputFileNameHeaders, responseInputDeleteAfterRead, responseInputWaitTime,
- autenticazioneToken, tokenPolicy,
- autenticazioneApiKey, useOAS3Names, useAppId, apiKeyHeader, apiKeyValue, appIdHeader, appIdValue,
- connettoreStatusParams);
-
- }
-
- // aggiunta campi custom
- if(addPropertiesHidden) {
- dati = apsHelper.addProtocolPropertiesToDatiAsHidden(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- else {
- dati = apsHelper.addProtocolPropertiesToDatiRegistry(dati, strutsBean.consoleConfiguration,strutsBean.consoleOperationType, strutsBean.protocolProperties,oldProtocolPropertyList,propertiesProprietario);
- }
- pd.setDati(dati);
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
- return ServletUtils.getStrutsForwardGeneralError(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
- }
- String superUser = ServletUtils.getUserLoginFromSession(session);
- //imposto properties custom
- asps.setProtocolPropertyList(ProtocolPropertiesUtils.toProtocolPropertiesRegistry(strutsBean.protocolProperties, strutsBean.consoleOperationType, oldProtocolPropertyList));
- if(gestioneFruitori && fruitore!=null) {
- if(modificaDescrizione || modificaProfilo) {
- apsCore.setDataAggiornamentoFruitore(fruitore);
- }
- }
- else if(gestioneErogatori &&
- (modificaDescrizione || modificaProfilo)
- ){
- apsCore.setDataAggiornamentoServizio(asps); // per evitare l'aggiornamento dei fruitori
- }
-
- List<Object> oggettiDaAggiornare = AccordiServizioParteSpecificaUtilities.getOggettiDaAggiornare(asps, apsCore);
-
- // eseguo l'aggiornamento
- apsCore.performUpdateOperation(superUser, apsHelper.smista(), oggettiDaAggiornare.toArray());
- ConsoleSearch ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);
- String newUri = IDServizioFactory.getInstance().getUriFromAccordo(asps);
- String oldUri = IDServizioFactory.getInstance().getUriFromIDServizio(asps.getOldIDServizioForUpdate());
- if (!newUri.equals(oldUri) || cambiaAPI) {
- ServletUtils.removeRisultatiRicercaFromSession(request, session, Liste.SERVIZI);
- }
-
- List<AccordoServizioParteSpecifica> listaServizi = null;
- if(apsCore.isVisioneOggettiGlobale(superUser)){
- listaServizi = apsCore.soggettiServizioList(null, ricerca,permessi, gestioneFruitori, gestioneErogatori);
- }else{
- listaServizi = apsCore.soggettiServizioList(superUser, ricerca,permessi, gestioneFruitori, gestioneErogatori);
- }
- apsHelper.prepareServiziList(ricerca, listaServizi);
- ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
-
- if(vistaErogazioni != null && vistaErogazioni.booleanValue()) {
- ErogazioniHelper erogazioniHelper = new ErogazioniHelper(request, pd, session);
- erogazioniHelper.prepareErogazioneChange(TipoOperazione.CHANGE, asps, idSoggettoFruitore);
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, ErogazioniCostanti.OBJECT_NAME_ASPS_EROGAZIONI, ForwardParams.CHANGE());
- }
- return ServletUtils.getStrutsForwardEditModeFinished(mapping, AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- } catch (Exception e) {
- return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping,
- AccordiServizioParteSpecificaCostanti.OBJECT_NAME_APS,
- ForwardParams.CHANGE());
- }
- }
- }