DriverConfigurazioneDB_serviziApplicativiLIB.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.core.config.driver.db;
- import static org.openspcoop2.core.constants.CostantiDB.CREATE;
- import static org.openspcoop2.core.constants.CostantiDB.DELETE;
- import static org.openspcoop2.core.constants.CostantiDB.UPDATE;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import java.text.MessageFormat;
- import java.util.List;
- import org.openspcoop2.core.byok.BYOKUtilities;
- import org.openspcoop2.core.byok.BYOKWrappedValue;
- import org.openspcoop2.core.byok.IDriverBYOK;
- import org.openspcoop2.core.commons.CoreException;
- import org.openspcoop2.core.commons.DBUtils;
- import org.openspcoop2.core.config.Connettore;
- import org.openspcoop2.core.config.Credenziali;
- import org.openspcoop2.core.config.InvocazioneCredenziali;
- import org.openspcoop2.core.config.InvocazionePorta;
- import org.openspcoop2.core.config.InvocazionePortaGestioneErrore;
- import org.openspcoop2.core.config.InvocazioneServizio;
- import org.openspcoop2.core.config.Proprieta;
- import org.openspcoop2.core.config.RispostaAsincrona;
- import org.openspcoop2.core.config.Ruolo;
- import org.openspcoop2.core.config.ServizioApplicativo;
- import org.openspcoop2.core.config.constants.CostantiConfigurazione;
- import org.openspcoop2.core.config.constants.TipologiaErogazione;
- import org.openspcoop2.core.config.constants.TipologiaFruizione;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.constants.ProprietariProtocolProperty;
- import org.openspcoop2.core.constants.TipiConnettore;
- import org.openspcoop2.utils.certificate.CertificateUtils;
- import org.openspcoop2.utils.certificate.PrincipalType;
- import org.openspcoop2.utils.date.DateManager;
- import org.openspcoop2.utils.jdbc.IJDBCAdapter;
- import org.openspcoop2.utils.jdbc.JDBCAdapterFactory;
- import org.openspcoop2.utils.jdbc.JDBCUtilities;
- import org.openspcoop2.utils.sql.ISQLQueryObject;
- import org.openspcoop2.utils.sql.SQLObjectFactory;
- /**
- * DriverConfigurazioneDB_serviziApplicativiLIB
- *
- * @author Stefano Corallo - corallo@link.it
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DriverConfigurazioneDB_serviziApplicativiLIB {
-
- /**
- *
- * @param type
- * @param aSA
- * @param con
- * @return id
- * @throws DriverConfigurazioneException
- */
- public static long CRUDServizioApplicativo(int type, ServizioApplicativo aSA, Connection con, IDriverBYOK driverBYOK) throws DriverConfigurazioneException {
- if (aSA == null)
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo] Servizio Applicativo non valido.");
- String nomeSA = aSA.getNome();
- String tipoProprietario = aSA.getTipoSoggettoProprietario();
- String nomeProprietario = aSA.getNomeSoggettoProprietario();
- if (nomeSA == null || nomeSA.equals(""))
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo] Nome Servizio Applicativo non valido.");
- if (tipoProprietario == null || tipoProprietario.equals(""))
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo] Tipo Proprietario Servizio Applicativo non valido.");
- if (nomeProprietario == null || nomeProprietario.equals(""))
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo] Nome Proprietario Servizio Applicativo non valido.");
- PreparedStatement stm = null;
- String sqlQuery;
- PreparedStatement stmQuery = null;
- ResultSet rs = null;
- PreparedStatement stm2 = null;
- int n = 0;
- try {
- String tipoSA = aSA.getTipo();
- int useAsClient = aSA.getUseAsClient() ? CostantiDB.TRUE : CostantiDB.FALSE;
- String descrizione = aSA.getDescrizione();
- DriverConfigurazioneDBLib.logDebug("get ID Soggetto con tipo["+tipoProprietario+"] e nome["+nomeProprietario+"]");
- long idProprietario = DBUtils.getIdSoggetto(nomeProprietario, tipoProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- DriverConfigurazioneDBLib.logDebug("get ID Soggetto con tipo["+tipoProprietario+"] e nome["+nomeProprietario+"] : "+idProprietario);
- InvocazionePorta invPorta = aSA.getInvocazionePorta();
- InvocazioneServizio invServizio = aSA.getInvocazioneServizio();
- RispostaAsincrona ricezione = aSA.getRispostaAsincrona();
- List<Proprieta> proprieta = aSA.getProprietaList();
- Connettore connettoreRisp = null;
- Connettore connettoreInv = null;
- long idConnettoreRisp = 0;
- long idConnettoreInv = 0;
- long idServizioApplicativo = 0;
- Credenziali credenzialiInvocazionePorta = null;
- InvocazioneCredenziali credenzialiInvocazione = null;
- InvocazionePortaGestioneErrore gestErr = null;
- String fault = null;
- switch (type) {
- case CREATE:
-
- String utenteRichiedente = null;
- if(aSA.getProprietaOggetto()!=null && aSA.getProprietaOggetto().getUtenteRichiedente()!=null) {
- utenteRichiedente = aSA.getProprietaOggetto().getUtenteRichiedente();
- }
- else {
- utenteRichiedente = DBUtils.getSuperUserSoggettoSafe(DriverConfigurazioneDBLib.log, "CRUDPortaApplicativa",
- idProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- }
-
- Timestamp dataCreazione = null;
- if(aSA.getProprietaOggetto()!=null && aSA.getProprietaOggetto().getDataCreazione()!=null) {
- dataCreazione = new Timestamp(aSA.getProprietaOggetto().getDataCreazione().getTime());
- }
- else if(aSA.getOraRegistrazione()!=null){
- dataCreazione = new Timestamp(aSA.getOraRegistrazione().getTime());
- }
- else {
- dataCreazione = DateManager.getTimestamp();
- }
-
- // create
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObject.addInsertField("nome", "?");
- sqlQueryObject.addInsertField("tipo", "?");
- sqlQueryObject.addInsertField("as_client", "?");
- sqlQueryObject.addInsertField("descrizione", "?");
- sqlQueryObject.addInsertField("sbustamentorisp", "?");
- sqlQueryObject.addInsertField("sbustamento_protocol_info_risp", "?");
- sqlQueryObject.addInsertField("getmsgrisp", "?");
- sqlQueryObject.addInsertField("tipoauthrisp", "?");
- sqlQueryObject.addInsertField("utenterisp", "?");
- sqlQueryObject.addInsertField("passwordrisp", "?");
- sqlQueryObject.addInsertField("enc_passwordrisp", "?");
- sqlQueryObject.addInsertField("id_connettore_risp", "?");
- sqlQueryObject.addInsertField("sbustamentoinv", "?");
- sqlQueryObject.addInsertField("sbustamento_protocol_info_inv", "?");
- sqlQueryObject.addInsertField("getmsginv", "?");
- sqlQueryObject.addInsertField("tipoauthinv", "?");
- sqlQueryObject.addInsertField("utenteinv", "?");
- sqlQueryObject.addInsertField("passwordinv", "?");
- sqlQueryObject.addInsertField("enc_passwordinv", "?");
- sqlQueryObject.addInsertField("id_connettore_inv", "?");
- sqlQueryObject.addInsertField("id_soggetto", "?");
- sqlQueryObject.addInsertField("fault", "?");
- sqlQueryObject.addInsertField("tipoauth", "?");
- sqlQueryObject.addInsertField("utente", "?");
- sqlQueryObject.addInsertField("password", "?");
- sqlQueryObject.addInsertField("subject", "?");
- sqlQueryObject.addInsertField("cn_subject", "?");
- sqlQueryObject.addInsertField("issuer", "?");
- sqlQueryObject.addInsertField("cn_issuer", "?");
- sqlQueryObject.addInsertField("certificate", "?");
- sqlQueryObject.addInsertField("cert_strict_verification", "?");
- sqlQueryObject.addInsertField("token_policy", "?");
- sqlQueryObject.addInsertField("invio_x_rif_inv", "?");
- sqlQueryObject.addInsertField("risposta_x_rif_inv", "?");
- sqlQueryObject.addInsertField("invio_x_rif", "?");
- sqlQueryObject.addInsertField("invio_x_rif_risp", "?");
- sqlQueryObject.addInsertField("risposta_x_rif_risp", "?");
- sqlQueryObject.addInsertField("sbustamento_protocol_info", "?");
- sqlQueryObject.addInsertField("fault_actor", "?");
- sqlQueryObject.addInsertField("generic_fault_code", "?");
- sqlQueryObject.addInsertField("prefix_fault_code", "?");
- sqlQueryObject.addInsertField("tipologia_fruizione", "?");
- sqlQueryObject.addInsertField("tipologia_erogazione", "?");
- if(utenteRichiedente!=null) {
- sqlQueryObject.addInsertField(CostantiDB.PROPRIETA_OGGETTO_UTENTE_RICHIEDENTE, "?");
- }
- if(dataCreazione!=null) {
- sqlQueryObject.addInsertField(CostantiDB.PROPRIETA_OGGETTO_DATA_CREAZIONE, "?");
- }
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
- // creo i connettori, ma disabilitati
- // connettore risp
- //il nome del connettore deve essere univoco Connettore[RISP o INV]_nomeSA+tipoSoggetto+nomeSoggetto
- connettoreRisp = new Connettore();
- connettoreRisp.setNome("ConnettoreRISP_" + aSA.getNome()+"_"+aSA.getTipoSoggettoProprietario()+aSA.getNomeSoggettoProprietario());
- connettoreRisp.setTipo(TipiConnettore.DISABILITATO.getNome());
- //Creo il connettore disabilitato
- idConnettoreRisp = DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(1, connettoreRisp, con, driverBYOK);
- //Se il connettore mi era stato passato allora devo aggiornare il connettore con i dati giusti
- if(ricezione!=null && ricezione.getConnettore()!=null){
- Connettore connettore= ricezione.getConnettore();
- //setto l'id del connettore e il nome che aveva prima
- connettore.setId(idConnettoreRisp);
- connettore.setNome(connettoreRisp.getNome());//il nome DEVE essere quello creato in precedenza per assicurarsi che sia univoco
- DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(CostantiDB.UPDATE, connettore, con, driverBYOK);
- }
- // connettore inv
- connettoreInv = new Connettore();
- connettoreInv.setNome("ConnettoreINV_" + aSA.getNome()+"_"+aSA.getTipoSoggettoProprietario()+aSA.getNomeSoggettoProprietario());
- connettoreInv.setTipo(TipiConnettore.DISABILITATO.getNome());
- idConnettoreInv = DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(1, connettoreInv, con, driverBYOK);
- //setto i valori corretti del connettore se mi era stato passato
- if(invServizio!=null && invServizio.getConnettore()!=null){
- Connettore connettore = invServizio.getConnettore();
- connettore.setId(idConnettoreInv);
- connettore.setNome(connettoreInv.getNome());//il nome DEVE essere quello creato in precedenza per assicurarsi che sia univoco
- DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(CostantiDB.UPDATE, connettore, con, driverBYOK);
- }
- int index = 1;
-
- stm.setString(index++, nomeSA);
- stm.setString(index++, tipoSA);
- stm.setInt(index++, useAsClient);
- stm.setString(index++, descrizione);
- // RicezioneRisposta
- stm.setInt(index++, (ricezione != null && (CostantiConfigurazione.ABILITATO.equals(ricezione.getSbustamentoSoap())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setInt(index++, (ricezione != null && (!CostantiConfigurazione.DISABILITATO.equals(ricezione.getSbustamentoInformazioniProtocollo())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setString(index++, ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getGetMessage()) : null);
- // setto credenziali risp
- credenzialiInvocazione = ricezione != null ? ricezione.getCredenziali() : null;
- stm.setString(index++, (ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getAutenticazione()) : null)); //l'autenticazione e' quella della risposta asincrona
- stm.setString(index++, (credenzialiInvocazione != null ? credenzialiInvocazione.getUser() : null));
-
- String plainValue = (credenzialiInvocazione != null ? credenzialiInvocazione.getPassword() : null);
- String encValue = null;
- if(driverBYOK!=null && plainValue!=null) {
- BYOKWrappedValue byokValue = driverBYOK.wrap(plainValue);
- if(byokValue!=null) {
- encValue = byokValue.getWrappedValue();
- plainValue = byokValue.getWrappedPlainValue();
- }
- }
- stm.setString(index++, plainValue);
- stm.setString(index++, encValue);
-
- // setto idconnettore risp
- stm.setLong(index++, idConnettoreRisp);
- // InvocazioneServizio
- stm.setInt(index++, (invServizio != null && (CostantiConfigurazione.ABILITATO.equals(invServizio.getSbustamentoSoap())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setInt(index++, (invServizio != null && (!CostantiConfigurazione.DISABILITATO.equals(invServizio.getSbustamentoInformazioniProtocollo())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setString(index++, invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getGetMessage()) : null);
- // setto credenziali inv
- credenzialiInvocazione = invServizio != null ? invServizio.getCredenziali() : null;
- stm.setString(index++, (invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getAutenticazione()) : null));//l'autenticazione e' quella dell invocazione servizio
- stm.setString(index++, (credenzialiInvocazione != null ? credenzialiInvocazione.getUser() : null));
-
- plainValue = (credenzialiInvocazione != null ? credenzialiInvocazione.getPassword() : null);
- encValue = null;
- if(driverBYOK!=null && plainValue!=null) {
- BYOKWrappedValue byokValue = driverBYOK.wrap(plainValue);
- if(byokValue!=null) {
- encValue = byokValue.getWrappedValue();
- plainValue = byokValue.getWrappedPlainValue();
- }
- }
- stm.setString(index++, plainValue);
- stm.setString(index++, encValue);
-
- // setto idconnettore inv
- stm.setLong(index++, idConnettoreInv);
- // idsoggetto proprietario
- stm.setLong(index++, idProprietario);
- // InvocazionePorta
- gestErr = invPorta != null ? invPorta.getGestioneErrore() : null;
- fault = (gestErr != null ? DriverConfigurazioneDBLib.getValue(gestErr.getFault()) : null);
- stm.setString(index++, fault);
- // setto credenziali invocaizone porta
- // per il momento c'e' soltato una credenziale,quindi un solo
- // oggetto nella lista
- credenzialiInvocazionePorta = (invPorta != null && invPorta.sizeCredenzialiList() > 0 ? invPorta.getCredenziali(0) : null);
- stm.setString(index++, (credenzialiInvocazionePorta != null ? DriverConfigurazioneDBLib.getValue(credenzialiInvocazionePorta.getTipo()) : null));
- stm.setString(index++, (credenzialiInvocazionePorta != null ? credenzialiInvocazionePorta.getUser() : null));
- stm.setString(index++, (credenzialiInvocazionePorta != null ? credenzialiInvocazionePorta.getPassword() : null));
-
- String subject = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getSubject()!=null && !"".equals(credenzialiInvocazionePorta.getSubject()))
- subject = credenzialiInvocazionePorta.getSubject();
- stm.setString(index++, (subject != null ? CertificateUtils.formatPrincipal(subject, PrincipalType.SUBJECT) : null));
- String subjectCN = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getCnSubject()!=null && !"".equals(credenzialiInvocazionePorta.getCnSubject()))
- subjectCN = credenzialiInvocazionePorta.getCnSubject();
- stm.setString(index++, subjectCN);
-
- String issuer = null;
- if(credenzialiInvocazionePorta != null && org.openspcoop2.core.config.constants.CredenzialeTipo.APIKEY.equals(credenzialiInvocazionePorta.getTipo())) {
- stm.setString(index++, CostantiDB.getIssuerApiKey(credenzialiInvocazionePorta.isAppId()));
- }
- else {
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getIssuer()!=null && !"".equals(credenzialiInvocazionePorta.getIssuer()))
- issuer = credenzialiInvocazionePorta.getIssuer();
- stm.setString(index++, (issuer != null ? CertificateUtils.formatPrincipal(issuer, PrincipalType.ISSUER) : null));
- }
- String issuerCN = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getCnIssuer()!=null && !"".equals(credenzialiInvocazionePorta.getCnIssuer()))
- issuerCN = credenzialiInvocazionePorta.getCnIssuer();
- stm.setString(index++, issuerCN);
-
- byte [] certificate = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getCertificate()!=null) {
- certificate = credenzialiInvocazionePorta.getCertificate();
- }
- IJDBCAdapter jdbcAdapter = JDBCAdapterFactory.createJDBCAdapter(DriverConfigurazioneDBLib.tipoDB);
- jdbcAdapter.setBinaryData(stm, index++, certificate);
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.isCertificateStrictVerification()) {
- stm.setInt(index++, CostantiDB.TRUE);
- }
- else {
- stm.setInt(index++, CostantiDB.FALSE);
- }
-
- stm.setString(index++, credenzialiInvocazionePorta!=null ? credenzialiInvocazionePorta.getTokenPolicy() : null);
- // aggiungo gestione invio/risposta per riferimento
- // invocazione servizio
- stm.setString(index++, invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getInvioPerRiferimento()) : null);
- stm.setString(index++, invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getRispostaPerRiferimento()) : null);
- // invocazione porta
- stm.setString(index++, invPorta != null ? DriverConfigurazioneDBLib.getValue(invPorta.getInvioPerRiferimento()) : null);
- // ricezione risposta
- stm.setString(index++, ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getInvioPerRiferimento()) : null);
- stm.setString(index++, ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getRispostaPerRiferimento()) : null);
- // sbustamento info protocolo
- stm.setInt(index++, (invPorta != null && (!CostantiConfigurazione.DISABILITATO.equals(invPorta.getSbustamentoInformazioniProtocollo())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- //Invocazione Porta : fault_actor, generic_fault_code, prefix_fault_code
- stm.setString(index++, gestErr!=null ? gestErr.getFaultActor() : null);
- stm.setString(index++, gestErr!=null ? DriverConfigurazioneDBLib.getValue(gestErr.getGenericFaultCode()) : null);
- stm.setString(index++, gestErr!=null ? gestErr.getPrefixFaultCode() : null);
-
- //tipologia erogazione/fruizione
- stm.setString(index++, aSA.getTipologiaFruizione()!=null ? TipologiaFruizione.valueOf(aSA.getTipologiaFruizione().toUpperCase()).toString() : TipologiaFruizione.DISABILITATO.toString());
- stm.setString(index++, aSA.getTipologiaErogazione()!=null ? TipologiaErogazione.valueOf(aSA.getTipologiaErogazione().toUpperCase()).toString() : TipologiaErogazione.DISABILITATO.toString());
-
- if(utenteRichiedente!=null) {
- stm.setString(index++, utenteRichiedente);
- }
-
- if(dataCreazione!=null) {
- stm.setTimestamp(index++, dataCreazione);
- }
-
- n = stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDBLib.logDebug("Inserted " + n + " row(s)");
- try {
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_soggetto = ?");
- sqlQueryObject.addWhereCondition("nome = ?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLQuery();
- stmQuery = con.prepareStatement(sqlQuery);
- stmQuery.setLong(1, idProprietario);
- stmQuery.setString(2, nomeSA);
-
- rs = stmQuery.executeQuery();
-
- if (rs.next()) {
- idServizioApplicativo = rs.getLong("id");
- aSA.setId(idServizioApplicativo);
- } else {
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo(CREATE)] Impossibile trovare il servizio appena creato.");
- }
- }finally {
- if(rs!=null) {
- rs.close();
- rs = null;
- }
- if(stmQuery!=null) {
- stmQuery.close();
- stmQuery = null;
- }
- }
-
- // GestioneErrore
- if(aSA.getRispostaAsincrona()!=null && aSA.getRispostaAsincrona().getGestioneErrore()!=null){
-
- DriverConfigurazioneDB_gestioneErroreLIB.CRUDGestioneErroreServizioApplicativo(CostantiDB.CREATE,
- aSA.getRispostaAsincrona().getGestioneErrore(), idProprietario, idServizioApplicativo, false, con);
-
- try {
- ISQLQueryObject sqlQueryObjectUpdate = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObjectUpdate.addUpdateTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObjectUpdate.addUpdateField("id_gestione_errore_risp", "?");
- sqlQueryObjectUpdate.addWhereCondition("id = ?");
- stm2 = con.prepareStatement(sqlQueryObjectUpdate.createSQLUpdate());
- stm2.setLong(1, aSA.getRispostaAsincrona().getGestioneErrore().getId());
- stm2.setLong(2, idServizioApplicativo);
- stm2.executeUpdate();
- }finally {
- if(stm2!=null) {
- stm2.close();
- stm2 = null;
- }
- }
-
- }
-
- // GestioneErrore
- if(aSA.getInvocazioneServizio()!=null && aSA.getInvocazioneServizio().getGestioneErrore()!=null){
-
- DriverConfigurazioneDB_gestioneErroreLIB.CRUDGestioneErroreServizioApplicativo(CostantiDB.CREATE,
- aSA.getInvocazioneServizio().getGestioneErrore(), idProprietario, idServizioApplicativo, true, con);
-
- try {
- ISQLQueryObject sqlQueryObjectUpdate = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObjectUpdate.addUpdateTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObjectUpdate.addUpdateField("id_gestione_errore_inv", "?");
- sqlQueryObjectUpdate.addWhereCondition("id = ?");
- stm2 = con.prepareStatement(sqlQueryObjectUpdate.createSQLUpdate());
- stm2.setLong(1, aSA.getInvocazioneServizio().getGestioneErrore().getId());
- stm2.setLong(2, idServizioApplicativo);
- stm2.executeUpdate();
- }finally {
- if(stm2!=null) {
- stm2.close();
- stm2 = null;
- }
- }
- }
-
- // Ruoli
- n=0;
- if(invPorta!=null && invPorta.getRuoli()!=null && invPorta.getRuoli().sizeRuoloList()>0){
- for (int i = 0; i < invPorta.getRuoli().sizeRuoloList(); i++) {
- Ruolo ruolo = invPorta.getRuoli().getRuolo(i);
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
- sqlQueryObject.addInsertField("id_servizio_applicativo", "?");
- sqlQueryObject.addInsertField("ruolo", "?");
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, aSA.getId());
- stm.setString(2, ruolo.getNome());
- stm.executeUpdate();
- stm.close();
- n++;
- DriverConfigurazioneDBLib.logDebug("Aggiunto ruolo[" + ruolo.getNome() + "] al servizioApplicativo "+idServizioApplicativo);
- }
- }
-
- DriverConfigurazioneDBLib.logDebug("Aggiunti " + n + " ruoli al servizioApplicativo "+idServizioApplicativo);
-
-
- // Credenziali (le credenziali in questa tabella partono dal numero maggiore di 1)
- n=0;
- if(invPorta!=null && invPorta.sizeCredenzialiList()>1){
- for (int i = 1; i < invPorta.sizeCredenzialiList(); i++) {
- Credenziali credenziale = invPorta.getCredenziali(i);
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI_CREDENZIALI);
- sqlQueryObject.addInsertField("id_servizio_applicativo", "?");
- sqlQueryObject.addInsertField("subject", "?");
- sqlQueryObject.addInsertField("cn_subject", "?");
- sqlQueryObject.addInsertField("issuer", "?");
- sqlQueryObject.addInsertField("cn_issuer", "?");
- sqlQueryObject.addInsertField("certificate", "?");
- sqlQueryObject.addInsertField("cert_strict_verification", "?");
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
-
- index = 1;
- stm.setLong(index++, aSA.getId());
-
- String subjectCredenziale = null;
- if(credenziale!=null && credenziale.getSubject()!=null && !"".equals(credenziale.getSubject()))
- subjectCredenziale = credenziale.getSubject();
- stm.setString(index++, (subjectCredenziale != null ? CertificateUtils.formatPrincipal(subjectCredenziale, PrincipalType.SUBJECT) : null));
- String subjectCredenzialeCN = null;
- if(credenziale!=null && credenziale.getCnSubject()!=null && !"".equals(credenziale.getCnSubject()))
- subjectCredenzialeCN = credenziale.getCnSubject();
- stm.setString(index++, subjectCredenzialeCN);
-
- String issuerCredenziale = null;
- if(credenziale != null && org.openspcoop2.core.config.constants.CredenzialeTipo.APIKEY.equals(credenziale.getTipo())) {
- stm.setString(index++, CostantiDB.getIssuerApiKey(credenziale.isAppId()));
- }
- else {
- if(credenziale!=null && credenziale.getIssuer()!=null && !"".equals(credenziale.getIssuer()))
- issuerCredenziale = credenziale.getIssuer();
- stm.setString(index++, (issuerCredenziale != null ? CertificateUtils.formatPrincipal(issuerCredenziale, PrincipalType.ISSUER) : null));
- }
- String issuerCredenzialeCN = null;
- if(credenziale!=null && credenziale.getCnIssuer()!=null && !"".equals(credenziale.getCnIssuer()))
- issuerCredenzialeCN = credenziale.getCnIssuer();
- stm.setString(index++, issuerCredenzialeCN);
-
- byte [] certificateCredenziale = null;
- if(credenziale!=null && credenziale.getCertificate()!=null) {
- certificateCredenziale = credenziale.getCertificate();
- }
- jdbcAdapter = JDBCAdapterFactory.createJDBCAdapter(DriverConfigurazioneDBLib.tipoDB);
- jdbcAdapter.setBinaryData(stm, index++, certificateCredenziale);
- if(credenziale!=null && credenziale.isCertificateStrictVerification()) {
- stm.setInt(index++, CostantiDB.TRUE);
- }
- else {
- stm.setInt(index++, CostantiDB.FALSE);
- }
-
- stm.executeUpdate();
- stm.close();
- n++;
- DriverConfigurazioneDBLib.logDebug("Aggiunta credenziale al servizioApplicativo "+idServizioApplicativo);
- }
- }
-
- DriverConfigurazioneDBLib.logDebug("Aggiunte " + n + " credenziali al servizioApplicativo "+idServizioApplicativo);
-
-
- // Proprieta
- n=0;
- if(proprieta!=null && !proprieta.isEmpty()){
- for (int i = 0; i < proprieta.size(); i++) {
- Proprieta prop = proprieta.get(i);
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
- sqlQueryObject.addInsertField("id_servizio_applicativo", "?");
- sqlQueryObject.addInsertField("nome", "?");
- sqlQueryObject.addInsertField("valore", "?");
- sqlQueryObject.addInsertField("enc_value", "?");
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
-
- int indexP = 1;
- stm.setLong(indexP++, aSA.getId());
- stm.setString(indexP++, prop.getNome());
-
- String plainValueP = prop.getValore();
- String encValueP = null;
- if(driverBYOK!=null && BYOKUtilities.isWrappedValue(plainValueP) ) {
- BYOKWrappedValue byokValue = driverBYOK.wrap(plainValueP);
- if(byokValue!=null) {
- encValueP = byokValue.getWrappedValue();
- plainValueP = byokValue.getWrappedPlainValue();
- }
- }
-
- stm.setString(indexP++, plainValueP);
- stm.setString(indexP++, encValueP);
-
- stm.executeUpdate();
- stm.close();
- n++;
- DriverConfigurazioneDBLib.logDebug("Aggiunta proprieta' [" + prop.getNome() + "] al servizioApplicativo "+idServizioApplicativo);
- }
- }
-
- DriverConfigurazioneDBLib.logDebug("Aggiunte " + n + " proprieta' al servizioApplicativo "+idServizioApplicativo);
-
-
- // ProtocolProperties
- DriverConfigurazioneDBLib.crudProtocolProperty(CostantiDB.CREATE, aSA.getProtocolPropertyList(),
- idServizioApplicativo, ProprietariProtocolProperty.SERVIZIO_APPLICATIVO, con, DriverConfigurazioneDBLib.tipoDB, driverBYOK);
-
-
- break;
- case UPDATE:
- String oldNomeSA = null;
- String oldNomeProprietario = null;
- String oldTipoProprietario = null;
- if(aSA.getOldIDServizioApplicativoForUpdate()!=null){
- oldNomeSA = aSA.getOldIDServizioApplicativoForUpdate().getNome();
- if(aSA.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()!=null){
- oldNomeProprietario = aSA.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome();
- oldTipoProprietario = aSA.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo();
- }
- }
- if (oldNomeSA == null || oldNomeSA.equals(""))
- oldNomeSA = nomeSA;
- if (oldNomeProprietario == null || oldNomeProprietario.equals(""))
- oldNomeProprietario = nomeProprietario;
- if (oldTipoProprietario == null || oldTipoProprietario.equals(""))
- oldTipoProprietario = tipoProprietario;
- long oldIdProprietario = DBUtils.getIdSoggetto(oldNomeProprietario, oldTipoProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- // Puo' darsi che l'old soggetto e il nuovo soggetto siano la stesso soggetto della tabella. E' stato cambiato il nome.
- if(oldIdProprietario <=0) {
- oldIdProprietario = DBUtils.getIdSoggetto(nomeProprietario, tipoProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- }
- if(oldIdProprietario <=0)
- throw new DriverConfigurazioneException("Impossibile recuperare l'id del Soggetto Proprietario del Servizio Applicativo");
-
- String utenteUltimaModifica = null;
- if(aSA.getProprietaOggetto()!=null && aSA.getProprietaOggetto().getUtenteUltimaModifica()!=null) {
- utenteUltimaModifica = aSA.getProprietaOggetto().getUtenteUltimaModifica();
- }
-
- Timestamp dataUltimaModifica = null;
- if(aSA.getProprietaOggetto()!=null && aSA.getProprietaOggetto().getDataUltimaModifica()!=null) {
- dataUltimaModifica = new Timestamp(aSA.getProprietaOggetto().getDataUltimaModifica().getTime());
- }
- else {
- dataUltimaModifica = DateManager.getTimestamp();
- }
-
-
- // update
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addUpdateTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObject.addUpdateField("tipo", "?");
- sqlQueryObject.addUpdateField("as_client", "?");
- sqlQueryObject.addUpdateField("descrizione", "?");
- sqlQueryObject.addUpdateField("sbustamentorisp", "?");
- sqlQueryObject.addUpdateField("sbustamento_protocol_info_risp", "?");
- sqlQueryObject.addUpdateField("getmsgrisp", "?");
- sqlQueryObject.addUpdateField("tipoauthrisp", "?");
- sqlQueryObject.addUpdateField("utenterisp", "?");
- sqlQueryObject.addUpdateField("passwordrisp", "?");
- sqlQueryObject.addUpdateField("enc_passwordrisp", "?");
- sqlQueryObject.addUpdateField("id_connettore_risp", "?");
- sqlQueryObject.addUpdateField("sbustamentoinv", "?");
- sqlQueryObject.addUpdateField("sbustamento_protocol_info_inv", "?");
- sqlQueryObject.addUpdateField("getmsginv", "?");
- sqlQueryObject.addUpdateField("tipoauthinv", "?");
- sqlQueryObject.addUpdateField("utenteinv", "?");
- sqlQueryObject.addUpdateField("passwordinv", "?");
- sqlQueryObject.addUpdateField("enc_passwordinv", "?");
- sqlQueryObject.addUpdateField("id_connettore_inv", "?");
- sqlQueryObject.addUpdateField("fault", "?");
- sqlQueryObject.addUpdateField("tipoauth", "?");
- sqlQueryObject.addUpdateField("utente", "?");
- sqlQueryObject.addUpdateField("password", "?");
- sqlQueryObject.addUpdateField("subject", "?");
- sqlQueryObject.addUpdateField("cn_subject", "?");
- sqlQueryObject.addUpdateField("issuer", "?");
- sqlQueryObject.addUpdateField("cn_issuer", "?");
- sqlQueryObject.addUpdateField("certificate", "?");
- sqlQueryObject.addUpdateField("cert_strict_verification", "?");
- sqlQueryObject.addUpdateField("token_policy", "?");
- sqlQueryObject.addUpdateField("invio_x_rif_inv", "?");
- sqlQueryObject.addUpdateField("risposta_x_rif_inv", "?");
- sqlQueryObject.addUpdateField("invio_x_rif", "?");
- sqlQueryObject.addUpdateField("invio_x_rif_risp", "?");
- sqlQueryObject.addUpdateField("risposta_x_rif_risp", "?");
- sqlQueryObject.addUpdateField("sbustamento_protocol_info", "?");
- sqlQueryObject.addUpdateField("fault_actor", "?");
- sqlQueryObject.addUpdateField("generic_fault_code", "?");
- sqlQueryObject.addUpdateField("prefix_fault_code", "?");
- sqlQueryObject.addUpdateField("nome", "?");
- sqlQueryObject.addUpdateField("id_soggetto", "?");
- if(aSA.getRispostaAsincrona()!=null && aSA.getRispostaAsincrona().getGestioneErrore()!=null){
- sqlQueryObject.addUpdateField("id_gestione_errore_risp", "?");
- }
- if(aSA.getInvocazioneServizio()!=null && aSA.getInvocazioneServizio().getGestioneErrore()!=null){
- sqlQueryObject.addUpdateField("id_gestione_errore_inv", "?");
- }
- sqlQueryObject.addUpdateField("tipologia_fruizione", "?");
- sqlQueryObject.addUpdateField("tipologia_erogazione", "?");
- if(utenteUltimaModifica!=null) {
- sqlQueryObject.addUpdateField(CostantiDB.PROPRIETA_OGGETTO_UTENTE_ULTIMA_MODIFICA, "?");
- }
- if(dataUltimaModifica!=null) {
- sqlQueryObject.addUpdateField(CostantiDB.PROPRIETA_OGGETTO_DATA_ULTIMA_MODIFICA, "?");
- }
- sqlQueryObject.addWhereCondition("id=?");
- sqlQueryObject.addWhereCondition("nome=?");
- sqlQueryObject.addWhereCondition("id_soggetto=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLUpdate();
- stm = con.prepareStatement(sqlQuery);
- idServizioApplicativo = getIdServizioApplicativo(oldNomeSA, oldTipoProprietario, oldNomeProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- // Puo' darsi che l'old soggetto e il nuovo soggetto siano la stesso soggetto della tabella. E' stato cambiato il nome.
- if(idServizioApplicativo<=0) {
- idServizioApplicativo = getIdServizioApplicativo(oldNomeSA, tipoProprietario, nomeProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- }
- if (idServizioApplicativo <= 0)
- throw new DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo(UPDATE)] ID del ServizioApplicativo necessario per l'aggiornamento.");
- // recupero i connettori
- // connettore risp asinc
- RispostaAsincrona rispAsin = aSA.getRispostaAsincrona();
- connettoreRisp = rispAsin != null ? rispAsin.getConnettore() : new Connettore();
- String newNomeConnettoreRisp = "ConnettoreRISP_"+nomeSA+"_"+tipoProprietario+nomeProprietario;
- idConnettoreRisp = DriverConfigurazioneDB_connettoriLIB.getIdConnettoreSARISP(idServizioApplicativo, con);
-
- // connettore inv servizio
- InvocazioneServizio invServ = aSA.getInvocazioneServizio();
- connettoreInv = invServ != null ? invServizio.getConnettore() : new Connettore();
- String newNomeConnettoreInv = "ConnettoreINV_"+nomeSA+"_"+tipoProprietario+nomeProprietario;
- idConnettoreInv = DriverConfigurazioneDB_connettoriLIB.getIdConnettoreSAINV(idServizioApplicativo, con);
-
- //Controllo consistenza degli id dei connettori in quanto devono essere specificati
- //e quindi maggiori di 0
- if(idConnettoreInv <=0 || idConnettoreRisp<=0) throw new DriverConfigurazioneException("I connettori del servizio applicativo sono invalidi");
-
- /*
- * Problema:
- * Se il nuovo connettore e' disabilitato (e il nome del connettore non cambia)
- * il valore presente sul db non cambia anche se questo valore e' != da DISABILITATO
- * Fix:
- * I valori del nuovo connettore devono essere sempre aggiornati
- *
- */
- String nomeConnettoreRisp = DriverConfigurazioneDB_connettoriLIB.getConnettore(idConnettoreRisp, con, null).getNome();
- String nomeConnettoreInv = DriverConfigurazioneDB_connettoriLIB.getConnettore(idConnettoreInv, con, null).getNome();
- String pattern = "Aggiorno Connettore [{0}] : id [{1}] oldNome [{2}] newNome [{2}]";
- DriverConfigurazioneDBLib.logDebug(MessageFormat.format(pattern, "Risposta Asincrona",idConnettoreRisp, nomeConnettoreRisp, newNomeConnettoreRisp));
- //aggiorno connettore risp
- connettoreRisp.setNome(newNomeConnettoreRisp);
- connettoreRisp.setId(idConnettoreRisp);
- DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(CostantiDB.UPDATE, connettoreRisp, con, driverBYOK);
- //aggiorno connettore inv
- DriverConfigurazioneDBLib.logDebug(MessageFormat.format(pattern, "Invocazione Servizio",idConnettoreInv, nomeConnettoreInv, newNomeConnettoreInv));
- connettoreInv.setNome(newNomeConnettoreInv);
- connettoreInv.setId(idConnettoreInv);
- DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(CostantiDB.UPDATE, connettoreInv, con, driverBYOK);
- // Setto i dati del ServizioApplicativo
- index = 1;
-
- stm.setString(index++, tipoSA);
- stm.setInt(index++, useAsClient);
- stm.setString(index++, descrizione);
- // RicezioneRisposta
- stm.setInt(index++, (ricezione != null && (CostantiConfigurazione.ABILITATO.equals(ricezione.getSbustamentoSoap())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setInt(index++, (ricezione != null && (!CostantiConfigurazione.DISABILITATO.equals(ricezione.getSbustamentoInformazioniProtocollo())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setString(index++, ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getGetMessage()) : null);
- // setto credenziali risp
- credenzialiInvocazione = ricezione != null ? ricezione.getCredenziali() : null;
- stm.setString(index++, (ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getAutenticazione()) : null));
- stm.setString(index++, (credenzialiInvocazione != null ? credenzialiInvocazione.getUser() : null));
-
- plainValue = (credenzialiInvocazione != null ? credenzialiInvocazione.getPassword() : null);
- encValue = null;
- if(driverBYOK!=null && plainValue!=null) {
- BYOKWrappedValue byokValue = driverBYOK.wrap(plainValue);
- if(byokValue!=null) {
- encValue = byokValue.getWrappedValue();
- plainValue = byokValue.getWrappedPlainValue();
- }
- }
- stm.setString(index++, plainValue);
- stm.setString(index++, encValue);
-
- // setto idconnettore risp
- stm.setLong(index++, idConnettoreRisp);
- // InvocazioneServizio
- stm.setInt(index++, (invServizio != null && (CostantiConfigurazione.ABILITATO.equals(invServizio.getSbustamentoSoap())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setInt(index++, (invServizio != null && (!CostantiConfigurazione.DISABILITATO.equals(invServizio.getSbustamentoInformazioniProtocollo())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- stm.setString(index++, invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getGetMessage()) : null);
- // setto credenziali inv
- credenzialiInvocazione = invServizio != null ? invServizio.getCredenziali() : null;
- stm.setString(index++, (invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getAutenticazione()) : null));
- stm.setString(index++, (credenzialiInvocazione != null ? credenzialiInvocazione.getUser() : null));
-
- plainValue = (credenzialiInvocazione != null ? credenzialiInvocazione.getPassword() : null);
- encValue = null;
- if(driverBYOK!=null && plainValue!=null) {
- BYOKWrappedValue byokValue = driverBYOK.wrap(plainValue);
- if(byokValue!=null) {
- encValue = byokValue.getWrappedValue();
- plainValue = byokValue.getWrappedPlainValue();
- }
- }
- stm.setString(index++, plainValue);
- stm.setString(index++, encValue);
-
- // setto idconnettore inv
- stm.setLong(index++, idConnettoreInv);
- // InvocazionePorta
- gestErr = invPorta != null ? invPorta.getGestioneErrore() : null;
- fault = (gestErr != null ? DriverConfigurazioneDBLib.getValue(gestErr.getFault()) : null);
- stm.setString(index++, fault);
- // setto credenziali invocaizone porta
- // per il momento c'e' soltato una credenziale,quindi un solo
- // oggetto nella lista
- credenzialiInvocazionePorta = (invPorta != null && invPorta.sizeCredenzialiList() > 0 ? invPorta.getCredenziali(0) : null);
- stm.setString(index++, (credenzialiInvocazionePorta != null ? DriverConfigurazioneDBLib.getValue(credenzialiInvocazionePorta.getTipo()) : null));
- stm.setString(index++, (credenzialiInvocazionePorta != null ? credenzialiInvocazionePorta.getUser() : null));
- stm.setString(index++, (credenzialiInvocazionePorta != null ? credenzialiInvocazionePorta.getPassword() : null));
-
- subject = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getSubject()!=null && !"".equals(credenzialiInvocazionePorta.getSubject()))
- subject = credenzialiInvocazionePorta.getSubject();
- stm.setString(index++, (subject != null ? CertificateUtils.formatPrincipal(subject, PrincipalType.SUBJECT) : null));
- subjectCN = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getCnSubject()!=null && !"".equals(credenzialiInvocazionePorta.getCnSubject()))
- subjectCN = credenzialiInvocazionePorta.getCnSubject();
- stm.setString(index++, subjectCN);
-
- issuer = null;
- if(credenzialiInvocazionePorta != null && org.openspcoop2.core.config.constants.CredenzialeTipo.APIKEY.equals(credenzialiInvocazionePorta.getTipo())) {
- stm.setString(index++, CostantiDB.getIssuerApiKey(credenzialiInvocazionePorta.isAppId()));
- }
- else {
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getIssuer()!=null && !"".equals(credenzialiInvocazionePorta.getIssuer()))
- issuer = credenzialiInvocazionePorta.getIssuer();
- stm.setString(index++, (issuer != null ? CertificateUtils.formatPrincipal(issuer, PrincipalType.ISSUER) : null));
- }
- issuerCN = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getCnIssuer()!=null && !"".equals(credenzialiInvocazionePorta.getCnIssuer()))
- issuerCN = credenzialiInvocazionePorta.getCnIssuer();
- stm.setString(index++, issuerCN);
-
- certificate = null;
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.getCertificate()!=null) {
- certificate = credenzialiInvocazionePorta.getCertificate();
- }
- jdbcAdapter = JDBCAdapterFactory.createJDBCAdapter(DriverConfigurazioneDBLib.tipoDB);
- jdbcAdapter.setBinaryData(stm, index++, certificate);
- if(credenzialiInvocazionePorta!=null && credenzialiInvocazionePorta.isCertificateStrictVerification()) {
- stm.setInt(index++, CostantiDB.TRUE);
- }
- else {
- stm.setInt(index++, CostantiDB.FALSE);
- }
-
- stm.setString(index++, credenzialiInvocazionePorta!=null ? credenzialiInvocazionePorta.getTokenPolicy() : null);
- // aggiungo gestione invio/risposta per riferimento
- // invocazione servizio
- stm.setString(index++, invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getInvioPerRiferimento()) : null);
- stm.setString(index++, invServizio != null ? DriverConfigurazioneDBLib.getValue(invServizio.getRispostaPerRiferimento()) : null);
- // invocazione porta
- stm.setString(index++, invPorta != null ? DriverConfigurazioneDBLib.getValue(invPorta.getInvioPerRiferimento()) : null);
- // ricezione risposta
- stm.setString(index++, ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getInvioPerRiferimento()) : null);
- stm.setString(index++, ricezione != null ? DriverConfigurazioneDBLib.getValue(ricezione.getRispostaPerRiferimento()) : null);
- // protocol info
- stm.setInt(index++, (invPorta != null && (!CostantiConfigurazione.DISABILITATO.equals(invPorta.getSbustamentoInformazioniProtocollo())) ? CostantiDB.TRUE : CostantiDB.FALSE));
- //Invocazione Porta : fault_actor, generic_fault_code, prefix_fault_code
- stm.setString(index++, gestErr!=null ? gestErr.getFaultActor() : null);
- stm.setString(index++, gestErr!=null ? DriverConfigurazioneDBLib.getValue(gestErr.getGenericFaultCode()) : null);
- stm.setString(index++, gestErr!=null ? gestErr.getPrefixFaultCode() : null);
- //Aggiorno nome servizio applicativo
- stm.setString(index++, nomeSA);
- //Aggiorno il proprietario
- stm.setLong(index++, idProprietario<0 ? oldIdProprietario : idProprietario);
- // GestioneErrore risposta asincrona
- if(aSA.getRispostaAsincrona() !=null && aSA.getRispostaAsincrona().getGestioneErrore()!=null){
- DriverConfigurazioneDB_gestioneErroreLIB.CRUDGestioneErroreServizioApplicativo(CostantiDB.UPDATE,
- aSA.getRispostaAsincrona().getGestioneErrore(), idProprietario, idServizioApplicativo, false, con);
- stm.setLong(index++, aSA.getRispostaAsincrona().getGestioneErrore().getId());
- }
- // GestioneErrore invocazione servizio
- if(aSA.getInvocazioneServizio() !=null && aSA.getInvocazioneServizio().getGestioneErrore()!=null){
- DriverConfigurazioneDB_gestioneErroreLIB.CRUDGestioneErroreServizioApplicativo(CostantiDB.UPDATE,
- aSA.getInvocazioneServizio().getGestioneErrore(), idProprietario, idServizioApplicativo, true, con);
- stm.setLong(index++, aSA.getInvocazioneServizio().getGestioneErrore().getId());
- }
-
- //tipologia erogazione/fruizione
- stm.setString(index++, aSA.getTipologiaFruizione()!=null ? TipologiaFruizione.valueOf(aSA.getTipologiaFruizione().toUpperCase()).toString() : TipologiaFruizione.DISABILITATO.toString());
- stm.setString(index++, aSA.getTipologiaErogazione()!=null ? TipologiaErogazione.valueOf(aSA.getTipologiaErogazione().toUpperCase()).toString() : TipologiaErogazione.DISABILITATO.toString());
-
- if(utenteUltimaModifica!=null) {
- stm.setString(index++, utenteUltimaModifica);
- }
-
- if(dataUltimaModifica!=null) {
- stm.setTimestamp(index++, dataUltimaModifica);
- }
-
- // where
- stm.setLong(index++, idServizioApplicativo);
- stm.setString(index++, oldNomeSA);
- stm.setLong(index++, oldIdProprietario);
- n = stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDBLib.logDebug("Updated " + n + " row(s)");
-
-
- // Ruoli
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, aSA.getId());
- n=stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDBLib.logDebug("Cancellati "+n+" ruoli associati al servizioApplicativo "+idServizioApplicativo);
-
- n=0;
- if(invPorta!=null && invPorta.getRuoli()!=null && invPorta.getRuoli().sizeRuoloList()>0){
- for (int i = 0; i < invPorta.getRuoli().sizeRuoloList(); i++) {
- Ruolo ruolo = invPorta.getRuoli().getRuolo(i);
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
- sqlQueryObject.addInsertField("id_servizio_applicativo", "?");
- sqlQueryObject.addInsertField("ruolo", "?");
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, aSA.getId());
- stm.setString(2, ruolo.getNome());
- stm.executeUpdate();
- stm.close();
- n++;
- DriverConfigurazioneDBLib.logDebug("Aggiunto ruolo[" + ruolo.getNome() + "] al servizioApplicativo "+idServizioApplicativo);
- }
- }
-
- DriverConfigurazioneDBLib.logDebug("Aggiunti " + n + " ruoli al servizioApplicativo "+idServizioApplicativo);
-
-
-
-
-
-
-
- // Credenziali (le credenziali in questa tabella partono dal numero maggiore di 1)
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_CREDENZIALI);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, aSA.getId());
- n=stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDBLib.logDebug("Cancellate "+n+" credenziali associate al servizioApplicativo "+idServizioApplicativo);
-
- n=0;
- if(invPorta!=null && invPorta.sizeCredenzialiList()>1){
- for (int i = 1; i < invPorta.sizeCredenzialiList(); i++) {
- Credenziali credenziale = invPorta.getCredenziali(i);
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI_CREDENZIALI);
- sqlQueryObject.addInsertField("id_servizio_applicativo", "?");
- sqlQueryObject.addInsertField("subject", "?");
- sqlQueryObject.addInsertField("cn_subject", "?");
- sqlQueryObject.addInsertField("issuer", "?");
- sqlQueryObject.addInsertField("cn_issuer", "?");
- sqlQueryObject.addInsertField("certificate", "?");
- sqlQueryObject.addInsertField("cert_strict_verification", "?");
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
-
- index = 1;
- stm.setLong(index++, aSA.getId());
-
- String subjectCredenziale = null;
- if(credenziale!=null && credenziale.getSubject()!=null && !"".equals(credenziale.getSubject()))
- subjectCredenziale = credenziale.getSubject();
- stm.setString(index++, (subjectCredenziale != null ? CertificateUtils.formatPrincipal(subjectCredenziale, PrincipalType.SUBJECT) : null));
- String subjectCredenzialeCN = null;
- if(credenziale!=null && credenziale.getCnSubject()!=null && !"".equals(credenziale.getCnSubject()))
- subjectCredenzialeCN = credenziale.getCnSubject();
- stm.setString(index++, subjectCredenzialeCN);
-
- String issuerCredenziale = null;
- if(credenziale != null && org.openspcoop2.core.config.constants.CredenzialeTipo.APIKEY.equals(credenziale.getTipo())) {
- stm.setString(index++, CostantiDB.getIssuerApiKey(credenziale.isAppId()));
- }
- else {
- if(credenziale!=null && credenziale.getIssuer()!=null && !"".equals(credenziale.getIssuer()))
- issuerCredenziale = credenziale.getIssuer();
- stm.setString(index++, (issuerCredenziale != null ? CertificateUtils.formatPrincipal(issuerCredenziale, PrincipalType.ISSUER) : null));
- }
- String issuerCredenzialeCN = null;
- if(credenziale!=null && credenziale.getCnIssuer()!=null && !"".equals(credenziale.getCnIssuer()))
- issuerCredenzialeCN = credenziale.getCnIssuer();
- stm.setString(index++, issuerCredenzialeCN);
-
- byte [] certificateCredenziale = null;
- if(credenziale!=null && credenziale.getCertificate()!=null) {
- certificateCredenziale = credenziale.getCertificate();
- }
- jdbcAdapter = JDBCAdapterFactory.createJDBCAdapter(DriverConfigurazioneDBLib.tipoDB);
- jdbcAdapter.setBinaryData(stm, index++, certificateCredenziale);
- if(credenziale!=null && credenziale.isCertificateStrictVerification()) {
- stm.setInt(index++, CostantiDB.TRUE);
- }
- else {
- stm.setInt(index++, CostantiDB.FALSE);
- }
-
- stm.executeUpdate();
- stm.close();
- n++;
- DriverConfigurazioneDBLib.logDebug("Aggiunta credenziale al servizioApplicativo "+idServizioApplicativo);
- }
- }
-
- DriverConfigurazioneDBLib.logDebug("Aggiunte " + n + " credenziali al servizioApplicativo "+idServizioApplicativo);
-
-
-
- // Proprieta
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, aSA.getId());
- n=stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDBLib.logDebug("Cancellate "+n+" proprieta' associate al servizioApplicativo "+idServizioApplicativo);
-
- n=0;
- if(proprieta!=null && !proprieta.isEmpty()){
- for (int i = 0; i < proprieta.size(); i++) {
- Proprieta prop = proprieta.get(i);
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
- sqlQueryObject.addInsertField("id_servizio_applicativo", "?");
- sqlQueryObject.addInsertField("nome", "?");
- sqlQueryObject.addInsertField("valore", "?");
- sqlQueryObject.addInsertField("enc_value", "?");
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
-
- int indexP = 1;
- stm.setLong(indexP++, aSA.getId());
- stm.setString(indexP++, prop.getNome());
-
- String plainValueP = prop.getValore();
- String encValueP = null;
- if(driverBYOK!=null && BYOKUtilities.isWrappedValue(plainValueP) ) {
- BYOKWrappedValue byokValue = driverBYOK.wrap(plainValueP);
- if(byokValue!=null) {
- encValueP = byokValue.getWrappedValue();
- plainValueP = byokValue.getWrappedPlainValue();
- }
- }
-
- stm.setString(indexP++, plainValueP);
- stm.setString(indexP++, encValueP);
-
- stm.executeUpdate();
- stm.close();
- n++;
- DriverConfigurazioneDBLib.logDebug("Aggiunta proprieta' [" + prop.getNome() + "] al servizioApplicativo "+idServizioApplicativo);
- }
- }
-
- DriverConfigurazioneDBLib.logDebug("Aggiunte " + n + " proprieta' al servizioApplicativo "+idServizioApplicativo);
-
-
-
-
- // ProtocolProperties
- DriverConfigurazioneDBLib.crudProtocolProperty(CostantiDB.UPDATE, aSA.getProtocolPropertyList(),
- idServizioApplicativo, ProprietariProtocolProperty.SERVIZIO_APPLICATIVO, con, DriverConfigurazioneDBLib.tipoDB, driverBYOK);
-
- break;
- case DELETE:
- // delete
- /** if(aSA.getId()==null || aSA.getId()<=0) throw new
- // DriverConfigurazioneException("[DriverConfigurazioneDB_LIB::CRUDServizioApplicativo(DELETE)]
- // id del ServizioApplicativo non valida.");*/
- DriverConfigurazioneDBLib.logDebug("get ID Servizio Applicativo con nome["+nomeSA+"] tipoProprietario["+tipoProprietario+"] nomeProprietario["+nomeProprietario+"]");
- idServizioApplicativo = getIdServizioApplicativo(nomeSA, tipoProprietario, nomeProprietario, con, DriverConfigurazioneDBLib.tipoDB,DriverConfigurazioneDBLib.tabellaSoggetti);
- DriverConfigurazioneDBLib.logDebug("get ID Servizio Applicativo: "+idServizioApplicativo);
- // ProtocolProperties
- DriverConfigurazioneDBLib.crudProtocolProperty(CostantiDB.DELETE, null,
- idServizioApplicativo, ProprietariProtocolProperty.SERVIZIO_APPLICATIVO, con, DriverConfigurazioneDBLib.tipoDB, driverBYOK);
-
- // proprieta'
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- n=stm.executeUpdate();
- stm.close();
- if (n > 0)
- DriverConfigurazioneDBLib.logDebug("Deleted " + n + " proprieta' associate al ServizioApplicativo[" + idServizioApplicativo + "]");
-
- // credenziali
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_CREDENZIALI);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- n=stm.executeUpdate();
- stm.close();
- if (n > 0)
- DriverConfigurazioneDBLib.logDebug("Deleted " + n + " credenziali associate al ServizioApplicativo[" + idServizioApplicativo + "]");
-
- // ruoli
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- n=stm.executeUpdate();
- stm.close();
- if (n > 0)
- DriverConfigurazioneDBLib.logDebug("Deleted " + n + " ruoli associati al ServizioApplicativo[" + idServizioApplicativo + "]");
-
- /*
- * BUG Devo prima eliminare l'associazione
- */
- /**
- // cancello anche le associazioni delle porteapplicative
- // associate a questo servizio
- // serviziapplicativi
-
- List<Long> idsPA_SA = new ArrayList<>();
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE_SA);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- rs = stm.executeQuery();
- while(rs.next()) {
- idsPA_SA.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
-
- if(!idsPA_SA.isEmpty()) {
- for (Long idsapa : idsPA_SA) {
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SA_PROPS);
- sqlQueryObject.addWhereCondition("id_porta=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idsapa);
- n=stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDB_LIB.logDebug("Eliminate "+n+" proprieta relative all'associazione '"+idsapa+"' (SA "+idServizioApplicativo+")");
- }
- }
-
- DriverConfigurazioneDB_LIB.logDebug("Deleted PA associazioni...");
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORTE_APPLICATIVE_SA);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- n=stm.executeUpdate();
- stm.close();
- if (n > 0)
- DriverConfigurazioneDB_LIB.logDebug("Deleted " + n + " associazioni di PortaApplicativa<->ServizioApplicativo associate al ServizioApplicativo[" + idServizioApplicativo + "]");
- // faccio lo stesso per le portedelegate
- DriverConfigurazioneDB_LIB.logDebug("Deleted PD associazioni...");
- DriverConfigurazioneDB_LIB.logDebug("Deleted PA associazioni...");
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORTE_DELEGATE_SA);
- sqlQueryObject.addWhereCondition("id_servizio_applicativo=?");
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- n=stm.executeUpdate();
- stm.close();
- if (n > 0)
- DriverConfigurazioneDB_LIB.logDebug("Deleted " + n + " associazioni di PortaDelegata<->ServizioApplicativo associate al ServizioApplicativo[" + idServizioApplicativo + "]");
- */
- DriverConfigurazioneDBLib.logDebug("Deleted ...");
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverConfigurazioneDBLib.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObject.addWhereCondition("id=?");
- sqlQueryObject.addWhereCondition("nome=?");
- sqlQueryObject.addWhereCondition("id_soggetto=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(sqlQuery);
- stm.setLong(1, idServizioApplicativo);
- stm.setString(2, nomeSA);
- stm.setLong(3, idProprietario);
- DriverConfigurazioneDBLib.logDebug("eseguo query : " + DBUtils.formatSQLString(sqlQuery, idServizioApplicativo,nomeSA,idProprietario));
- n=stm.executeUpdate();
- stm.close();
- DriverConfigurazioneDBLib.logDebug("Deleted " + n + " row(s)");
- //cancello i connettori
- // Connettore asincrono
- DriverConfigurazioneDBLib.logDebug("Recupero connettore asincrono ...");
- if(aSA.getRispostaAsincrona()!=null && aSA.getRispostaAsincrona().getConnettore()!=null){
- connettoreRisp=aSA.getRispostaAsincrona().getConnettore();
- }else{
- connettoreRisp = new Connettore();
- connettoreRisp.setTipo(TipiConnettore.DISABILITATO.getNome());
- }
- nomeConnettoreRisp = "ConnettoreRISP_" + aSA.getNome()+"_"+aSA.getTipoSoggettoProprietario()+aSA.getNomeSoggettoProprietario();
- connettoreRisp.setNome(nomeConnettoreRisp);
- idConnettoreRisp = DBUtils.getIdConnettore(nomeConnettoreRisp, con, DriverConfigurazioneDBLib.tipoDB);
- DriverConfigurazioneDBLib.logDebug("Recupero connettore asincrono id["+idConnettoreRisp+"]");
- connettoreRisp.setId(idConnettoreRisp);
- // Connettore inv servizio
- DriverConfigurazioneDBLib.logDebug("Recupero connettore invocazione servizio ...");
- if(aSA.getInvocazioneServizio()!=null && aSA.getInvocazioneServizio().getConnettore()!=null){
- connettoreInv=aSA.getInvocazioneServizio().getConnettore();
- }else{
- connettoreInv = new Connettore();
- connettoreInv.setTipo(TipiConnettore.DISABILITATO.getNome());
- }
- nomeConnettoreInv = "ConnettoreINV_" + aSA.getNome()+"_"+aSA.getTipoSoggettoProprietario()+aSA.getNomeSoggettoProprietario();
- connettoreInv.setNome(nomeConnettoreInv);
- idConnettoreInv = DBUtils.getIdConnettore(nomeConnettoreInv, con, DriverConfigurazioneDBLib.tipoDB);
- DriverConfigurazioneDBLib.logDebug("Recupero connettore invocazione servizio id["+idConnettoreInv+"]");
- connettoreInv.setId(idConnettoreInv);
- //Controllo consistenza degli id dei connettori in quanto devono essere specificati
- //e quindi maggiori di 0
- if(idConnettoreInv <=0 || idConnettoreRisp<=0) throw new DriverConfigurazioneException("I connettori del servizio applicativo sono invalidi");
- // se il connettore e' abilitato allora propago le modifiche al
- // connettore
- DriverConfigurazioneDBLib.logDebug("Delete connettore asincrono ...");
- DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(CostantiDB.DELETE, connettoreRisp, con, driverBYOK);
- DriverConfigurazioneDBLib.logDebug("Delete connettore invocazione servizio ...");
- DriverConfigurazioneDB_connettoriLIB.CRUDConnettore(CostantiDB.DELETE, connettoreInv, con, driverBYOK);
-
- // Delete gestione errore risposta asincrona
- if(aSA.getRispostaAsincrona() !=null && aSA.getRispostaAsincrona().getGestioneErrore()!=null){
- DriverConfigurazioneDB_gestioneErroreLIB.CRUDGestioneErroreServizioApplicativo(CostantiDB.DELETE,
- aSA.getRispostaAsincrona().getGestioneErrore(), idProprietario, idServizioApplicativo, false, con);
- }
-
-
- // Delete gestione errore invocazione servizio
- if(aSA.getInvocazioneServizio() !=null && aSA.getInvocazioneServizio().getGestioneErrore()!=null){
- DriverConfigurazioneDB_gestioneErroreLIB.CRUDGestioneErroreServizioApplicativo(CostantiDB.DELETE,
- aSA.getInvocazioneServizio().getGestioneErrore(), idProprietario, idServizioApplicativo, true, con);
- }
-
- break;
- }
- return idServizioApplicativo;
- } catch (DriverConfigurazioneException e) {
- throw e;
- } catch (SQLException se) {
- throw new DriverConfigurazioneException("SQLException : " + se.getMessage(),se);
- } catch (Exception se) {
- throw new DriverConfigurazioneException("Exception : " + se.getMessage(),se);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(rs, stmQuery);
- JDBCUtilities.closeResources(stm);
- JDBCUtilities.closeResources(stm2);
- }
- }
-
-
-
- public static long getIdServizioApplicativo(String nomeServizioApplicativo, String tipoProprietario,String nomeProprietario,
- Connection con, String tipoDB) throws CoreException
- {
- return getIdServizioApplicativo(nomeServizioApplicativo, tipoProprietario, nomeProprietario, con, tipoDB, CostantiDB.SOGGETTI);
- }
- public static long getIdServizioApplicativo(String nomeServizioApplicativo, String tipoProprietario,String nomeProprietario,
- Connection con, String tipoDB,String tabellaSoggetti) throws CoreException
- {
- PreparedStatement stm = null;
- ResultSet rs = null;
- long idSoggetto;
- long idServizioApplicativo=-1;
- try
- {
- idSoggetto = DBUtils.getIdSoggetto(nomeProprietario, tipoProprietario, con, tipoDB,tabellaSoggetti);
- //recupero l'id della porta applicativa appena inserita
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_soggetto = ?");
- sqlQueryObject.addWhereCondition("nome = ?");
- sqlQueryObject.setANDLogicOperator(true);
- String sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idSoggetto);
- stm.setString(2, nomeServizioApplicativo);
- rs=stm.executeQuery();
- if(rs.next())
- {
- idServizioApplicativo=rs.getLong("id");
- }
- return idServizioApplicativo;
- }catch (Exception e) {
- throw new CoreException(e);
- }finally
- {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(rs, stm);
- }
- }
-
- }