DriverRegistroServiziDB_accordiParteSpecificaSearchDriver.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.registry.driver.db;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.util.ArrayList;
- import java.util.List;
- import org.openspcoop2.core.commons.DBUtils;
- import org.openspcoop2.core.commons.Filtri;
- import org.openspcoop2.core.commons.ISearch;
- import org.openspcoop2.core.commons.Liste;
- import org.openspcoop2.core.commons.SearchUtils;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.constants.TipiConnettore;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
- import org.openspcoop2.core.registry.Fruitore;
- import org.openspcoop2.core.registry.Soggetto;
- import org.openspcoop2.core.registry.constants.CostantiRegistroServizi;
- import org.openspcoop2.core.registry.constants.PddTipologia;
- import org.openspcoop2.core.registry.constants.TipologiaServizio;
- import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
- import org.openspcoop2.core.registry.driver.IDAccordoFactory;
- import org.openspcoop2.utils.jdbc.JDBCUtilities;
- import org.openspcoop2.utils.sql.ISQLQueryObject;
- import org.openspcoop2.utils.sql.SQLObjectFactory;
- /**
- * DriverRegistroServiziDB_accordiParteSpecificaDriver
- *
- *
- * @author Sandra Giangrandi (sandra@link.it)
- * @author Stefano Corallo (corallo@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DriverRegistroServiziDB_accordiParteSpecificaSearchDriver {
- private DriverRegistroServiziDB driver = null;
-
- protected DriverRegistroServiziDB_accordiParteSpecificaSearchDriver(DriverRegistroServiziDB driver) {
- this.driver = driver;
- }
-
- protected List<AccordoServizioParteSpecifica> serviziList(String superuser,ISearch ricerca) throws DriverRegistroServiziException {
- String nomeMetodo = "serviziList";
- int idLista = Liste.SERVIZI;
- int offset;
- int limit;
- String search;
- String queryString;
- limit = ricerca.getPageSize(idLista);
- offset = ricerca.getIndexIniziale(idLista);
- search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
- ricerca.getSearchString(idLista);
- this.driver.logDebug("search : " + search);
- Connection con = null;
- PreparedStatement stmt = null;
- ResultSet risultato = null;
- ArrayList<AccordoServizioParteSpecifica> lista = new ArrayList<AccordoServizioParteSpecifica>();
- if (this.driver.atomica) {
- try {
- con = this.driver.getConnectionFromDatasource("serviziList");
- } catch (Exception e) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
- }
- } else
- con = this.driver.globalConnection;
- this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
- try {
- if (!search.equals("")) {
- //query con search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addWhereLikeCondition("nome_servizio", search, true, true);
- if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
- sqlQueryObject.addWhereCondition("superuser = ?");
- queryString = sqlQueryObject.createSQLQuery();
- } else {
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.setANDLogicOperator(true);
- if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
- sqlQueryObject.addWhereCondition("superuser = ?");
- queryString = sqlQueryObject.createSQLQuery();
- }
- stmt = con.prepareStatement(queryString);
- if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
- stmt.setString(1, superuser);
- risultato = stmt.executeQuery();
- if (risultato.next())
- ricerca.setNumEntries(idLista,risultato.getInt(1));
- risultato.close();
- stmt.close();
- // ricavo le entries
- if (limit == 0) // con limit
- limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
- if (!search.equals("")) { // con search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addSelectField("nome_servizio");
- sqlQueryObject.addSelectField("tipo_servizio");
- sqlQueryObject.addSelectField("versione_servizio");
- sqlQueryObject.addSelectField("id_soggetto");
- sqlQueryObject.addSelectField("id_accordo");
- sqlQueryObject.addSelectField("servizio_correlato");
- sqlQueryObject.addSelectField("stato");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addWhereLikeCondition("nome_servizio", search, true, true);
- if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
- sqlQueryObject.addWhereCondition("superuser = ?");
- sqlQueryObject.addOrderBy("tipo_servizio");
- sqlQueryObject.addOrderBy("nome_servizio");
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- } else {
- // senza search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addSelectField("nome_servizio");
- sqlQueryObject.addSelectField("tipo_servizio");
- sqlQueryObject.addSelectField("versione_servizio");
- sqlQueryObject.addSelectField("id_soggetto");
- sqlQueryObject.addSelectField("id_accordo");
- sqlQueryObject.addSelectField("servizio_correlato");
- sqlQueryObject.addSelectField("stato");
- sqlQueryObject.setANDLogicOperator(true);
- if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
- sqlQueryObject.addWhereCondition("superuser = ?");
- sqlQueryObject.addOrderBy("tipo_servizio");
- sqlQueryObject.addOrderBy("nome_servizio");
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- }
- this.driver.logDebug("query : " + queryString);
- stmt = con.prepareStatement(queryString);
- if(this.driver.useSuperUser && superuser!=null && (!superuser.equals("")))
- stmt.setString(1, superuser);
- risultato = stmt.executeQuery();
- AccordoServizioParteSpecifica asps;
- while (risultato.next()) {
- asps = new AccordoServizioParteSpecifica();
-
- asps.setId(risultato.getLong("id"));
- asps.setNome(risultato.getString("nome_servizio"));
- asps.setTipo(risultato.getString("tipo_servizio"));
- asps.setVersione(risultato.getInt("versione_servizio"));
- asps.setIdSoggetto(risultato.getLong("id_soggetto"));
- asps.setIdAccordo(risultato.getLong("id_accordo"));
- String servizio_correlato = risultato.getString("servizio_correlato");
- if ( (servizio_correlato != null) &&
- (servizio_correlato.equalsIgnoreCase(CostantiRegistroServizi.ABILITATO.toString()) || TipologiaServizio.CORRELATO.toString().equals(servizio_correlato))
- ){
- asps.setTipologiaServizio(TipologiaServizio.CORRELATO);
- }else{
- asps.setTipologiaServizio(TipologiaServizio.NORMALE);
- }
- // informazioni su soggetto
- Soggetto sog = this.driver.getSoggetto(asps.getIdSoggetto(),con);
- String nomeErogatore = sog.getNome();
- String tipoErogatore = sog.getTipo();
- asps.setNomeSoggettoErogatore(nomeErogatore);
- asps.setTipoSoggettoErogatore(tipoErogatore);
- // informazioni su accordo
- AccordoServizioParteComune as = this.driver.getAccordoServizioParteComune(asps.getIdAccordo(),con);
- asps.setAccordoServizioParteComune(this.driver.idAccordoFactory.getUriFromAccordo(as));
- // Stato
- asps.setStatoPackage(risultato.getString("stato"));
- lista.add(asps);
- }
- this.driver.logDebug("size lista :" + ((lista == null) ? null : lista.size()));
- return lista;
- } catch (Exception qe) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(risultato, stmt);
- this.driver.closeConnection(con);
- }
- }
-
- protected List<Soggetto> accordiErogatoriList(long idAccordo, ISearch ricerca) throws DriverRegistroServiziException {
- String nomeMetodo = "accordiErogatoriList";
- int idLista = Liste.ACCORDI_EROGATORI;
- int offset;
- int limit;
- String search;
- String queryString;
- limit = ricerca.getPageSize(idLista);
- offset = ricerca.getIndexIniziale(idLista);
- search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
- ricerca.getSearchString(idLista);
- Connection con = null;
- PreparedStatement stmt = null;
- ResultSet risultato = null;
- PreparedStatement stmt2 = null;
- ResultSet risultato2 = null;
- ArrayList<Soggetto> lista = new ArrayList<Soggetto>();
- if (this.driver.atomica) {
- try {
- con = this.driver.getConnectionFromDatasource("accordiErogatoriList");
- } catch (Exception e) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
- }
- } else
- con = this.driver.globalConnection;
- this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
- try {
- if (!search.equals("")) {
- //query con search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI + ".id_accordo = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI + ".id_soggetto = " + CostantiDB.SOGGETTI + ".id");
- sqlQueryObject.addWhereCondition(false, sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI + ".nome_soggetto",search,true,true),
- sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI + ".tipo_soggetto",search,true,true));
- sqlQueryObject.setANDLogicOperator(true);
- queryString = sqlQueryObject.createSQLQuery();
- } else {
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_accordo = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
- sqlQueryObject.setANDLogicOperator(true);
- queryString = sqlQueryObject.createSQLQuery();
- }
- stmt = con.prepareStatement(queryString);
- stmt.setLong(1,idAccordo);
- risultato = stmt.executeQuery();
- if (risultato.next())
- ricerca.setNumEntries(idLista,risultato.getInt("cont"));
- risultato.close();
- stmt.close();
- // ricavo le entries
- if (limit == 0) // con limit
- limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
- if (!search.equals("")) { // con search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".nome_soggetto");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".tipo_soggetto");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".id");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".descrizione");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".identificativo_porta");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".codice_ipa");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".id", "servid");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".nome_servizio");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".tipo_servizio");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".versione_servizio");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".servizio_correlato");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id_accordo");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id_soggetto");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI + ".id_accordo = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI + ".id_soggetto = " + CostantiDB.SOGGETTI + ".id");
- sqlQueryObject.addWhereCondition(false, sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI + ".nome_soggetto",search,true,true),
- sqlQueryObject.getWhereLikeCondition(CostantiDB.SOGGETTI + ".tipo_soggetto",search,true,true));
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI + ".tipo_soggetto");
- sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI + ".nome_soggetto");
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- } else {
- // senza search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".nome_soggetto");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".tipo_soggetto");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".id");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".descrizione");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".identificativo_porta");
- sqlQueryObject.addSelectField(CostantiDB.SOGGETTI+".codice_ipa");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".id", "servid");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".nome_servizio");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".tipo_servizio");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".versione_servizio");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".servizio_correlato");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id_accordo");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id_soggetto");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_accordo = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addOrderBy("tipo_soggetto");
- sqlQueryObject.addOrderBy("nome_soggetto");
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- }
- stmt = con.prepareStatement(queryString);
- stmt.setLong(1, idAccordo);
- risultato = stmt.executeQuery();
- Soggetto sog = null;
- String oldNome = "";
- String oldTipo = "";
- while (risultato.next()) {
- String newNome = risultato.getString("nome_soggetto");
- String newTipo = risultato.getString("tipo_soggetto");
- // se il nome o il tipo sono diversi allora e' un soggetto nuovo
- // altrimenti e' sempre lo stesso soggetto
- // il controllo va fatto prima sul tipo in quanto il risultato
- // e' ordinato come tipo/nome
- if (sog == null || !oldTipo.equals(newTipo) || !oldNome.equals(newNome)) {
- oldTipo=newTipo;
- oldNome=newNome;
- // se sog e' null e' la prima volta che visito il result set
- // e non devo aggiunger nulla alla lista
- // altrimenti ho finito di aggiungere i servizi ad un
- // soggetto e devo metterlo nella lista
- // e iniziare ad aggiungere i servizi al nuovo soggetto
- // trovato
- if (sog != null)
- lista.add(sog);
- // creo il nuovo soggetto
- sog = new Soggetto();
- sog.setId(risultato.getLong("id"));
- sog.setNome(risultato.getString("nome_soggetto"));
- sog.setTipo(risultato.getString("tipo_soggetto"));
- sog.setDescrizione(risultato.getString("descrizione"));
- sog.setIdentificativoPorta(risultato.getString("identificativo_porta"));
- sog.setCodiceIpa(risultato.getString("codice_ipa"));
- }
- AccordoServizioParteSpecifica serv = new AccordoServizioParteSpecifica();
- serv.setId(risultato.getLong("servid"));
- serv.setNome(risultato.getString("nome_servizio"));
- serv.setTipo(risultato.getString("tipo_servizio"));
- serv.setVersione(risultato.getInt("versione_servizio"));
- if ( risultato.getString("servizio_correlato").equals(CostantiRegistroServizi.ABILITATO.toString()) ||
- TipologiaServizio.CORRELATO.toString().equals(risultato.getString("servizio_correlato"))) {
- serv.setTipologiaServizio(TipologiaServizio.CORRELATO);
- }
- else{
- serv.setTipologiaServizio(TipologiaServizio.NORMALE);
- }
-
- ISQLQueryObject sqlQueryObjectFruitori = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectFruitori.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObjectFruitori.addFromTable(CostantiDB.SERVIZI_FRUITORI);
- sqlQueryObjectFruitori.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObjectFruitori.addSelectField(CostantiDB.SOGGETTI,"tipo_soggetto");
- sqlQueryObjectFruitori.addSelectField(CostantiDB.SOGGETTI,"nome_soggetto");
- sqlQueryObjectFruitori.addWhereCondition(CostantiDB.SERVIZI+".id = ?");
- sqlQueryObjectFruitori.addWhereCondition(CostantiDB.SERVIZI+".id = "+CostantiDB.SERVIZI_FRUITORI+".id_servizio");
- sqlQueryObjectFruitori.addWhereCondition(CostantiDB.SOGGETTI+".id = "+CostantiDB.SERVIZI_FRUITORI+".id_soggetto");
- sqlQueryObjectFruitori.setANDLogicOperator(true);
- sqlQueryObjectFruitori.setSelectDistinct(true);
- String queryStringFruitori = sqlQueryObjectFruitori.createSQLQuery();
- stmt2 = con.prepareStatement(queryStringFruitori);
- stmt2.setLong(1, serv.getId());
- risultato2 = stmt2.executeQuery();
- while (risultato2.next()) {
- String nome = risultato2.getString("nome_soggetto");
- String tipo = risultato2.getString("tipo_soggetto");
- Fruitore fruitore = new Fruitore();
- fruitore.setTipo(tipo);
- fruitore.setNome(nome);
- serv.addFruitore(fruitore);
- }
- risultato2.close();
- stmt2.close();
- serv.setTipoSoggettoErogatore(sog.getTipo());
- serv.setNomeSoggettoErogatore(sog.getNome());
- sog.addAccordoServizioParteSpecifica(serv);
- }
- //aggiungo l'ultimo soggetto alla lista
- if(sog!=null) lista.add(sog);
- return lista;
- } catch (Exception se) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception: " + se.getMessage(),se);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(risultato, stmt);
- JDBCUtilities.closeResources(risultato2, stmt2);
- this.driver.closeConnection(con);
- }
- }
-
- protected List<AccordoServizioParteSpecifica> getServiziByIdErogatore(long idErogatore,ISearch filters) throws DriverRegistroServiziException {
- return getServiziByIdErogatoreAndFilters(idErogatore, filters);
- }
- private List<AccordoServizioParteSpecifica> getServiziByIdErogatoreAndFilters(long idErogatore,ISearch filters) throws DriverRegistroServiziException {
- String nomeMetodo = "getServiziByIdErogatoreAndFilters";
- String queryString;
- int idLista = Liste.SERVIZI;
- Connection con = null;
- PreparedStatement stmt = null;
- ResultSet risultato = null;
- int limit = filters.getPageSize(idLista);
- int offset = filters.getIndexIniziale(idLista);
- String search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(filters.getSearchString(idLista)) ? "" : filters.getSearchString(idLista));
- ArrayList<AccordoServizioParteSpecifica> lista = null;
- if (this.driver.atomica) {
- try {
- con = this.driver.getConnectionFromDatasource("getServiziByIdErogatoreAndFilters");
- } catch (Exception e) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
- }
- } else {
- con = this.driver.globalConnection;
- }
- this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
- try {
- //count
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.addWhereCondition("id_soggetto = ?");
- sqlQueryObject.setANDLogicOperator(true);
- if (!search.equals("")) {
- //query con search
- sqlQueryObject.addWhereLikeCondition("nome_servizio", search, true, true);
- }
- queryString = sqlQueryObject.createSQLQuery();
- stmt = con.prepareStatement(queryString);
- stmt.setLong(1, idErogatore);
- risultato = stmt.executeQuery();
- if (risultato.next())
- filters.setNumEntries(idLista,risultato.getInt(1));
- risultato.close();
- stmt.close();
- // ricavo le entries
- if (limit == 0) // con limit
- limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addSelectField("nome_servizio");
- sqlQueryObject.addSelectField("tipo_servizio");
- sqlQueryObject.addSelectField("versione_servizio");
- sqlQueryObject.addSelectField("id_soggetto");
- sqlQueryObject.addWhereCondition("id_soggetto = ?");
- if (!search.equals("")) { // con search
- sqlQueryObject.addWhereLikeCondition("nome_servizio", search, true, true);
- }
- sqlQueryObject.addOrderBy("nome_servizio");
- sqlQueryObject.addOrderBy("versione_servizio");
- sqlQueryObject.addOrderBy("tipo_servizio");
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- stmt = con.prepareStatement(queryString);
- stmt.setLong(1, idErogatore);
- risultato = stmt.executeQuery();
- lista = new ArrayList<AccordoServizioParteSpecifica>();
- while (risultato.next()) {
- long id=risultato.getLong("id");
- AccordoServizioParteSpecifica se=this.driver.getAccordoServizioParteSpecifica(id, con);
- lista.add(se);
- }
- return lista;
- } catch (Exception se) {
- throw new DriverRegistroServiziException("[DriverControlStationDB::" + nomeMetodo + "] Exception: " + se.getMessage(),se);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(risultato, stmt);
- this.driver.closeConnection(con);
- }
- }
- protected List<AccordoServizioParteSpecifica> soggettiServizioList(String superuser, ISearch ricerca,boolean [] permessiUtente,
- boolean gestioneFruitori, boolean gestioneErogatori) throws DriverRegistroServiziException {
- String nomeMetodo = "soggettiServizioList";
- int idLista = Liste.SERVIZI;
- int offset;
- int limit;
- String searchAPIErogazioneFruizione;
- String queryString;
- Connection con = null;
- PreparedStatement stmt=null;
- ResultSet risultato=null;
- ArrayList<AccordoServizioParteSpecifica> serviziList = new ArrayList<>();
- String aliasSoggettiFruitori = "soggettoFruitore";
-
- String aliasSoggettiReferenti = "soggettoReferente";
-
- limit = ricerca.getPageSize(idLista);
- offset = ricerca.getIndexIniziale(idLista);
- searchAPIErogazioneFruizione = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
- ricerca.getSearchString(idLista);
- String filterProtocollo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLO);
- String filterProtocolli = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLI);
- List<String> tipoServiziProtocollo = null;
- try {
- tipoServiziProtocollo = Filtri.convertToTipiServizi(filterProtocollo, filterProtocolli);
- }catch(Exception e) {
- throw new DriverRegistroServiziException(e.getMessage(),e);
- }
- String filterTipoAPI = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_SERVICE_BINDING);
- if(filterTipoAPI!=null && filterTipoAPI.equals("")) {
- filterTipoAPI = null;
- }
-
- String filterGruppo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_GRUPPO);
- if(filterGruppo!=null && filterGruppo.equals("")) {
- filterGruppo = null;
- }
-
- String filterApi = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_API);
- IDAccordo idAccordoApi = null;
- if(filterApi!=null && filterApi.equals("")) {
- filterApi = null;
- }
- if(filterApi!=null) {
- try {
- idAccordoApi = IDAccordoFactory.getInstance().getIDAccordoFromUri(filterApi);
- }catch(Exception e) {
- throw new DriverRegistroServiziException(e.getMessage(),e);
- }
- }
-
- String filterCanale = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CANALE);
- boolean searchCanale = false;
- boolean canaleDefault = false;
- if(gestioneFruitori || gestioneErogatori) {
- if(filterCanale!=null && !filterCanale.equals("")) {
- searchCanale = true;
- if(filterCanale.startsWith(Filtri.PREFIX_VALUE_CANALE_DEFAULT)) {
- filterCanale = filterCanale.substring(Filtri.PREFIX_VALUE_CANALE_DEFAULT.length());
- canaleDefault = true;
- }
- }
- }
-
- String filterDominio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_DOMINIO);
- PddTipologia pddTipologia = null;
- if(filterDominio!=null && !"".equals(filterDominio)) {
- pddTipologia = PddTipologia.toPddTipologia(filterDominio);
- }
-
- String filterStatoAccordo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_STATO_ACCORDO);
-
- String filterSoggettoTipoNome = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_SOGGETTO);
- String filterSoggettoTipo = null;
- String filterSoggettoNome = null;
- if(filterSoggettoTipoNome!=null && !"".equals(filterSoggettoTipoNome)) {
- filterSoggettoTipo = filterSoggettoTipoNome.split("/")[0];
- filterSoggettoNome = filterSoggettoTipoNome.split("/")[1];
- }
-
- String filterSoggettoErogatoreContains = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_SOGGETTO_EROGATORE_CONTAINS);
-
- String filtroStatoAPIImpl = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_STATO);
- if((filtroStatoAPIImpl!=null && "".equals(filtroStatoAPIImpl))) {
- filtroStatoAPIImpl=null;
- }
-
- String filtroAutenticazioneTokenPolicy = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_AUTENTICAZIONE_TOKEN_TIPO);
- if((filtroAutenticazioneTokenPolicy!=null && "".equals(filtroAutenticazioneTokenPolicy))) {
- filtroAutenticazioneTokenPolicy=null;
- }
-
- String filtroAutenticazioneTrasportoTipo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_AUTENTICAZIONE_TRASPORTO_TIPO);
- if((filtroAutenticazioneTrasportoTipo!=null && "".equals(filtroAutenticazioneTrasportoTipo))) {
- filtroAutenticazioneTrasportoTipo=null;
- }
- String filtroAutenticazioneTrasportoTipoPlugin = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_AUTENTICAZIONE_TRASPORTO_TIPO_PLUGIN);
- if((filtroAutenticazioneTrasportoTipoPlugin!=null && "".equals(filtroAutenticazioneTrasportoTipoPlugin))) {
- filtroAutenticazioneTrasportoTipoPlugin=null;
- }
- if(filtroAutenticazioneTrasportoTipoPlugin!=null && !org.openspcoop2.core.constants.Costanti.VALUE_PARAMETRO_CUSTOM_IN_SELECT.equals(filtroAutenticazioneTrasportoTipo)) {
- filtroAutenticazioneTrasportoTipoPlugin=null;
- }
- String filtroAutenticazioneTrasporto = (filtroAutenticazioneTrasportoTipoPlugin!=null) ? filtroAutenticazioneTrasportoTipoPlugin : filtroAutenticazioneTrasportoTipo;
-
- String filtroRateLimitingStato = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_RATE_LIMITING_STATO);
- if((filtroRateLimitingStato!=null && "".equals(filtroRateLimitingStato))) {
- filtroRateLimitingStato=null;
- }
-
- String filtroValidazioneStato = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_VALIDAZIONE_STATO);
- if((filtroValidazioneStato!=null && "".equals(filtroValidazioneStato))) {
- filtroValidazioneStato=null;
- }
-
- String filtroCacheRispostaStato = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_CACHE_RISPOSTA_STATO);
- if((filtroCacheRispostaStato!=null && "".equals(filtroCacheRispostaStato))) {
- filtroCacheRispostaStato=null;
- }
-
- String filtroMessageSecurityStato = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_MESSAGE_SECURITY_STATO);
- if((filtroMessageSecurityStato!=null && "".equals(filtroMessageSecurityStato))) {
- filtroMessageSecurityStato=null;
- }
-
- String filtroMTOMStato = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_MTOM_STATO);
- if((filtroMTOMStato!=null && "".equals(filtroMTOMStato))) {
- filtroMTOMStato=null;
- }
- if(filtroMTOMStato!=null && "rest".equalsIgnoreCase(filterTipoAPI)) {
- filtroMTOMStato=null;
- }
-
- String filtroTrasformazione = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_TRASFORMAZIONE_STATO);
- if((filtroTrasformazione!=null && "".equals(filtroTrasformazione))) {
- filtroTrasformazione=null;
- }
-
- String filtroConfigurazioneTransazioni = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_TRANSAZIONI);
- if((filtroConfigurazioneTransazioni!=null && "".equals(filtroConfigurazioneTransazioni))) {
- filtroConfigurazioneTransazioni=null;
- }
-
- String filtroCorrelazioneApplicativa = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_CORRELAZIONE_APPLICATIVA_STATO);
- if((filtroCorrelazioneApplicativa!=null && "".equals(filtroCorrelazioneApplicativa))) {
- filtroCorrelazioneApplicativa=null;
- }
-
- String filtroConfigurazioneDumpTipo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_DUMP_TIPO);
- if((filtroConfigurazioneDumpTipo!=null && "".equals(filtroConfigurazioneDumpTipo))) {
- filtroConfigurazioneDumpTipo=null;
- }
-
- String filtroCORS = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_CORS_TIPO);
- if((filtroCORS!=null && "".equals(filtroCORS))) {
- filtroCORS=null;
- }
- String filtroCORSorigin = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONFIGURAZIONE_CORS_ORIGIN);
- if((filtroCORSorigin!=null && "".equals(filtroCORSorigin))) {
- filtroCORSorigin=null;
- }
- if((filtroCORSorigin!=null && !Filtri.FILTRO_CONFIGURAZIONE_CORS_TIPO_VALORE_RIDEFINITO_ABILITATO.equals(filtroCORS))) {
- filtroCORSorigin=null;
- }
-
- String filtroConnettoreTipo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONNETTORE_TIPO);
- String filtroConnettoreTipoPlugin = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONNETTORE_TIPO_PLUGIN);
- String filtroConnettoreTokenPolicy = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONNETTORE_TOKEN_POLICY);
- String filtroConnettoreEndpoint = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONNETTORE_ENDPOINT);
- String filtroConnettoreKeystore = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONNETTORE_KEYSTORE);
- String filtroConnettoreDebug = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CONNETTORE_DEBUG);
- if((filtroConnettoreTipo!=null && "".equals(filtroConnettoreTipo))) {
- filtroConnettoreTipo=null;
- }
- if((filtroConnettoreTipoPlugin!=null && "".equals(filtroConnettoreTipoPlugin))) {
- filtroConnettoreTipoPlugin=null;
- }
- if((filtroConnettoreTokenPolicy!=null && "".equals(filtroConnettoreTokenPolicy))) {
- filtroConnettoreTokenPolicy=null;
- }
- if((filtroConnettoreEndpoint!=null && "".equals(filtroConnettoreEndpoint))) {
- filtroConnettoreEndpoint=null;
- }
- if((filtroConnettoreKeystore!=null && "".equals(filtroConnettoreKeystore))) {
- filtroConnettoreKeystore=null;
- }
- if((filtroConnettoreDebug!=null && "".equals(filtroConnettoreDebug))) {
- filtroConnettoreDebug=null;
- }
- boolean joinConnettore = filtroConnettoreTipo!=null || filtroConnettoreTokenPolicy!=null || filtroConnettoreEndpoint!=null || filtroConnettoreKeystore!=null || filtroConnettoreDebug!=null;
- TipiConnettore tipoConnettore = null;
- String endpointType = null;
- boolean tipoConnettoreIntegrationManager = false;
- if(filtroConnettoreTipo!=null && !"".equals(filtroConnettoreTipo)) {
- if(Filtri.FILTRO_CONNETTORE_TIPO_VALORE_IM.equals(filtroConnettoreTipo)) {
- tipoConnettoreIntegrationManager = true;
- }
- else {
- tipoConnettore = TipiConnettore.toEnumFromName(filtroConnettoreTipo);
- if(tipoConnettore!=null) {
- endpointType = (TipiConnettore.CUSTOM.equals(tipoConnettore)) ? filtroConnettoreTipoPlugin : tipoConnettore.getNome();
- }
- }
- }
-
- String filtroModISicurezzaCanale = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_CANALE);
- String filtroModISicurezzaMessaggio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_MESSAGGIO);
- String filtroModISorgenteToken = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SORGENTE_TOKEN);
- String filtroModIKeystorePath = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_PATH);
- String filtroModIAudience = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_AUDIENCE);
- String filtroModIInfoUtente = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_INFORMAZIONI_UTENTE);
- String filtroModIDigestRichiesta = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_DIGEST_RICHIESTA);
- if((filtroModISicurezzaCanale!=null && "".equals(filtroModISicurezzaCanale))) {
- filtroModISicurezzaCanale=null;
- }
- if((filtroModISicurezzaMessaggio!=null && "".equals(filtroModISicurezzaMessaggio))) {
- filtroModISicurezzaMessaggio=null;
- }
- if((filtroModISorgenteToken!=null && "".equals(filtroModISorgenteToken))) {
- filtroModISorgenteToken=null;
- }
- Boolean filtroModIDigestRichiestaEnabled = null;
- if(CostantiDB.STATO_FUNZIONALITA_ABILITATO.equals(filtroModIDigestRichiesta)) {
- filtroModIDigestRichiestaEnabled = true;
- }
- else if(CostantiDB.STATO_FUNZIONALITA_DISABILITATO.equals(filtroModIDigestRichiesta)) {
- filtroModIDigestRichiestaEnabled = false;
- }
- if((filtroModIInfoUtente!=null && "".equals(filtroModIInfoUtente))) {
- filtroModIInfoUtente=null;
- }
- if((filtroModIKeystorePath!=null && "".equals(filtroModIKeystorePath))) {
- filtroModIKeystorePath=null;
- }
- if((filtroModIAudience!=null && "".equals(filtroModIAudience))) {
- filtroModIAudience=null;
- }
- boolean filtroModI = filtroModISicurezzaCanale!=null || filtroModISicurezzaMessaggio!=null ||
- filtroModISorgenteToken!=null ||
- filtroModIDigestRichiestaEnabled!=null || filtroModIInfoUtente!=null ||
- filtroModIKeystorePath!=null || filtroModIAudience!=null;
-
- String filtroProprietaNome = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROPRIETA_NOME);
- String filtroProprietaValore = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROPRIETA_VALORE);
- if((filtroProprietaNome!=null && "".equals(filtroProprietaNome))) {
- filtroProprietaNome=null;
- }
- if((filtroProprietaValore!=null && "".equals(filtroProprietaValore))) {
- filtroProprietaValore=null;
- }
- boolean filtroProprieta = filtroProprietaNome!=null || filtroProprietaValore!=null;
-
- this.driver.logDebug("search : " + searchAPIErogazioneFruizione);
- this.driver.logDebug("filterSoggettoErogatoreContains : "+filterSoggettoErogatoreContains);
- this.driver.logDebug("filterProtocollo : " + filterProtocollo);
- this.driver.logDebug("filterProtocolli : " + filterProtocolli);
- this.driver.logDebug("filterTipoAPI : " + filterTipoAPI);
- this.driver.logDebug("filterGruppo : " + filterGruppo);
- this.driver.logDebug("filterApi : " + filterApi);
- this.driver.logDebug("filterCanale : " + filterCanale);
- this.driver.logDebug("filterDominio : " + filterDominio);
- this.driver.logDebug("filterStatoAccordo : " + filterStatoAccordo);
- this.driver.logDebug("filterSoggettoNome : " + filterSoggettoNome);
- this.driver.logDebug("filterSoggettoTipo : " + filterSoggettoTipo);
- this.driver.logDebug("filtroStatoAPIImpl : " + filtroStatoAPIImpl);
- this.driver.logDebug("filtroAutenticazioneTokenPolicy : " + filtroAutenticazioneTokenPolicy);
- this.driver.logDebug("filtroAutenticazioneTrasporto : " + filtroAutenticazioneTrasporto);
- this.driver.logDebug("filtroRateLimitingStato : " + filtroRateLimitingStato);
- this.driver.logDebug("filtroValidazioneStato : " + filtroValidazioneStato);
- this.driver.logDebug("filtroCacheRispostaStato : " + filtroCacheRispostaStato);
- this.driver.logDebug("filtroMessageSecurityStato : " + filtroMessageSecurityStato);
- this.driver.logDebug("filtroMTOMStato : " + filtroMTOMStato);
- this.driver.logDebug("filtroTrasformazione : " + filtroTrasformazione);
- this.driver.logDebug("filtroConfigurazioneTransazioni : " + filtroConfigurazioneTransazioni);
- this.driver.logDebug("filtroCorrelazioneApplicativa : " + filtroCorrelazioneApplicativa);
- this.driver.logDebug("filtroConfigurazioneDumpTipo : " + filtroConfigurazioneDumpTipo);
- this.driver.logDebug("filtroCORS : " + filtroCORS);
- this.driver.logDebug("filtroCORS_origin : " + filtroCORSorigin);
- this.driver.logDebug("filtroConnettoreTipo : " + filtroConnettoreTipo);
- this.driver.logDebug("filtroConnettoreTipoPlugin : " + filtroConnettoreTipoPlugin);
- this.driver.logDebug("filtroConnettoreTokenPolicy : " + filtroConnettoreTokenPolicy);
- this.driver.logDebug("filtroConnettoreEndpoint : " + filtroConnettoreEndpoint);
- this.driver.logDebug("filtroConnettoreKeystore : " + filtroConnettoreKeystore);
- this.driver.logDebug("filtroConnettoreDebug : " + filtroConnettoreDebug);
- this.driver.logDebug("filtroConnettoreTipoPlugin : " + filtroConnettoreTipoPlugin);
- this.driver.logDebug("filtroModISicurezzaCanale : " + filtroModISicurezzaCanale);
- this.driver.logDebug("filtroModISicurezzaMessaggio : " + filtroModISicurezzaMessaggio);
- this.driver.logDebug("filtroModISorgenteToken : " + filtroModISorgenteToken);
- this.driver.logDebug("filtroModIKeystorePath : " + filtroModIKeystorePath);
- this.driver.logDebug("filtroModIAudience : " + filtroModIAudience);
- this.driver.logDebug("filtroModIInfoUtente : " + filtroModIInfoUtente);
- this.driver.logDebug("filtroModIDigestRichiesta : " + filtroModIDigestRichiesta);
- this.driver.logDebug("filtroProprietaNome : " + filtroProprietaNome);
- this.driver.logDebug("filtroProprietaValore : " + filtroProprietaValore);
-
- if (this.driver.atomica) {
- try {
- con = this.driver.getConnectionFromDatasource("soggettiServizioList");
- } catch (Exception e) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);
- }
- } else
- con = this.driver.globalConnection;
- this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);
- try {
- ISQLQueryObject sqlQueryObjectAccordiComposti = null;
- if (permessiUtente != null) {
- sqlQueryObjectAccordiComposti = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectAccordiComposti.addFromTable(CostantiDB.ACCORDI_SERVIZI_COMPOSTO);
- sqlQueryObjectAccordiComposti.addSelectField(CostantiDB.ACCORDI_SERVIZI_COMPOSTO, "id");
- sqlQueryObjectAccordiComposti.setANDLogicOperator(true);
- sqlQueryObjectAccordiComposti.addWhereCondition(CostantiDB.ACCORDI_SERVIZI_COMPOSTO+".id_accordo="+CostantiDB.ACCORDI+".id");
- }
- ISQLQueryObject sqlQueryObjectSoggettiErogatoreContains = null;
- if (!filterSoggettoErogatoreContains.equals("")) {
- sqlQueryObjectSoggettiErogatoreContains = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectSoggettiErogatoreContains.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObjectSoggettiErogatoreContains.addSelectField(CostantiDB.SOGGETTI, "tipo_soggetto");
- sqlQueryObjectSoggettiErogatoreContains.addSelectField(CostantiDB.SOGGETTI, "nome_soggetto");
- sqlQueryObjectSoggettiErogatoreContains.setANDLogicOperator(true);
- sqlQueryObjectSoggettiErogatoreContains.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto="+CostantiDB.SOGGETTI+".id");
- sqlQueryObjectSoggettiErogatoreContains.addWhereCondition(false,
- //sqlQueryObjectSoggettiErogatoreContains.getWhereLikeCondition("tipo_soggetto", search, true, true),
- sqlQueryObjectSoggettiErogatoreContains.getWhereLikeCondition("nome_soggetto", filterSoggettoErogatoreContains, true, true));
- }
- ISQLQueryObject sqlQueryObjectPdd = null;
- if(pddTipologia!=null && PddTipologia.ESTERNO.equals(pddTipologia)) {
- ISQLQueryObject sqlQueryObjectExistsPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectExistsPdd.addSelectField(CostantiDB.PDD+".nome");
- sqlQueryObjectExistsPdd.addFromTable(CostantiDB.PDD);
- sqlQueryObjectExistsPdd.setANDLogicOperator(true);
- sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server");
- sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+".tipo=?");
-
- sqlQueryObjectPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObjectPdd.setANDLogicOperator(false);
- sqlQueryObjectPdd.addWhereIsNullCondition(CostantiDB.SOGGETTI+".server");
- sqlQueryObjectPdd.addWhereExistsCondition(false, sqlQueryObjectExistsPdd);
- }
-
- if (!searchAPIErogazioneFruizione.equals("")) {
- //query con search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- if(permessiUtente!=null || filterTipoAPI!=null || filterGruppo!=null || idAccordoApi!=null || searchCanale || filtroModI
- || !searchAPIErogazioneFruizione.equals("") // aggiunto per cercare anche sul nome dell'API (parte comune)
- ) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI);
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_accordo="+CostantiDB.ACCORDI+".id");
- if(filterGruppo!=null) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_accordo="+CostantiDB.ACCORDI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_gruppo="+CostantiDB.GRUPPI+".id");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiReferenti);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id_referente="+aliasSoggettiReferenti+".id");
- }
- }
- if(gestioneFruitori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_FRUIZIONE_PD);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiFruitori);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_fruizione="+CostantiDB.SERVIZI_FRUITORI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
- }
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_servizio="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_soggetto="+aliasSoggettiFruitori+".id");
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreFruizione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- if(gestioneErogatori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_EROGAZIONE_PA);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_erogazione="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_porta="+CostantiDB.PORTE_APPLICATIVE+".id");
- }
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreErogazione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
- if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
- if(gestioneFruitori) {
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".nome_soggetto=?");
- }
- else {
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".nome_soggetto=?");
- }
- }
- if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
- if(tipoServiziProtocollo!=null && tipoServiziProtocollo.size()>0) {
- sqlQueryObject.addWhereINCondition(CostantiDB.SERVIZI+".tipo_servizio", true, tipoServiziProtocollo.toArray(new String[1]));
- }
- if(filterTipoAPI!=null && !filterTipoAPI.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".service_binding = ?");
- }
- if(filterGruppo!=null && !filterGruppo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.GRUPPI+".nome = ?");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".nome = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".versione = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".tipo_soggetto = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".nome_soggetto = ?");
- }
- if(pddTipologia!=null) {
- if(PddTipologia.ESTERNO.equals(pddTipologia)) {
- sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
- }
- else {
- sqlQueryObject.addFromTable(CostantiDB.PDD);
- sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
- }
- }
- if(filterStatoAccordo!=null && !filterStatoAccordo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".stato = ?");
- }
- if(sqlQueryObjectSoggettiErogatoreContains!=null) {
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectSoggettiErogatoreContains);
- }
- sqlQueryObject.addWhereCondition(false,
-
- // - ricerca su tipo/nome/versione servizio
- //sqlQueryObject.getWhereLikeCondition("tipo_servizio", search, true, true),
- sqlQueryObject.getWhereLikeCondition("nome_servizio", searchAPIErogazioneFruizione, true, true),
- //sqlQueryObject.getWhereLikeCondition("versione_servizio", search, true, true),
-
- // - ricerca su nome dell'API (parte comune)
- sqlQueryObject.getWhereLikeCondition(CostantiDB.ACCORDI+".nome", searchAPIErogazioneFruizione, true, true)
-
- );
- if(permessiUtente != null){
- // solo S
- if(permessiUtente[0] && !permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(true, sqlQueryObjectAccordiComposti);
- // solo P
- if(!permessiUtente[0] && permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectAccordiComposti);
- // P che S come ora non aggiungo la condizione
- }
- if(searchCanale) {
- String tabellaPorta = gestioneErogatori ? CostantiDB.PORTE_APPLICATIVE : CostantiDB.PORTE_DELEGATE;
- if(canaleDefault) {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND ("+CostantiDB.ACCORDI+".canale = ? OR "+CostantiDB.ACCORDI+".canale is null) )"));
- }
- else {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND "+CostantiDB.ACCORDI+".canale = ? )"));
- }
- }
-
- sqlQueryObject.setANDLogicOperator(true);
- queryString = sqlQueryObject.createSQLQuery();
- } else {
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- if(permessiUtente!=null || filterTipoAPI!=null || filterGruppo!=null || idAccordoApi!=null || searchCanale || filtroModI) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI);
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_accordo="+CostantiDB.ACCORDI+".id");
- if(filterGruppo!=null) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_accordo="+CostantiDB.ACCORDI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_gruppo="+CostantiDB.GRUPPI+".id");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiReferenti);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id_referente="+aliasSoggettiReferenti+".id");
- }
- }
- if(gestioneFruitori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_FRUIZIONE_PD);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiFruitori);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_fruizione="+CostantiDB.SERVIZI_FRUITORI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
- }
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_servizio="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_soggetto="+aliasSoggettiFruitori+".id");
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreFruizione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- if(gestioneErogatori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_EROGAZIONE_PA);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_erogazione="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_porta="+CostantiDB.PORTE_APPLICATIVE+".id");
- }
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreErogazione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- sqlQueryObject.addSelectCountField("*", "cont");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
- if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
- if(gestioneFruitori) {
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".nome_soggetto=?");
- }
- else {
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".nome_soggetto=?");
- }
- }
- if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
- if(tipoServiziProtocollo!=null && tipoServiziProtocollo.size()>0) {
- sqlQueryObject.addWhereINCondition(CostantiDB.SERVIZI+".tipo_servizio", true, tipoServiziProtocollo.toArray(new String[1]));
- }
- if(filterTipoAPI!=null && !filterTipoAPI.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".service_binding = ?");
- }
- if(filterGruppo!=null && !filterGruppo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.GRUPPI+".nome = ?");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".nome = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".versione = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".tipo_soggetto = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".nome_soggetto = ?");
- }
- if(pddTipologia!=null) {
- if(PddTipologia.ESTERNO.equals(pddTipologia)) {
- sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
- }
- else {
- sqlQueryObject.addFromTable(CostantiDB.PDD);
- sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
- }
- }
- if(filterStatoAccordo!=null && !filterStatoAccordo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".stato = ?");
- }
- if(sqlQueryObjectSoggettiErogatoreContains!=null) {
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectSoggettiErogatoreContains);
- }
- if(permessiUtente != null){
- // solo S
- if(permessiUtente[0] && !permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(true, sqlQueryObjectAccordiComposti);
- // solo P
- if(!permessiUtente[0] && permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectAccordiComposti);
- // P che S come ora non aggiungo la condizione
- }
- if(searchCanale) {
- String tabellaPorta = gestioneErogatori ? CostantiDB.PORTE_APPLICATIVE : CostantiDB.PORTE_DELEGATE;
- if(canaleDefault) {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND ("+CostantiDB.ACCORDI+".canale = ? OR "+CostantiDB.ACCORDI+".canale is null) )"));
- }
- else {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND "+CostantiDB.ACCORDI+".canale = ? )"));
- }
- }
-
- sqlQueryObject.setANDLogicOperator(true);
- queryString = sqlQueryObject.createSQLQuery();
- }
- stmt = con.prepareStatement(queryString);
- int index = 1;
- if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
- stmt.setString(index++, filterSoggettoTipo);
- stmt.setString(index++, filterSoggettoNome);
- }
- if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
- stmt.setString(index++, superuser);
- if(filterTipoAPI!=null && !filterTipoAPI.equals("")) {
- stmt.setString(index++, filterTipoAPI);
- }
- if(filterGruppo!=null && !filterGruppo.equals("")) {
- stmt.setString(index++, filterGruppo);
- }
- if(idAccordoApi!=null) {
- stmt.setString(index++, idAccordoApi.getNome());
- stmt.setInt(index++, idAccordoApi.getVersione());
- stmt.setString(index++, idAccordoApi.getSoggettoReferente().getTipo());
- stmt.setString(index++, idAccordoApi.getSoggettoReferente().getNome());
- }
- if(pddTipologia!=null) {
- stmt.setString(index++, pddTipologia.toString());
- }
- if(filterStatoAccordo!=null && !filterStatoAccordo.equals("")) {
- stmt.setString(index++, filterStatoAccordo);
- }
- if(searchCanale) {
- stmt.setString(index++, filterCanale);
- stmt.setString(index++, filterCanale);
- }
- risultato = stmt.executeQuery();
- if (risultato.next())
- ricerca.setNumEntries(idLista,risultato.getInt(1));
- risultato.close();
- stmt.close();
- // ricavo le entries
- if (limit == 0) // con limit
- limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
- if (!searchAPIErogazioneFruizione.equals("")) { // con search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- if(permessiUtente!=null || filterTipoAPI!=null || filterGruppo!=null || idAccordoApi!=null || searchCanale || filtroModI
- || !searchAPIErogazioneFruizione.equals("") // aggiunto per cercare anche sul nome dell'API (parte comune)
- ) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI);
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_accordo="+CostantiDB.ACCORDI+".id");
- if(filterGruppo!=null) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_accordo="+CostantiDB.ACCORDI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_gruppo="+CostantiDB.GRUPPI+".id");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiReferenti);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id_referente="+aliasSoggettiReferenti+".id");
- }
- }
- if(gestioneFruitori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_FRUIZIONE_PD);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiFruitori);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_fruizione="+CostantiDB.SERVIZI_FRUITORI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
- }
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_servizio="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_soggetto="+aliasSoggettiFruitori+".id");
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreFruizione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- if(gestioneErogatori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_EROGAZIONE_PA);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_erogazione="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_porta="+CostantiDB.PORTE_APPLICATIVE+".id");
- }
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreErogazione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".nome_servizio", "nomeServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".tipo_servizio", "tipoServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".versione_servizio", "versioneServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".id_soggetto","idSoggettoErogatore");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id_accordo");
- sqlQueryObject.addSelectField("servizio_correlato");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".stato","statoServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI,"descrizione","descrizioneServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI+".nome_soggetto","nomeSoggettoErogatore");
- sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI+".tipo_soggetto","tipoSoggettoErogatore");
- sqlQueryObject.addSelectField("port_type");
- if(gestioneFruitori) {
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI_FRUITORI+".id","idFruizione");
- sqlQueryObject.addSelectAliasField(aliasSoggettiFruitori+".id","idSoggettoFruitore");
- sqlQueryObject.addSelectAliasField(aliasSoggettiFruitori+".nome_soggetto","nomeSoggettoFruitore");
- sqlQueryObject.addSelectAliasField(aliasSoggettiFruitori+".tipo_soggetto","tipoSoggettoFruitore");
- }
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
- if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
- if(gestioneFruitori) {
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".nome_soggetto=?");
- }
- else {
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".nome_soggetto=?");
- }
- }
- if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
- if(tipoServiziProtocollo!=null && tipoServiziProtocollo.size()>0) {
- sqlQueryObject.addWhereINCondition(CostantiDB.SERVIZI+".tipo_servizio", true, tipoServiziProtocollo.toArray(new String[1]));
- }
- if(filterTipoAPI!=null && !filterTipoAPI.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".service_binding = ?");
- }
- if(filterGruppo!=null && !filterGruppo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.GRUPPI+".nome = ?");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".nome = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".versione = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".tipo_soggetto = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".nome_soggetto = ?");
- }
- if(pddTipologia!=null) {
- if(PddTipologia.ESTERNO.equals(pddTipologia)) {
- sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
- }
- else {
- sqlQueryObject.addFromTable(CostantiDB.PDD);
- sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
- }
- }
- if(filterStatoAccordo!=null && !filterStatoAccordo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".stato = ?");
- }
- if(sqlQueryObjectSoggettiErogatoreContains!=null) {
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectSoggettiErogatoreContains);
- }
- sqlQueryObject.addWhereCondition(false,
-
- // - ricerca su tipo/nome/versione servizio
- //sqlQueryObject.getWhereLikeCondition("tipo_servizio", search, true, true),
- sqlQueryObject.getWhereLikeCondition("nome_servizio", searchAPIErogazioneFruizione, true, true),
- //sqlQueryObject.getWhereLikeCondition("versione_servizio", search, true, true),
-
- // - ricerca su nome dell'API (parte comune)
- sqlQueryObject.getWhereLikeCondition(CostantiDB.ACCORDI+".nome", searchAPIErogazioneFruizione, true, true)
- );
-
- if(permessiUtente != null){
- // solo S
- if(permessiUtente[0] && !permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(true, sqlQueryObjectAccordiComposti);
- // solo P
- if(!permessiUtente[0] && permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectAccordiComposti);
- // P che S come ora non aggiungo la condizione
- }
-
- if(searchCanale) {
- String tabellaPorta = gestioneErogatori ? CostantiDB.PORTE_APPLICATIVE : CostantiDB.PORTE_DELEGATE;
- if(canaleDefault) {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND ("+CostantiDB.ACCORDI+".canale = ? OR "+CostantiDB.ACCORDI+".canale is null) )"));
- }
- else {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND "+CostantiDB.ACCORDI+".canale = ? )"));
- }
- }
-
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addOrderBy("nomeServizio");
- sqlQueryObject.addOrderBy("versioneServizio");
- sqlQueryObject.addOrderBy("nomeSoggettoErogatore");
- sqlQueryObject.addOrderBy("tipoServizio");
- sqlQueryObject.addOrderBy("tipoSoggettoErogatore");
- if(gestioneFruitori) {
- sqlQueryObject.addOrderBy("nomeSoggettoFruitore");
- sqlQueryObject.addOrderBy("tipoSoggettoFruitore");
- }
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- } else {
- // senza search
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- if(permessiUtente!=null || filterTipoAPI!=null || filterGruppo!=null || idAccordoApi!=null || searchCanale || filtroModI) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI);
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_accordo="+CostantiDB.ACCORDI+".id");
- if(filterGruppo!=null) {
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_accordo="+CostantiDB.ACCORDI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_gruppo="+CostantiDB.GRUPPI+".id");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiReferenti);
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".id_referente="+aliasSoggettiReferenti+".id");
- }
- }
- if(gestioneFruitori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_FRUIZIONE_PD);
- sqlQueryObject.addFromTable(CostantiDB.SERVIZI_FRUITORI);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI, aliasSoggettiFruitori);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_fruizione="+CostantiDB.SERVIZI_FRUITORI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_FRUIZIONE_PD+".id_porta="+CostantiDB.PORTE_DELEGATE+".id");
- }
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_servizio="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_FRUITORI+".id_soggetto="+aliasSoggettiFruitori+".id");
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreFruizione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneFruizione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- if(gestioneErogatori) {
- sqlQueryObject.addFromTable(CostantiDB.MAPPING_EROGAZIONE_PA);
- if(searchCanale) {
- sqlQueryObject.addFromTable(CostantiDB.PORTE_APPLICATIVE);
- }
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_erogazione="+CostantiDB.SERVIZI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".is_default=1");
- if(searchCanale) {
- sqlQueryObject.addWhereCondition(CostantiDB.MAPPING_EROGAZIONE_PA+".id_porta="+CostantiDB.PORTE_APPLICATIVE+".id");
- }
- if(joinConnettore) {
- DBUtils.setFiltriConnettoreErogazione(sqlQueryObject, this.driver.tipoDB,
- tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
- filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
- }
- if(filtroModI) {
- DBUtils.setFiltriModIErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroModISicurezzaCanale, filtroModISicurezzaMessaggio,
- filtroModISorgenteToken,
- filtroModIDigestRichiestaEnabled, filtroModIInfoUtente,
- filtroModIKeystorePath, filtroModIAudience);
- }
- if(filtroProprieta) {
- DBUtils.setFiltriProprietaErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroProprietaNome, filtroProprietaValore);
- }
- if(filtroStatoAPIImpl!=null ||
- filtroAutenticazioneTokenPolicy!=null || filtroAutenticazioneTrasporto!=null ||
- filtroRateLimitingStato!=null ||
- filtroValidazioneStato!=null ||
- filtroCacheRispostaStato!=null ||
- filtroMessageSecurityStato!=null ||
- filtroMTOMStato!=null ||
- filtroTrasformazione!=null ||
- filtroConfigurazioneTransazioni!=null ||
- filtroCorrelazioneApplicativa!=null ||
- filtroConfigurazioneDumpTipo!=null ||
- filtroCORS!=null) {
- DBUtils.setFiltriConfigurazioneErogazione(sqlQueryObject, this.driver.tipoDB,
- filtroStatoAPIImpl,
- filtroAutenticazioneTokenPolicy, filtroAutenticazioneTrasporto,
- filtroRateLimitingStato,
- filtroValidazioneStato,
- filtroCacheRispostaStato,
- filtroMessageSecurityStato,
- filtroMTOMStato,
- filtroTrasformazione,
- filtroConfigurazioneTransazioni,
- filtroCorrelazioneApplicativa,
- filtroConfigurazioneDumpTipo,
- filtroCORS, filtroCORSorigin);
- }
- }
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".nome_servizio", "nomeServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".tipo_servizio", "tipoServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".versione_servizio", "versioneServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".id_soggetto","idSoggettoErogatore");
- sqlQueryObject.addSelectField(CostantiDB.SERVIZI+".id_accordo");
- sqlQueryObject.addSelectField("servizio_correlato");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI+".stato","statoServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI,"descrizione","descrizioneServizio");
- sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI+".nome_soggetto","nomeSoggettoErogatore");
- sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI+".tipo_soggetto","tipoSoggettoErogatore");
- sqlQueryObject.addSelectField("port_type");
- if(gestioneFruitori) {
- sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI_FRUITORI+".id","idFruizione");
- sqlQueryObject.addSelectAliasField(aliasSoggettiFruitori+".id","idSoggettoFruitore");
- sqlQueryObject.addSelectAliasField(aliasSoggettiFruitori+".nome_soggetto","nomeSoggettoFruitore");
- sqlQueryObject.addSelectAliasField(aliasSoggettiFruitori+".tipo_soggetto","tipoSoggettoFruitore");
- }
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".id_soggetto = "+CostantiDB.SOGGETTI+".id");
- if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
- if(gestioneFruitori) {
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(aliasSoggettiFruitori+".nome_soggetto=?");
- }
- else {
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".tipo_soggetto=?");
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".nome_soggetto=?");
- }
- }
- if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
- sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
-
- if(tipoServiziProtocollo!=null && tipoServiziProtocollo.size()>0) {
- sqlQueryObject.addWhereINCondition(CostantiDB.SERVIZI+".tipo_servizio", true, tipoServiziProtocollo.toArray(new String[1]));
- }
- if(filterTipoAPI!=null && !filterTipoAPI.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".service_binding = ?");
- }
- if(filterGruppo!=null && !filterGruppo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.GRUPPI+".nome = ?");
- }
- if(idAccordoApi!=null) {
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".nome = ?");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI+".versione = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".tipo_soggetto = ?");
- sqlQueryObject.addWhereCondition(aliasSoggettiReferenti+".nome_soggetto = ?");
- }
- if(pddTipologia!=null) {
- if(PddTipologia.ESTERNO.equals(pddTipologia)) {
- sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
- }
- else {
- sqlQueryObject.addFromTable(CostantiDB.PDD);
- sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+".nome="+CostantiDB.SOGGETTI+".server",CostantiDB.PDD+".tipo=?");
- }
- }
- if(filterStatoAccordo!=null && !filterStatoAccordo.equals("")) {
- sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI+".stato = ?");
- }
- if(sqlQueryObjectSoggettiErogatoreContains!=null) {
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectSoggettiErogatoreContains);
- }
-
- if(permessiUtente != null){
- // solo S
- if(permessiUtente[0] && !permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(true, sqlQueryObjectAccordiComposti);
- // solo P
- if(!permessiUtente[0] && permessiUtente[1])
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectAccordiComposti);
- // P che S come ora non aggiungo la condizione
- }
-
- if(searchCanale) {
- String tabellaPorta = gestioneErogatori ? CostantiDB.PORTE_APPLICATIVE : CostantiDB.PORTE_DELEGATE;
- if(canaleDefault) {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND ("+CostantiDB.ACCORDI+".canale = ? OR "+CostantiDB.ACCORDI+".canale is null) )"));
- }
- else {
- sqlQueryObject.addWhereCondition(false,
- (tabellaPorta+".canale = ?"),
- ("( "+ tabellaPorta+".canale is null AND "+CostantiDB.ACCORDI+".canale = ? )"));
- }
- }
-
- sqlQueryObject.setANDLogicOperator(true);
- sqlQueryObject.addOrderBy("nomeServizio");
- sqlQueryObject.addOrderBy("versioneServizio");
- sqlQueryObject.addOrderBy("nomeSoggettoErogatore");
- sqlQueryObject.addOrderBy("tipoServizio");
- sqlQueryObject.addOrderBy("tipoSoggettoErogatore");
- if(gestioneFruitori) {
- sqlQueryObject.addOrderBy("nomeSoggettoFruitore");
- sqlQueryObject.addOrderBy("tipoSoggettoFruitore");
- }
- sqlQueryObject.setSortType(true);
- sqlQueryObject.setLimit(limit);
- sqlQueryObject.setOffset(offset);
- queryString = sqlQueryObject.createSQLQuery();
- }
- this.driver.logDebug("query : " + queryString);
- stmt = con.prepareStatement(queryString);
- index = 1;
- if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
- stmt.setString(index++, filterSoggettoTipo);
- stmt.setString(index++, filterSoggettoNome);
- }
- if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
- stmt.setString(index++, superuser);
- if(filterTipoAPI!=null && !filterTipoAPI.equals("")) {
- stmt.setString(index++, filterTipoAPI);
- }
- if(filterGruppo!=null && !filterGruppo.equals("")) {
- stmt.setString(index++, filterGruppo);
- }
- if(idAccordoApi!=null) {
- stmt.setString(index++, idAccordoApi.getNome());
- stmt.setInt(index++, idAccordoApi.getVersione());
- stmt.setString(index++, idAccordoApi.getSoggettoReferente().getTipo());
- stmt.setString(index++, idAccordoApi.getSoggettoReferente().getNome());
- }
- if(pddTipologia!=null) {
- stmt.setString(index++, pddTipologia.toString());
- }
- if(filterStatoAccordo!=null && !filterStatoAccordo.equals("")) {
- stmt.setString(index++, filterStatoAccordo);
- }
- if(searchCanale) {
- stmt.setString(index++, filterCanale);
- stmt.setString(index++, filterCanale);
- }
- risultato = stmt.executeQuery();
- while (risultato.next()) {
- AccordoServizioParteSpecifica serv = new AccordoServizioParteSpecifica();
-
- serv.setId(risultato.getLong("id"));
- serv.setNome(risultato.getString("nomeServizio"));
- serv.setTipo(risultato.getString("tipoServizio"));
- serv.setVersione(risultato.getInt("versioneServizio"));
- serv.setPortType(risultato.getString("port_type"));
- serv.setIdSoggetto(risultato.getLong("idSoggettoErogatore"));
- serv.setIdAccordo(risultato.getLong("id_accordo"));
- String servizioCorrelato = risultato.getString("servizio_correlato");
- if( (servizioCorrelato != null) &&
- (servizioCorrelato.equalsIgnoreCase(CostantiRegistroServizi.ABILITATO.toString()) ||
- TipologiaServizio.CORRELATO.toString().equals(servizioCorrelato))){
- serv.setTipologiaServizio(TipologiaServizio.CORRELATO);
- }else{
- serv.setTipologiaServizio(TipologiaServizio.NORMALE);
- }
- serv.setDescrizione(risultato.getString("descrizioneServizio"));
- // informazioni su soggetto
- Soggetto sog = this.driver.getSoggetto(serv.getIdSoggetto(),con);
- String nomeErogatore = sog.getNome();
- String tipoErogatore = sog.getTipo();
- serv.setNomeSoggettoErogatore(nomeErogatore);
- serv.setTipoSoggettoErogatore(tipoErogatore);
- // informazioni su accordo
- IDAccordo idAccordo = this.driver.getIdAccordoServizioParteComune(serv.getIdAccordo(), con);
- serv.setAccordoServizioParteComune(this.driver.idAccordoFactory.getUriFromIDAccordo(idAccordo));
- // Stato
- serv.setStatoPackage(risultato.getString("statoServizio"));
-
- if(gestioneFruitori) {
-
- Fruitore fruitore = new Fruitore();
- fruitore.setId(risultato.getLong("idFruizione"));
- fruitore.setTipo(risultato.getString("tipoSoggettoFruitore"));
- fruitore.setNome(risultato.getString("nomeSoggettoFruitore"));
- fruitore.setIdServizio(serv.getId());
- fruitore.setIdSoggetto(risultato.getLong("idSoggettoFruitore"));
-
- serv.addFruitore(fruitore);
- }
- serviziList.add(serv);
- }
- return serviziList;
- } catch (Exception qe) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
- } finally {
- //Chiudo statement and resultset
- JDBCUtilities.closeResources(risultato, stmt);
- this.driver.closeConnection(con);
- }
- }
- }