DriverConfigurazioneDBServiziApplicativiSearch.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 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 java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
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.config.Proprieta;
import org.openspcoop2.core.config.ServizioApplicativo;
import org.openspcoop2.core.config.Soggetto;
import org.openspcoop2.core.config.constants.CostantiConfigurazione;
import org.openspcoop2.core.config.constants.RicercaTipologiaErogazione;
import org.openspcoop2.core.config.constants.RicercaTipologiaFruizione;
import org.openspcoop2.core.config.constants.TipoAutenticazione;
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.config.driver.TipologiaServizioApplicativo;
import org.openspcoop2.core.constants.CostantiDB;
import org.openspcoop2.core.constants.TipiConnettore;
import org.openspcoop2.core.constants.TipoPdD;
import org.openspcoop2.core.id.IDFruizione;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDServizioApplicativo;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.constants.PddTipologia;
import org.openspcoop2.utils.jdbc.JDBCUtilities;
import org.openspcoop2.utils.sql.ISQLQueryObject;
import org.openspcoop2.utils.sql.LikeConfig;
import org.openspcoop2.utils.sql.SQLObjectFactory;
/**
* DriverConfigurazioneDB_serviziApplicativiSearchDriver
*
*
* @author Sandra Giangrandi (sandra@link.it)
* @author Stefano Corallo (corallo@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class DriverConfigurazioneDBServiziApplicativiSearch {
private DriverConfigurazioneDB driver = null;
private DriverConfigurazioneDBSoggetti soggettiDriver = null;
private DriverConfigurazioneDB_serviziApplicativiDriver serviziApplicativiDriver = null;
protected DriverConfigurazioneDBServiziApplicativiSearch(DriverConfigurazioneDB driver) {
this.driver = driver;
this.soggettiDriver = new DriverConfigurazioneDBSoggetti(driver);
this.serviziApplicativiDriver = new DriverConfigurazioneDB_serviziApplicativiDriver(driver);
}
private static final String PREFIX_ATOMICA = "operazione this.driver.atomica = ";
private String getPrefixError(String nomeMetodo) {
return "[DriverConfigurazioneDB::" + nomeMetodo + "] ";
}
private String getMessageError(String nomeMetodo, Exception e) {
return getPrefixError(nomeMetodo)+"Exception: " + e.getMessage();
}
private String getMessageDatasourceError(String nomeMetodo, Exception e) {
return getPrefixError(nomeMetodo)+"Exception accedendo al datasource :" + e.getMessage();
}
private String getMessageProprietarioNonEsiste(String nomeMetodo, IDSoggetto proprietario) {
return getPrefixError(nomeMetodo)+"Il proprietario ["+proprietario.toString()+"] non esiste.";
}
private List<ServizioApplicativo> servizioApplicativoList(ISearch ricerca,Long idProprietario) throws DriverConfigurazioneException{
String nomeMetodo = "servizioApplicativoList(search,idProprietario)";
int idLista = Liste.SERVIZIO_APPLICATIVO;
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));
Connection con = null;
boolean error = false;
PreparedStatement stmt=null;
ResultSet risultato=null;
ArrayList<ServizioApplicativo> lista = new ArrayList<>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource("servizioApplicativoList");
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
if(idProprietario!=null) sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addSelectCountField("*", "cont");
if(idProprietario!=null) sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
if(idProprietario!=null) stmt.setLong(1, idProprietario);
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_APPLICATIVI);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addSelectField("id");
sqlQueryObject.addSelectField("nome");
sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
if(idProprietario!=null) sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
sqlQueryObject.addOrderBy("nome");
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_APPLICATIVI);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addSelectField("id");
sqlQueryObject.addSelectField("nome");
if(idProprietario!=null) sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
sqlQueryObject.addOrderBy("nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
if(idProprietario!=null) stmt.setLong(1, idProprietario);
risultato = stmt.executeQuery();
ServizioApplicativo sa;
while (risultato.next()) {
sa=this.serviziApplicativiDriver.getServizioApplicativo(risultato.getLong("id"));
lista.add(sa);
}
return lista;
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
/**
* Recupera tutti i servizi applicativi in base ai parametri di ricerca passati
*/
protected List<ServizioApplicativo> servizioApplicativoList(ISearch ricerca) throws DriverConfigurazioneException {
return this.servizioApplicativoList(ricerca, null);
}
protected List<ServizioApplicativo> servizioApplicativoList(IDSoggetto idSO,ISearch ricerca) throws DriverConfigurazioneException {
String nomeMetodo = "servizioApplicativoList";
Connection con = null;
boolean error = false;
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource("servizioApplicativoList(idSoggetto)");
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
return this.servizioApplicativoList(ricerca, DBUtils.getIdSoggetto(idSO.getNome(), idSO.getTipo(), con, this.driver.tipoDB));
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
this.driver.closeConnection(error,con);
}
}
private ISQLQueryObject buildSqlQueryObjectAutorizzazioniPorteDelegate(String nomeTabella,
String aliasPDSA, String aliasPD, String aliasSERVIZI, String aliasACCORDI, String aliasACCORDIGRUPPI, String aliasGRUPPI, String aliasSOGGETTI,
boolean isFilterGruppoFruizione, IDFruizione apiImplementazioneFruizione, String filterGruppo,
List<Object> existsParameters) throws DriverConfigurazioneException {
try {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(nomeTabella,aliasPDSA);
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,aliasPD);
if(isFilterGruppoFruizione) {
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectAutorizzazioniPorteDelegate.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
sqlQueryObjectAutorizzazioniPorteDelegate.addSelectAliasField(aliasPDSA, "id", aliasPDSA+"id");
sqlQueryObjectAutorizzazioniPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPDSA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPDSA+"."+CostantiDB.PORTA_COLUMN_ID_REF+" = "+aliasPD+"."+CostantiDB.COLUMN_ID);
if(isFilterGruppoFruizione) {
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SERVIZIO+" = ?");
sqlQueryObjectAutorizzazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
return sqlQueryObjectAutorizzazioniPorteDelegate;
} catch (Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
private ISQLQueryObject buildSqlQueryObjectAutorizzazioniPorteApplicative(String nomeTabella,
String aliasPASA, String aliasPA, String aliasSERVIZI, String aliasACCORDI, String aliasACCORDIGRUPPI, String aliasGRUPPI, String aliasSOGGETTI,
boolean isFilterGruppoErogazione, IDServizio apiImplementazioneErogazione, String filterGruppo,
List<Object> existsParameters) throws DriverConfigurazioneException {
try {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(nomeTabella,aliasPASA);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,aliasPA);
if(isFilterGruppoErogazione) {
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectAutorizzazioniPorteApplicative.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
sqlQueryObjectAutorizzazioniPorteApplicative.addSelectAliasField(aliasPASA, "id", aliasPASA+"id");
sqlQueryObjectAutorizzazioniPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPASA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPASA+"."+CostantiDB.PORTA_COLUMN_ID_REF+" = "+aliasPA+"."+CostantiDB.COLUMN_ID);
if(isFilterGruppoErogazione) {
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_SERVIZIO+" = ?");
sqlQueryObjectAutorizzazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
return sqlQueryObjectAutorizzazioniPorteApplicative;
} catch (Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
protected List<ServizioApplicativo> soggettiServizioApplicativoList(String superuser, ISearch ricerca) throws DriverConfigurazioneException {
String nomeMetodo = "soggettiServizioApplicativoList";
int idLista = Liste.SERVIZIO_APPLICATIVO;
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));
String filterProtocollo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLO);
String filterProtocolli = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLI);
List<String> tipoSoggettiProtocollo = null;
try {
tipoSoggettiProtocollo = Filtri.convertToTipiSoggetti(filterProtocollo, filterProtocolli);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
String filterRuoloServizioApplicativo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_RUOLO_SERVIZIO_APPLICATIVO);
TipologiaFruizione tipologiaFruizione = null;
TipologiaErogazione tipologiaErogazione = null;
if(filterRuoloServizioApplicativo!=null && !"".equals(filterRuoloServizioApplicativo)) {
if(Filtri.VALUE_FILTRO_RUOLO_SERVIZIO_APPLICATIVO_EROGATORE.equals(filterRuoloServizioApplicativo)) {
tipologiaErogazione = TipologiaErogazione.DISABILITATO;
}
else if(Filtri.VALUE_FILTRO_RUOLO_SERVIZIO_APPLICATIVO_FRUITORE.equals(filterRuoloServizioApplicativo)) {
tipologiaFruizione = TipologiaFruizione.DISABILITATO;
}
}
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 filterDominio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_DOMINIO);
PddTipologia pddTipologia = null;
if(filterDominio!=null && !"".equals(filterDominio)) {
pddTipologia = PddTipologia.toPddTipologia(filterDominio);
}
String filterRuolo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_RUOLO);
String filterTipoServizioApplicativo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_TIPO_SERVIZIO_APPLICATIVO);
String filterTipoCredenziali = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_TIPO_CREDENZIALI);
String filterCredenziale = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE);
String filterCredenzialeIssuer = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE_ISSUER);
if(filterCredenzialeIssuer!=null && "".equals(filterCredenzialeIssuer)) {
filterCredenzialeIssuer = null;
}
if(filterCredenzialeIssuer!=null && !"ssl".equals(filterTipoCredenziali)) {
filterCredenzialeIssuer = null;
}
String filterCredenzialeTokenPolicy = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE_TOKEN_POLICY);
boolean isFilterGruppoErogazione = false;
boolean isFilterGruppoFruizione = false;
String filterGruppo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_GRUPPO);
if(filterGruppo!=null && !"".equals(filterGruppo)) {
isFilterGruppoErogazione = true;
isFilterGruppoFruizione = true;
}
TipoPdD apiContesto = null;
String filterApiContesto = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_API_CONTESTO);
if(filterApiContesto!=null && !"".equals(filterApiContesto)) {
apiContesto = TipoPdD.toTipoPdD(filterApiContesto);
if(TipoPdD.APPLICATIVA.equals(apiContesto)) {
isFilterGruppoFruizione = false;
}
else if(TipoPdD.DELEGATA.equals(apiContesto)) {
isFilterGruppoErogazione = false;
}
else {
apiContesto = null;
}
}
String filterApiImplementazione = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_API_IMPLEMENTAZIONE);
IDServizio apiImplementazioneErogazione = null;
IDFruizione apiImplementazioneFruizione = null;
if(filterApiImplementazione!=null && !"".equals(filterApiImplementazione)) {
if(TipoPdD.APPLICATIVA.equals(apiContesto)) {
try {
apiImplementazioneErogazione = IDServizio.toIDServizio(filterApiImplementazione);
isFilterGruppoErogazione=false; // non ha piu' senso ho selezionato una erogazione puntuale
}catch(Exception e) {
throw new DriverConfigurazioneException("Filtro API Implementazione '"+filterApiImplementazione+"' non valido: "+e.getMessage(),e);
}
}
else if(TipoPdD.DELEGATA.equals(apiContesto)) {
try {
apiImplementazioneFruizione = IDFruizione.toIDFruizione(filterApiImplementazione);
isFilterGruppoFruizione=false; // non ha piu' senso ho selezionato una fruizione puntuale
}catch(Exception e) {
throw new DriverConfigurazioneException("Filtro API Implementazione '"+filterApiImplementazione+"' non valido: "+e.getMessage(),e);
}
}
}
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 filtroModISicurezzaMessaggio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_MESSAGGIO);
String filtroModIKeystorePath = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_PATH);
String filtroModIKeystoreSubject = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_SUBJECT);
String filtroModIKeystoreIssuer = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_ISSUER);
String filtroModISicurezzaToken = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_TOKEN);
String filtroModITokenPolicy = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_TOKEN_POLICY);
String filtroModITokenClientId = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_TOKEN_CLIENT_ID);
String filtroModIAudience = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_AUDIENCE);
Boolean filtroModISicurezzaMessaggioEnabled = null;
if(CostantiDB.STATO_FUNZIONALITA_ABILITATO.equals(filtroModISicurezzaMessaggio)) {
filtroModISicurezzaMessaggioEnabled = true;
}
else if(CostantiDB.STATO_FUNZIONALITA_DISABILITATO.equals(filtroModISicurezzaMessaggio)) {
filtroModISicurezzaMessaggioEnabled = false;
}
if(filtroModISicurezzaMessaggioEnabled!=null && filtroModISicurezzaMessaggioEnabled) {
if((filtroModIKeystorePath!=null && "".equals(filtroModIKeystorePath))) {
filtroModIKeystorePath=null;
}
if((filtroModIKeystoreSubject!=null && "".equals(filtroModIKeystoreSubject))) {
filtroModIKeystoreSubject=null;
}
if((filtroModIKeystoreIssuer!=null && "".equals(filtroModIKeystoreIssuer))) {
filtroModIKeystoreIssuer=null;
}
}
else {
filtroModIKeystorePath=null;
filtroModIKeystoreSubject=null;
filtroModIKeystoreIssuer=null;
}
Boolean filtroModISicurezzaTokenEnabled = null;
if(CostantiDB.STATO_FUNZIONALITA_ABILITATO.equals(filtroModISicurezzaToken)) {
filtroModISicurezzaTokenEnabled = true;
}
else if(CostantiDB.STATO_FUNZIONALITA_DISABILITATO.equals(filtroModISicurezzaToken)) {
filtroModISicurezzaTokenEnabled = false;
}
if(filtroModISicurezzaTokenEnabled!=null && filtroModISicurezzaTokenEnabled) {
if((filtroModITokenPolicy!=null && "".equals(filtroModITokenPolicy))) {
filtroModITokenPolicy=null;
}
if((filtroModITokenClientId!=null && "".equals(filtroModITokenClientId))) {
filtroModITokenClientId=null;
}
}
else {
filtroModITokenPolicy=null;
filtroModITokenClientId=null;
}
if((filtroModIAudience!=null && "".equals(filtroModIAudience))) {
filtroModIAudience=null;
}
boolean filtroModI = filtroModISicurezzaMessaggioEnabled!=null ||
filtroModIKeystorePath!=null || filtroModIKeystoreSubject!=null || filtroModIKeystoreIssuer!=null ||
filtroModISicurezzaTokenEnabled!=null ||
filtroModITokenPolicy!=null || filtroModITokenClientId!=null ||
filtroModIAudience!=null;
boolean checkCredenzialiBase = false;
if( (filterTipoCredenziali==null || "".equals(filterTipoCredenziali))
&&
(filterCredenziale==null || "".equals(filterCredenziale))
&&
(filterCredenzialeIssuer==null || "".equals(filterCredenzialeIssuer))
) {
checkCredenzialiBase = true;
}
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 : " + search);
this.driver.logDebug("filterProtocollo : " + filterProtocollo);
this.driver.logDebug("filterProtocolli : " + filterProtocolli);
this.driver.logDebug("filterDominio : " + filterDominio);
this.driver.logDebug("filterSoggettoNome : " + filterSoggettoNome);
this.driver.logDebug("filterSoggettoTipo : " + filterSoggettoTipo);
this.driver.logDebug("filterRuoloServizioApplicativo : " + filterRuoloServizioApplicativo);
this.driver.logDebug("filterRuolo : " + filterRuolo);
this.driver.logDebug("filterTipoServizioApplicativo : " + filterTipoServizioApplicativo);
this.driver.logDebug("filterTipoCredenziali : " + filterTipoCredenziali);
this.driver.logDebug("filterCredenziale : " + filterCredenziale);
this.driver.logDebug("filterCredenzialeIssuer : " + filterCredenzialeIssuer);
this.driver.logDebug("filterCredenzialeTokenPolicy : " + filterCredenzialeTokenPolicy);
this.driver.logDebug("filterGruppo : " + filterGruppo);
this.driver.logDebug("filterApiContesto : " + filterApiContesto);
this.driver.logDebug("filterApiImplementazione : " + filterApiImplementazione);
this.driver.logDebug("filtroConnettoreTipo : " + filtroConnettoreTipo);
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("filtroModISicurezzaMessaggio : " + filtroModISicurezzaMessaggio);
this.driver.logDebug("filtroModIKeystorePath : " + filtroModIKeystorePath);
this.driver.logDebug("filtroModIKeystoreSubject : " + filtroModIKeystoreSubject);
this.driver.logDebug("filtroModIKeystoreIssuer : " + filtroModIKeystoreIssuer);
this.driver.logDebug("filtroModISicurezzaToken : " + filtroModISicurezzaToken);
this.driver.logDebug("filtroModITokenPolicy : " + filtroModITokenPolicy);
this.driver.logDebug("filtroModITokenClientId : " + filtroModITokenClientId);
this.driver.logDebug("filtroModIAudience : " + filtroModIAudience);
this.driver.logDebug("filtroProprietaNome : " + filtroProprietaNome);
this.driver.logDebug("filtroProprietaValore : " + filtroProprietaValore);
Connection con = null;
PreparedStatement stmt=null;
ResultSet risultato=null;
boolean error = false;
ArrayList<ServizioApplicativo> silList = new ArrayList<>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
/* === Filtro Dominio === */
ISQLQueryObject sqlQueryObjectPdd = null;
if(pddTipologia!=null && PddTipologia.ESTERNO.equals(pddTipologia)) {
ISQLQueryObject sqlQueryObjectExistsPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectExistsPdd.addSelectField(CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_NOME);
sqlQueryObjectExistsPdd.addFromTable(CostantiDB.PDD);
sqlQueryObjectExistsPdd.setANDLogicOperator(true);
sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_NOME+"="+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SERVER);
sqlQueryObjectExistsPdd.addWhereCondition(CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_TIPO+"=?");
sqlQueryObjectPdd = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectPdd.setANDLogicOperator(false);
sqlQueryObjectPdd.addWhereIsNullCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SERVER);
sqlQueryObjectPdd.addWhereExistsCondition(false, sqlQueryObjectExistsPdd);
}
/* === Filtro Gruppo, Tipo Erogazione/Fruizione, Implementazione API === */
List<String> existsConditions = new ArrayList<>();
List<Object> existsParameters = new ArrayList<>();
String aliasCT = "ct";
String aliasALLARMI = "alarm";
String aliasPDSA = "pdsa";
String aliasPDTOKENSA = "pdtokensa";
String aliasPD = "pd";
String aliasPDTRASFORMAZIONISA = "pdtsa";
String aliasPDTRASFORMAZIONI = "pdt";
String aliasPASA = "pasa";
String aliasPATOKENSA = "patokensa";
String aliasPA = "pa";
String aliasPATRASFORMAZIONISA = "patsa";
String aliasPATRASFORMAZIONI = "pat";
String aliasSERVIZI = "s";
String aliasACCORDI = "a";
String aliasACCORDIGRUPPI = "ag";
String aliasGRUPPI = "g";
String aliasSOGGETTI = "sProprietario";
// autorizzazioni porte delegate
/** select * from servizi_applicativi sa WHERE EXISTS (select pdsa.id from porte_delegate_sa pdsa, porte_delegate pd, servizi s, accordi a, accordi_gruppi ag, gruppi g
WHERE pdsa.id_servizio_applicativo=sa.id AND pdsa.id_porta=pd.id AND pd.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');*/
if(isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteDelegate = buildSqlQueryObjectAutorizzazioniPorteDelegate(CostantiDB.PORTE_DELEGATE_SA,
aliasPDSA, aliasPD, aliasSERVIZI, aliasACCORDI, aliasACCORDIGRUPPI, aliasGRUPPI, aliasSOGGETTI,
isFilterGruppoFruizione, apiImplementazioneFruizione, filterGruppo,
existsParameters);
existsConditions.add(sqlQueryObjectAutorizzazioniPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectAutorizzazioniPorteDelegate));
}
// autorizzazioni token porte delegate
/** select * from servizi_applicativi sa WHERE EXISTS (select pdsa.id from porte_delegate_sa pdsa, porte_delegate pd, servizi s, accordi a, accordi_gruppi ag, gruppi g
WHERE pdsa.id_servizio_applicativo=sa.id AND pdsa.id_porta=pd.id AND pd.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');*/
if(isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteDelegate = buildSqlQueryObjectAutorizzazioniPorteDelegate(CostantiDB.PORTE_DELEGATE_TOKEN_SA,
aliasPDTOKENSA, aliasPD, aliasSERVIZI, aliasACCORDI, aliasACCORDIGRUPPI, aliasGRUPPI, aliasSOGGETTI,
isFilterGruppoFruizione, apiImplementazioneFruizione, filterGruppo,
existsParameters);
existsConditions.add(sqlQueryObjectAutorizzazioniPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectAutorizzazioniPorteDelegate));
}
// autorizzazioni porte applicative
/** select * from servizi_applicativi sa WHERE EXISTS (select pasa.id from porte_applicative_sa_auth pasa, porte_applicative pa, servizi s, accordi a, accordi_gruppi ag, gruppi g
WHERE pasa.id_servizio_applicativo=sa.id AND pasa.id_porta=pa.id AND pa.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');*/
if(isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteApplicative = buildSqlQueryObjectAutorizzazioniPorteApplicative(CostantiDB.PORTE_APPLICATIVE_SA_AUTORIZZATI,
aliasPASA, aliasPA, aliasSERVIZI, aliasACCORDI, aliasACCORDIGRUPPI, aliasGRUPPI, aliasSOGGETTI,
isFilterGruppoErogazione, apiImplementazioneErogazione, filterGruppo,
existsParameters);
existsConditions.add(sqlQueryObjectAutorizzazioniPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectAutorizzazioniPorteApplicative));
}
// autorizzazioni token porte applicative
/** select * from servizi_applicativi sa WHERE EXISTS (select pasa.id from porte_applicative_sa_auth pasa, porte_applicative pa, servizi s, accordi a, accordi_gruppi ag, gruppi g
WHERE pasa.id_servizio_applicativo=sa.id AND pasa.id_porta=pa.id AND pa.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');*/
if(isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectAutorizzazioniPorteApplicative = buildSqlQueryObjectAutorizzazioniPorteApplicative(CostantiDB.PORTE_APPLICATIVE_TOKEN_SA,
aliasPATOKENSA, aliasPA, aliasSERVIZI, aliasACCORDI, aliasACCORDIGRUPPI, aliasGRUPPI, aliasSOGGETTI,
isFilterGruppoErogazione, apiImplementazioneErogazione, filterGruppo,
existsParameters);
existsConditions.add(sqlQueryObjectAutorizzazioniPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectAutorizzazioniPorteApplicative));
}
// server sulle porte applicative
/** select * from servizi_applicativi sa WHERE EXISTS (select pasa.id from porte_applicative_sa pasa, porte_applicative pa, servizi s, accordi a, accordi_gruppi ag, gruppi g
WHERE pasa.id_servizio_applicativo=sa.id AND pasa.id_porta=pa.id AND pa.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');*/
if(isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectServerPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE_SA,aliasPASA);
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,aliasPA);
if(isFilterGruppoErogazione) {
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectServerPorteApplicative.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
sqlQueryObjectServerPorteApplicative.addSelectAliasField(aliasPASA, "id", aliasPASA+"id");
sqlQueryObjectServerPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPASA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPASA+"."+CostantiDB.PORTA_COLUMN_ID_REF+" = "+aliasPA+"."+CostantiDB.COLUMN_ID);
if(isFilterGruppoErogazione) {
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_SERVIZIO+" = ?");
sqlQueryObjectServerPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
existsConditions.add(sqlQueryObjectServerPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectServerPorteApplicative));
}
// controllo del traffico
/**
* select * from servizi_applicativi sa, soggetti soggetti WHERE sa.id_soggetto=soggetti.id
* AND EXISTS (select ct.id from ct_active_policy ct WHERE ct.filtro_tipo_fruitore=soggetti.tipo_soggetto AND ct.filtro_nome_fruitore=soggetti.nome_soggetto AND ct.filtro_sa_fruitore=sa.nome AND
(
(filtro_ruolo='applicativa' AND EXISTS (select pa.id from porte_applicative pa, servizi s, accordi a, accordi_gruppi ag, gruppi g WHERE pa.nome_porta=filtro_porta AND pa.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG'))
OR
(filtro_ruolo='delegata' AND EXISTS (select pd.id from porte_delegate pd, servizi s, accordi a, accordi_gruppi ag, gruppi g WHERE pd.nome_porta=filtro_porta AND pd.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG'))
));
*
* */
// Controllo del traffico sulle porte delegate
if(isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectControlloTrafficoPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY,aliasCT);
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,aliasPD);
if(isFilterGruppoFruizione) {
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
}
sqlQueryObjectControlloTrafficoPorteDelegate.addSelectAliasField(aliasCT, "id", aliasCT+"id");
sqlQueryObjectControlloTrafficoPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_TIPO_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_NOME_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_SA_FRUITORE+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_RUOLO+" = 'delegata'");
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_PORTA+" = "+aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_PORTA);
if(isFilterGruppoFruizione) {
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SERVIZIO+" = ?");
sqlQueryObjectControlloTrafficoPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
}
existsConditions.add(sqlQueryObjectControlloTrafficoPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectControlloTrafficoPorteDelegate));
}
// Controllo del traffico sulle porte applicative
if(isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectControlloTrafficoPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY,aliasCT);
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,aliasPA);
if(isFilterGruppoErogazione) {
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
}
sqlQueryObjectControlloTrafficoPorteApplicative.addSelectAliasField(aliasCT, "id", aliasCT+"id");
sqlQueryObjectControlloTrafficoPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_TIPO_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_NOME_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_SA_FRUITORE+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_RUOLO+" = 'applicativa'");
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasCT+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_PORTA+" = "+aliasPA+"."+CostantiDB.PORTA_COLUMN_NOME_PORTA);
if(isFilterGruppoErogazione) {
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_SERVIZIO+" = ?");
sqlQueryObjectControlloTrafficoPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
}
existsConditions.add(sqlQueryObjectControlloTrafficoPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectControlloTrafficoPorteApplicative));
}
if(CostantiDB.isAllarmiEnabled()) {
// Allarmi sulle porte delegate
if(isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectAllarmiPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.ALLARMI,aliasALLARMI);
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,aliasPD);
if(isFilterGruppoFruizione) {
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectAllarmiPorteDelegate.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
}
sqlQueryObjectAllarmiPorteDelegate.addSelectAliasField(aliasALLARMI, "id", aliasALLARMI+"id");
sqlQueryObjectAllarmiPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_TIPO_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_NOME_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_SA_FRUITORE+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_RUOLO+" = 'delegata'");
if(isFilterGruppoFruizione || apiImplementazioneFruizione!=null) {
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_PORTA+" = "+aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_PORTA);
if(isFilterGruppoFruizione) {
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SERVIZIO+" = ?");
sqlQueryObjectAllarmiPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
}
existsConditions.add(sqlQueryObjectAllarmiPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectAllarmiPorteDelegate));
}
// Allarmi sulle porte applicative
if(isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectAllarmiPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.ALLARMI,aliasALLARMI);
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,aliasPA);
if(isFilterGruppoErogazione) {
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectAllarmiPorteApplicative.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
}
sqlQueryObjectAllarmiPorteApplicative.addSelectAliasField(aliasALLARMI, "id", aliasALLARMI+"id");
sqlQueryObjectAllarmiPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_TIPO_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_NOME_FRUITORE+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_SA_FRUITORE+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_RUOLO+" = 'applicativa'");
if(isFilterGruppoErogazione || apiImplementazioneErogazione!=null) {
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasALLARMI+"."+CostantiDB.CONTROLLO_TRAFFICO_ACTIVE_POLICY_COLUMN_FILTRO_PORTA+" = "+aliasPA+"."+CostantiDB.PORTA_COLUMN_NOME_PORTA);
if(isFilterGruppoErogazione) {
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_SERVIZIO+" = ?");
sqlQueryObjectAllarmiPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
}
existsConditions.add(sqlQueryObjectAllarmiPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectAllarmiPorteApplicative));
}
}
// porte_delegate trasformazioni
/**
* select * from servizi_applicativi sa WHERE EXISTS (select pdtsa.id from pd_transform_sa pdtsa, pd_transform pdt, porte_delegate pd, servizi s, accordi a, accordi_gruppi ag, gruppi g
* WHERE pdtsa.id_servizio_applicativo=sa.id AND pdtsa.id_trasformazione=pdt.id AND pdt.id_porta=pd.id AND pd.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');
**/
if(isFilterGruppoFruizione || TipoPdD.DELEGATA.equals(apiContesto) || apiImplementazioneFruizione!=null) {
ISQLQueryObject sqlQueryObjectTrasformazioniPorteDelegate = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI_SA,aliasPDTRASFORMAZIONISA);
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE_TRASFORMAZIONI,aliasPDTRASFORMAZIONI);
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.PORTE_DELEGATE,aliasPD);
if(isFilterGruppoFruizione) {
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectTrasformazioniPorteDelegate.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
sqlQueryObjectTrasformazioniPorteDelegate.addSelectAliasField(aliasPDTRASFORMAZIONISA, "id", aliasPDTRASFORMAZIONISA+"id");
sqlQueryObjectTrasformazioniPorteDelegate.setANDLogicOperator(true);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPDTRASFORMAZIONISA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPDTRASFORMAZIONISA+".id_trasformazione = "+aliasPDTRASFORMAZIONI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPDTRASFORMAZIONI+"."+CostantiDB.PORTA_COLUMN_ID_REF+" = "+aliasPD+"."+CostantiDB.COLUMN_ID);
if(isFilterGruppoFruizione) {
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneFruizione!=null) {
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SOGGETTO_EROGATORE+" = ?");
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_NOME_SERVIZIO+" = ?");
sqlQueryObjectTrasformazioniPorteDelegate.addWhereCondition(aliasPD+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdFruitore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getTipo());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getNome());
existsParameters.add(apiImplementazioneFruizione.getIdServizio().getVersione());
}
existsConditions.add(sqlQueryObjectTrasformazioniPorteDelegate.getWhereExistsCondition(false, sqlQueryObjectTrasformazioniPorteDelegate));
}
// porte_applicative trasformazioni
/**
* select * from servizi_applicativi sa WHERE EXISTS (select patsa.id from pa_transform_sa patsa, pa_transform pat, porte_applicative pa, servizi s, accordi a, accordi_gruppi ag, gruppi g
* WHERE patsa.id_servizio_applicativo=sa.id AND patsa.id_trasformazione=pat.id AND pat.id_porta=pa.id AND pa.id_servizio=s.id AND s.id_accordo=a.id AND ag.id_accordo=a.id AND ag.id_gruppo=g.id AND g.nome='TAG');
**/
if(isFilterGruppoErogazione || TipoPdD.APPLICATIVA.equals(apiContesto) || apiImplementazioneErogazione!=null) {
ISQLQueryObject sqlQueryObjectTrasformazioniPorteApplicative = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI_SA,aliasPATRASFORMAZIONISA);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE_TRASFORMAZIONI,aliasPATRASFORMAZIONI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.PORTE_APPLICATIVE,aliasPA);
if(isFilterGruppoErogazione) {
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.SERVIZI,aliasSERVIZI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI,aliasACCORDI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.ACCORDI_GRUPPI,aliasACCORDIGRUPPI);
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.GRUPPI,aliasGRUPPI);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectTrasformazioniPorteApplicative.addFromTable(CostantiDB.SOGGETTI,aliasSOGGETTI);
}
sqlQueryObjectTrasformazioniPorteApplicative.addSelectAliasField(aliasPATRASFORMAZIONISA, "id", aliasPATRASFORMAZIONISA+"id");
sqlQueryObjectTrasformazioniPorteApplicative.setANDLogicOperator(true);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPATRASFORMAZIONISA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+" = "+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPATRASFORMAZIONISA+".id_trasformazione = "+aliasPATRASFORMAZIONI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPATRASFORMAZIONI+"."+CostantiDB.PORTA_COLUMN_ID_REF+" = "+aliasPA+"."+CostantiDB.COLUMN_ID);
if(isFilterGruppoErogazione) {
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SERVIZIO_REF+" = "+aliasSERVIZI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasSERVIZI+"."+CostantiDB.SERVIZI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_ACCORDO_REF+" = "+aliasACCORDI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasACCORDIGRUPPI+"."+CostantiDB.ACCORDI_GRUPPI_COLUMN_ID_GRUPPO_REF+" = "+aliasGRUPPI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasGRUPPI+"."+CostantiDB.GRUPPI_COLUMN_NOME+" = ?");
existsParameters.add(filterGruppo);
}
if(apiImplementazioneErogazione!=null) {
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_ID_SOGGETTO_REF+" = "+aliasSOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+" = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasSOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+" = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_TIPO_SERVIZIO+" = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_SERVIZIO+" = ?");
sqlQueryObjectTrasformazioniPorteApplicative.addWhereCondition(aliasPA+"."+CostantiDB.PORTA_COLUMN_VERSIONE_SERVIZIO+" = ?");
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getTipo());
existsParameters.add(apiImplementazioneErogazione.getSoggettoErogatore().getNome());
existsParameters.add(apiImplementazioneErogazione.getTipo());
existsParameters.add(apiImplementazioneErogazione.getNome());
existsParameters.add(apiImplementazioneErogazione.getVersione());
}
existsConditions.add(sqlQueryObjectTrasformazioniPorteApplicative.getWhereExistsCondition(false, sqlQueryObjectTrasformazioniPorteApplicative));
}
// QUERY FINALE
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SUPERUSER+" = ?");
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME, search, true, true);
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+"", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+"=?");
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO+"=?");
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_NOME+"="+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SERVER,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_TIPO+"=?");
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SUPERUSER+" = ?");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+"", true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+"=?");
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO+"=?");
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_NOME+"="+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SERVER,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_TIPO+"=?");
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
this.driver.logDebug("Execute query: "+queryString);
int index = 1;
if(this.driver.useSuperUser && superuser!=null && !superuser.equals("")) {
stmt.setString(index++, superuser);
}
if(tipologiaFruizione!=null) {
stmt.setString(index++, tipologiaFruizione.getValue());
}
else if(tipologiaErogazione!=null) {
stmt.setString(index++, tipologiaErogazione.getValue());
}
if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
stmt.setString(index++, filterSoggettoTipo);
stmt.setString(index++, filterSoggettoNome);
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
stmt.setString(index++, filterRuolo);
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
stmt.setString(index++, CostantiConfigurazione.SERVER);
stmt.setString(index++, CostantiConfigurazione.CLIENT);
} else {
stmt.setString(index++, filterTipoServizioApplicativo);
if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
stmt.setInt(index++, CostantiDB.TRUE);
}
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
stmt.setString(index++, filterTipoCredenziali);
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
stmt.setString(index++,CostantiConfigurazione.CREDENZIALE_SSL.toString());
}
/** if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
// // like
// }*/
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
stmt.setString(index++, filterCredenzialeTokenPolicy);
}
}
if(pddTipologia!=null) {
stmt.setString(index++, pddTipologia.toString());
}
if(existsParameters!=null && !existsParameters.isEmpty()) {
for (Object object : existsParameters) {
if(object instanceof String) {
stmt.setString(index++, (String) object);
}
else {
stmt.setInt(index++, (Integer) object);
}
}
}
risultato = stmt.executeQuery();
if (risultato.next())
ricerca.setNumEntries(idLista,risultato.getInt(1));
risultato.close();
stmt.close();
// ricavo le entries
String aliasNomeServizioApplicativo="appnome";
String aliasTipoSoggetto="orgtipo";
String aliasNomeSoggetto="orgnome";
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_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI,"id");
sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI_APPLICATIVI,"nome",aliasNomeServizioApplicativo);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, aliasTipoSoggetto);
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO, aliasNomeSoggetto);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SUPERUSER+" = ?");
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME, search, true, true);
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+"=?");
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO+"=?");
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_NOME+"="+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SERVER,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_TIPO+"=?");
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(aliasNomeServizioApplicativo);
sqlQueryObject.addOrderBy(aliasNomeSoggetto);
sqlQueryObject.addOrderBy(aliasTipoSoggetto);
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_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI,"id");
sqlQueryObject.addSelectAliasField(CostantiDB.SERVIZI_APPLICATIVI,"nome",aliasNomeServizioApplicativo);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, aliasTipoSoggetto);
sqlQueryObject.addSelectAliasField(CostantiDB.SOGGETTI,CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO, aliasNomeSoggetto);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SUPERUSER+" = ?");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO+"=?");
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO+"=?");
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(pddTipologia!=null) {
if(PddTipologia.ESTERNO.equals(pddTipologia)) {
sqlQueryObject.addWhereCondition(sqlQueryObjectPdd.createSQLConditions());
}
else {
sqlQueryObject.addFromTable(CostantiDB.PDD);
sqlQueryObject.addWhereCondition(true,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_NOME+"="+CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_SERVER,CostantiDB.PDD+"."+CostantiDB.PDD_COLUMN_TIPO+"=?");
}
}
if(!existsConditions.isEmpty()) {
sqlQueryObject.addWhereCondition(false, existsConditions.toArray(new String[1]));
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(aliasNomeServizioApplicativo);
sqlQueryObject.addOrderBy(aliasNomeSoggetto);
sqlQueryObject.addOrderBy(aliasTipoSoggetto);
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
this.driver.logDebug("Execute query: "+queryString);
index = 1;
if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser))) {
stmt.setString(index++, superuser);
}
if(tipologiaFruizione!=null) {
stmt.setString(index++, tipologiaFruizione.getValue());
}
else if(tipologiaErogazione!=null) {
stmt.setString(index++, tipologiaErogazione.getValue());
}
if(filterSoggettoNome!=null && !"".equals(filterSoggettoNome)) {
stmt.setString(index++, filterSoggettoTipo);
stmt.setString(index++, filterSoggettoNome);
}
if(filterRuolo!=null && !"".equals(filterRuolo)) {
stmt.setString(index++, filterRuolo);
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
stmt.setString(index++, CostantiConfigurazione.SERVER);
stmt.setString(index++, CostantiConfigurazione.CLIENT);
}
else {
stmt.setString(index++, filterTipoServizioApplicativo);
if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
stmt.setInt(index++, CostantiDB.TRUE);
}
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
stmt.setString(index++, filterTipoCredenziali);
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
stmt.setString(index++,CostantiConfigurazione.CREDENZIALE_SSL.toString());
}
/** if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
// // like
// }*/
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
stmt.setString(index++, filterCredenzialeTokenPolicy);
}
}
if(pddTipologia!=null) {
stmt.setString(index++, pddTipologia.toString());
}
if(existsParameters!=null && !existsParameters.isEmpty()) {
for (Object object : existsParameters) {
if(object instanceof String) {
stmt.setString(index++, (String) object);
}
else {
stmt.setInt(index++, (Integer) object);
}
}
}
risultato = stmt.executeQuery();
while (risultato.next()) {
ServizioApplicativo sa = this.serviziApplicativiDriver.getServizioApplicativo(risultato.getLong("id"));
silList.add(sa);
}
return silList;
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
protected List<ServizioApplicativo> soggettiServizioApplicativoList(Long idSoggetto, ISearch ricerca) throws DriverConfigurazioneException {
String nomeMetodo = "soggettiServizioApplicativoList";
int idLista = Liste.SERVIZI_APPLICATIVI_BY_SOGGETTO;
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));
List<String> tipoSoggettiProtocollo = null;
String filterProtocollo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLO);
String filterProtocolli = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLI);
if(idSoggetto==null || idSoggetto <=0) {
try {
tipoSoggettiProtocollo = Filtri.convertToTipiSoggetti(filterProtocollo, filterProtocolli);
}catch(Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
String filterRuoloServizioApplicativo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_RUOLO_SERVIZIO_APPLICATIVO);
TipologiaFruizione tipologiaFruizione = null;
TipologiaErogazione tipologiaErogazione = null;
if(filterRuoloServizioApplicativo!=null && !"".equals(filterRuoloServizioApplicativo)) {
if(Filtri.VALUE_FILTRO_RUOLO_SERVIZIO_APPLICATIVO_EROGATORE.equals(filterRuoloServizioApplicativo)) {
tipologiaErogazione = TipologiaErogazione.DISABILITATO;
}
else if(Filtri.VALUE_FILTRO_RUOLO_SERVIZIO_APPLICATIVO_FRUITORE.equals(filterRuoloServizioApplicativo)) {
tipologiaFruizione = TipologiaFruizione.DISABILITATO;
}
}
String filterTipoServizioApplicativo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_TIPO_SERVIZIO_APPLICATIVO);
String filterTipoCredenziali = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_TIPO_CREDENZIALI);
String filterCredenziale = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE);
String filterCredenzialeIssuer = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE_ISSUER);
if(filterCredenzialeIssuer!=null && "".equals(filterCredenzialeIssuer)) {
filterCredenzialeIssuer = null;
}
if(filterCredenzialeIssuer!=null && !"ssl".equals(filterTipoCredenziali)) {
filterCredenzialeIssuer = null;
}
String filterCredenzialeTokenPolicy = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_CREDENZIALE_TOKEN_POLICY);
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 filtroModISicurezzaMessaggio = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_MESSAGGIO);
String filtroModIKeystorePath = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_PATH);
String filtroModIKeystoreSubject = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_SUBJECT);
String filtroModIKeystoreIssuer = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_KEYSTORE_ISSUER);
String filtroModISicurezzaToken = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_TOKEN);
String filtroModITokenPolicy = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_TOKEN_POLICY);
String filtroModITokenClientId = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_SICUREZZA_TOKEN_CLIENT_ID);
String filtroModIAudience = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_MODI_AUDIENCE);
Boolean filtroModISicurezzaMessaggioEnabled = null;
if(CostantiDB.STATO_FUNZIONALITA_ABILITATO.equals(filtroModISicurezzaMessaggio)) {
filtroModISicurezzaMessaggioEnabled = true;
}
else if(CostantiDB.STATO_FUNZIONALITA_DISABILITATO.equals(filtroModISicurezzaMessaggio)) {
filtroModISicurezzaMessaggioEnabled = false;
}
if(filtroModISicurezzaMessaggioEnabled!=null && filtroModISicurezzaMessaggioEnabled) {
if((filtroModIKeystorePath!=null && "".equals(filtroModIKeystorePath))) {
filtroModIKeystorePath=null;
}
if((filtroModIKeystoreSubject!=null && "".equals(filtroModIKeystoreSubject))) {
filtroModIKeystoreSubject=null;
}
if((filtroModIKeystoreIssuer!=null && "".equals(filtroModIKeystoreIssuer))) {
filtroModIKeystoreIssuer=null;
}
}
else {
filtroModIKeystorePath=null;
filtroModIKeystoreSubject=null;
filtroModIKeystoreIssuer=null;
}
Boolean filtroModISicurezzaTokenEnabled = null;
if(CostantiDB.STATO_FUNZIONALITA_ABILITATO.equals(filtroModISicurezzaToken)) {
filtroModISicurezzaTokenEnabled = true;
}
else if(CostantiDB.STATO_FUNZIONALITA_DISABILITATO.equals(filtroModISicurezzaToken)) {
filtroModISicurezzaTokenEnabled = false;
}
if(filtroModISicurezzaTokenEnabled!=null && filtroModISicurezzaTokenEnabled) {
if((filtroModITokenPolicy!=null && "".equals(filtroModITokenPolicy))) {
filtroModITokenPolicy=null;
}
if((filtroModITokenClientId!=null && "".equals(filtroModITokenClientId))) {
filtroModITokenClientId=null;
}
}
else {
filtroModITokenPolicy=null;
filtroModITokenClientId=null;
}
if((filtroModIAudience!=null && "".equals(filtroModIAudience))) {
filtroModIAudience=null;
}
boolean filtroModI = filtroModISicurezzaMessaggioEnabled!=null ||
filtroModIKeystorePath!=null || filtroModIKeystoreSubject!=null || filtroModIKeystoreIssuer!=null ||
filtroModISicurezzaTokenEnabled!=null ||
filtroModITokenPolicy!=null || filtroModITokenClientId!=null ||
filtroModIAudience!=null;
boolean checkCredenzialiBase = false;
if( (filterTipoCredenziali==null || "".equals(filterTipoCredenziali))
&&
(filterCredenziale==null || "".equals(filterCredenziale))
&&
(filterCredenzialeIssuer==null || "".equals(filterCredenzialeIssuer))
) {
checkCredenzialiBase = true;
}
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 : " + search);
this.driver.logDebug("filterProtocollo : " + filterProtocollo);
this.driver.logDebug("filterProtocolli : " + filterProtocolli);
this.driver.logDebug("filterRuoloServizioApplicativo : " + filterRuoloServizioApplicativo);
this.driver.logDebug("filterTipoServizioApplicativo : " + filterTipoServizioApplicativo);
this.driver.logDebug("filterTipoCredenziali : " + filterTipoCredenziali);
this.driver.logDebug("filterCredenziale : " + filterCredenziale);
this.driver.logDebug("filterCredenzialeIssuer : " + filterCredenzialeIssuer);
this.driver.logDebug("filterCredenzialeTokenPolicy : " + filterCredenzialeTokenPolicy);
this.driver.logDebug("filtroConnettoreTipo : " + filtroConnettoreTipo);
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("filtroModISicurezzaMessaggio : " + filtroModISicurezzaMessaggio);
this.driver.logDebug("filtroModIKeystorePath : " + filtroModIKeystorePath);
this.driver.logDebug("filtroModIKeystoreSubject : " + filtroModIKeystoreSubject);
this.driver.logDebug("filtroModIKeystoreIssuer : " + filtroModIKeystoreIssuer);
this.driver.logDebug("filtroModISicurezzaToken : " + filtroModISicurezzaToken);
this.driver.logDebug("filtroModITokenPolicy : " + filtroModITokenPolicy);
this.driver.logDebug("filtroModITokenClientId : " + filtroModITokenClientId);
this.driver.logDebug("filtroModIAudience : " + filtroModIAudience);
this.driver.logDebug("filtroProprietaNome : " + filtroProprietaNome);
this.driver.logDebug("filtroProprietaValore : " + filtroProprietaValore);
Connection con = null;
PreparedStatement stmt=null;
ResultSet risultato=null;
boolean error = false;
ArrayList<ServizioApplicativo> silList = new ArrayList<>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addSelectCountField("*", "cont");
if (idSoggetto!=null)
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = ?");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME, search, true, true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addSelectCountField("*", "cont");
if (idSoggetto!=null)
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = ?");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
int index = 1;
if (idSoggetto!=null) {
stmt.setLong(index++, idSoggetto);
}
if(tipologiaFruizione!=null) {
stmt.setString(index++, tipologiaFruizione.getValue());
}
else if(tipologiaErogazione!=null) {
stmt.setString(index++, tipologiaErogazione.getValue());
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
stmt.setString(index++, CostantiConfigurazione.SERVER);
stmt.setString(index++, CostantiConfigurazione.CLIENT);
}
else {
stmt.setString(index++, filterTipoServizioApplicativo);
if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
stmt.setInt(index++, CostantiDB.TRUE);
}
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
stmt.setString(index++, filterTipoCredenziali);
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
stmt.setString(index++,CostantiConfigurazione.CREDENZIALE_SSL.toString());
}
/** if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
// // like
// }*/
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
stmt.setString(index++, filterCredenzialeTokenPolicy);
}
}
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_APPLICATIVI);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addSelectField("nome");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
if (idSoggetto!=null)
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = ?");
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_NOME, search, true, true);
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy("nome");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
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_APPLICATIVI);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addSelectField("nome");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
if (idSoggetto!=null)
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = ?");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObject.addSelectField(CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+" = "+CostantiDB.SOGGETTI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereINCondition(CostantiDB.SOGGETTI+"."+CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO, true, tipoSoggettiProtocollo.toArray(new String[1]));
}
if(tipologiaFruizione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+"<>?");
}
else if(tipologiaErogazione!=null) {
sqlQueryObject.addWhereCondition(true, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL, CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+"<>?");
}
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy("nome");
if(tipoSoggettiProtocollo!=null && !tipoSoggettiProtocollo.isEmpty()) {
sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI_COLUMN_NOME_SOGGETTO);
sqlQueryObject.addOrderBy(CostantiDB.SOGGETTI_COLUMN_TIPO_SOGGETTO);
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" =?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+"=?");
}
else if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
sqlQueryObject.addWhereCondition(false, CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?", CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_AS_CLIENT+" = ?");
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPO+" = ?");
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?",
CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?"+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" "+CostantiDB.CONDITION_IS_NOT_NULL+
CostantiDB.CONDITION_AND+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE+" "+CostantiDB.CONDITION_IS_NOT_NULL);
}
else {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" = ?");
}
if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
if(CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_SUBJECT, filterCredenziale,
LikeConfig.contains(true,true)));
}
else if(CostantiConfigurazione.CREDENZIALE_BASIC.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_PRINCIPAL.toString().equals(filterTipoCredenziali) ||
CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_UTENTE,
filterCredenziale, LikeConfig.contains(true,true));
}
}
if(filterCredenzialeIssuer!=null && !"".equals(filterCredenzialeIssuer) &&
CostantiConfigurazione.CREDENZIALE_SSL.toString().equals(filterTipoCredenziali)) {
sqlQueryObject.addWhereCondition(false,
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_CN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)),
sqlQueryObject.getWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ISSUER, filterCredenzialeIssuer,
LikeConfig.contains(true,true)));
}
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TOKEN_POLICY+" = ?");
}
}
if(joinConnettore) {
DBUtils.setFiltriConnettoreApplicativo(sqlQueryObject, this.driver.tipoDB,
tipoConnettore, endpointType, tipoConnettoreIntegrationManager,
filtroConnettoreTokenPolicy, filtroConnettoreEndpoint, filtroConnettoreKeystore, filtroConnettoreDebug);
}
if(filtroModI) {
DBUtils.setFiltriModIApplicativi(sqlQueryObject, this.driver.tipoDB,
filtroModISicurezzaMessaggioEnabled,
filtroModIKeystorePath, filtroModIKeystoreSubject, filtroModIKeystoreIssuer,
filtroModISicurezzaTokenEnabled,
filtroModITokenPolicy, filtroModITokenClientId,
filtroModIAudience,
checkCredenzialiBase);
}
if(filtroProprieta) {
DBUtils.setFiltriProprietaApplicativo(sqlQueryObject, this.driver.tipoDB,
filtroProprietaNome, filtroProprietaValore);
}
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
index = 1;
if (idSoggetto!=null) {
stmt.setLong(index++, idSoggetto);
}
if(tipologiaFruizione!=null) {
stmt.setString(index++, tipologiaFruizione.getValue());
}
else if(tipologiaErogazione!=null) {
stmt.setString(index++, tipologiaErogazione.getValue());
}
if(filterTipoServizioApplicativo!=null && !"".equals(filterTipoServizioApplicativo)) {
if(CostantiConfigurazione.CLIENT_OR_SERVER.equals(filterTipoServizioApplicativo)) {
stmt.setString(index++, CostantiConfigurazione.SERVER);
stmt.setString(index++, CostantiConfigurazione.CLIENT);
}
else {
stmt.setString(index++, filterTipoServizioApplicativo);
if(CostantiConfigurazione.CLIENT.equals(filterTipoServizioApplicativo)) {
stmt.setInt(index++, CostantiDB.TRUE);
}
}
}
if(filterTipoCredenziali!=null && !"".equals(filterTipoCredenziali)) {
stmt.setString(index++, filterTipoCredenziali);
if(CostantiConfigurazione.CREDENZIALE_TOKEN.toString().equals(filterTipoCredenziali)) {
stmt.setString(index++,CostantiConfigurazione.CREDENZIALE_SSL.toString());
}
/** if(filterCredenziale!=null && !"".equals(filterCredenziale)) {
// // like
// }*/
if(filterCredenzialeTokenPolicy!=null && !"".equals(filterCredenzialeTokenPolicy)) {
stmt.setString(index++, filterCredenzialeTokenPolicy);
}
}
risultato = stmt.executeQuery();
while (risultato.next()) {
ServizioApplicativo sa = this.serviziApplicativiDriver.getServizioApplicativo(risultato.getLong("id"));
silList.add(sa);
}
return silList;
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
protected List<String> servizioApplicativoRuoliList(long idSA, ISearch ricerca) throws DriverConfigurazioneException {
String nomeMetodo = "servizioApplicativoRuoliList";
int idLista = Liste.SERVIZIO_APPLICATIVO_RUOLI;
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));
Connection con = null;
boolean error = false;
PreparedStatement stmt = null;
ResultSet risultato = null;
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
List<String> listIdRuoli = null;
try {
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO, search, true, true);
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSA);
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_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO, search, true, true);
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO);
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_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_RUOLI);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.setSelectDistinct(true);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.SERVIZI_APPLICATIVI_RUOLI+"."+CostantiDB.SERVIZI_APPLICATIVI_RUOLI_COLUMN_RUOLO);
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSA);
risultato = stmt.executeQuery();
listIdRuoli = new ArrayList<>();
while (risultato.next()) {
listIdRuoli.add(risultato.getString(1));
}
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
return listIdRuoli;
}
protected List<Proprieta> serviziApplicativiProprietaList(int idSA, ISearch ricerca) throws DriverConfigurazioneException {
String nomeMetodo = "serviziApplicativiProprietaList";
int idLista = Liste.SERVIZI_APPLICATIVI_PROP;
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));
Connection con = null;
boolean error = false;
PreparedStatement stmt = null;
ResultSet risultato = null;
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
List<Proprieta> lista = null;
try {
if (!search.equals("")) {
//query con search
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_COLUMN_NOME, search, true, true);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
} else {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
sqlQueryObject.addSelectCountField("*", "cont");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.setANDLogicOperator(true);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSA);
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_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_COLUMN_NOME);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+".valore");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+".enc_value");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_COLUMN_NOME, search, true, true);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_COLUMN_NOME);
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_APPLICATIVI);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI_PROPS);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_COLUMN_NOME);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+".valore");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+".enc_value");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"=?");
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID+"="+CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObject.setANDLogicOperator(true);
sqlQueryObject.addOrderBy(CostantiDB.SERVIZI_APPLICATIVI_PROPS+"."+CostantiDB.SERVIZI_APPLICATIVI_PROPS_COLUMN_NOME);
sqlQueryObject.setSortType(true);
sqlQueryObject.setLimit(limit);
sqlQueryObject.setOffset(offset);
queryString = sqlQueryObject.createSQLQuery();
}
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idSA);
risultato = stmt.executeQuery();
lista = new ArrayList<>();
while (risultato.next()) {
Proprieta proprieta = new Proprieta();
proprieta.setId(risultato.getLong("id"));
proprieta.setNome(risultato.getString("nome"));
String plainValue = risultato.getString("valore");
String encValue = risultato.getString("enc_value");
if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
proprieta.setValore(encValue);
}
else {
proprieta.setValore(plainValue);
}
lista.add(proprieta );
}
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
return lista;
}
// all
protected int countTipologieServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, null, false, filters, false, null, null);
}
protected int countTipologieServiziApplicativi(IDSoggetto proprietario,ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, null, false, filters, false, null, null);
}
// fruizione
protected int countTipologieFruizioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, null, true, filters, false, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, null, true, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, null, true, filters, checkAssociazionePorta, isBound, null);
}
protected int countTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, fruizione, true, filters, false, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, fruizione, true, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, false, fruizione, true, filters, checkAssociazionePorta, isBound, null);
}
protected int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, null, true, filters, false, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, null, true, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, null, true, filters, checkAssociazionePorta, isBound, null);
}
protected int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, fruizione, true, filters, false, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, fruizione, true, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, false, fruizione, true, filters, checkAssociazionePorta, isBound, null);
}
// erogazione
protected int countTipologieErogazioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, true, null, false, filters, false, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, null, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
protected int countTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, erogazione, true, null, false, filters, false, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, erogazione, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(null, erogazione, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
protected int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, erogazione, true, null, false, filters, false, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, erogazione, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, erogazione, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
protected int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, true, null, false, filters, false, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected int countTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngineCount(proprietario, null, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
// engine
private int serviziApplicativiListEngineCount(IDSoggetto proprietario,
RicercaTipologiaErogazione erogazione, boolean searchSoloErogazione,
RicercaTipologiaFruizione fruizione, boolean serchSoloFruizione,
ISearch filters,boolean checkAssociazionePorta,
Boolean fruizioneIsBound, Boolean erogazioneIsBound) throws DriverConfigurazioneException {
String nomeMetodo = "serviziApplicativiCount";
Connection con = null;
PreparedStatement stmt=null;
ResultSet risultato=null;
boolean error = false;
Long idProprietario = null;
int idLista = Liste.SERVIZIO_APPLICATIVO;
String search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(filters.getSearchString(idLista)) ? "" : filters.getSearchString(idLista));
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
if(proprietario!=null){
idProprietario=DBUtils.getIdSoggetto(proprietario.getNome(), proprietario.getTipo(), con, this.driver.tipoDB);
if(idProprietario==null || idProprietario<0)
throw new DriverConfigurazioneException(getMessageProprietarioNonEsiste(nomeMetodo, proprietario));
}
// *** count ***
ISQLQueryObject sqlQueryObject = this.getServiziApplicativiSearchFiltratiTipologia(proprietario,
erogazione, searchSoloErogazione,
fruizione, serchSoloFruizione,
checkAssociazionePorta, search, true,
fruizioneIsBound, erogazioneIsBound);
String queryString = sqlQueryObject.createSQLQuery();
this.driver.logDebug("QueryCount=["+queryString+"]");
stmt = con.prepareStatement(queryString);
int index = 1;
if(proprietario!=null){
stmt.setLong(index++, idProprietario);
}
if(serchSoloFruizione){
//se fruizione non specificata voglio tutti i tipi di fruizione
if(fruizione==null){
stmt.setString(index++, TipologiaFruizione.DISABILITATO.toString());
}else{
if(!RicercaTipologiaFruizione.ALL.toString().equals(fruizione.toString())){
stmt.setString(index++,fruizione.toString());
}
}
}else if(searchSoloErogazione){
//se erogazione non specificato voglio tutti i tipi di erogazione
if(erogazione==null){
stmt.setString(index++,TipologiaErogazione.DISABILITATO.toString());
}else{
if(!RicercaTipologiaErogazione.ALL.toString().equals(erogazione.toString())){
stmt.setString(index++,erogazione.toString());
}
}
}
if(fruizioneIsBound!=null){
stmt.setString(index++,TipoAutenticazione.DISABILITATO.getValue());
}
if(erogazioneIsBound!=null){
stmt.setString(index++,TipiConnettore.DISABILITATO.getNome());
stmt.setString(index++,TipiConnettore.HTTP.getNome());
stmt.setString(index++,TipiConnettore.HTTP.getNome());
// stmt.setString(index++,""); OP-708
}
risultato = stmt.executeQuery();
int count = -1;
if (risultato.next()){
count = risultato.getInt(CostantiDB.COLUMN_ALIAS_COUNT);
}
risultato.close();
stmt.close();
return count;
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
// all
protected List<TipologiaServizioApplicativo> getTipologieServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, null, false, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieServiziApplicativi(IDSoggetto proprietario,ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, null, false, filters, false, null, null);
}
// fruizione
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, null, true, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, null, true, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, null, true, filters, checkAssociazionePorta, isBound, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, fruizione, true, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, fruizione, true, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, false, fruizione, true, filters, checkAssociazionePorta, isBound, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, null, true, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, null, true, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, null, true, filters, checkAssociazionePorta, isBound, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, fruizione, true, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, fruizione, true, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieFruizioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaFruizione fruizione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, false, fruizione, true, filters, checkAssociazionePorta, isBound, null);
}
// erogazione
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, true, null, false, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, null, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, erogazione, true, null, false, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, erogazione, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(null, erogazione, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, erogazione, true, null, false, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, erogazione, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, RicercaTipologiaErogazione erogazione, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, erogazione, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, true, null, false, filters, false, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, true, null, false, filters, checkAssociazionePorta, null, null);
}
protected List<TipologiaServizioApplicativo> getTipologieErogazioneServiziApplicativi(IDSoggetto proprietario, ISearch filters,boolean checkAssociazionePorta, Boolean isBound) throws DriverConfigurazioneException
{
return serviziApplicativiListEngine(proprietario, null, true, null, false, filters, checkAssociazionePorta, null, isBound);
}
// engine
private List<TipologiaServizioApplicativo> serviziApplicativiListEngine(IDSoggetto proprietario,
RicercaTipologiaErogazione erogazione, boolean searchSoloErogazione,
RicercaTipologiaFruizione fruizione, boolean serchSoloFruizione,
ISearch filters,boolean checkAssociazionePorta,
Boolean fruizioneIsBound, Boolean erogazioneIsBound) throws DriverConfigurazioneException {
String nomeMetodo = "serviziApplicativiList";
Connection con = null;
PreparedStatement stmt=null;
ResultSet risultato=null;
boolean error = false;
Long idProprietario = null;
int idLista = Liste.SERVIZIO_APPLICATIVO;
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<TipologiaServizioApplicativo> lista = new ArrayList<>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
if(proprietario!=null){
idProprietario=DBUtils.getIdSoggetto(proprietario.getNome(), proprietario.getTipo(), con, this.driver.tipoDB);
if(idProprietario==null || idProprietario<0)
throw new DriverConfigurazioneException(getMessageProprietarioNonEsiste(nomeMetodo, proprietario));
}
filters.setNumEntries(idLista, this.serviziApplicativiListEngineCount(proprietario,
erogazione, searchSoloErogazione,
fruizione, serchSoloFruizione,
filters, checkAssociazionePorta,
fruizioneIsBound, erogazioneIsBound));
// *** select ***
ISQLQueryObject sqlQueryObject = this.getServiziApplicativiSearchFiltratiTipologia(proprietario,
erogazione, searchSoloErogazione,
fruizione, serchSoloFruizione,
checkAssociazionePorta, search, false,
fruizioneIsBound, erogazioneIsBound);
// ricavo le entries
if (limit == 0) // con limit
limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
sqlQueryObject.addOrderBy("nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setOffset(offset);
sqlQueryObject.setLimit(limit);
String queryString = sqlQueryObject.createSQLQuery();
this.driver.logDebug("Query=["+queryString+"]");
stmt = con.prepareStatement(queryString);
int index = 1;
if(proprietario!=null)
stmt.setLong(index++, idProprietario);
if(serchSoloFruizione){
//se fruizione non specificata voglio tutti i tipi di fruizione
if(fruizione==null){
stmt.setString(index++, TipologiaFruizione.DISABILITATO.toString());
}else{
if(!RicercaTipologiaFruizione.ALL.toString().equals(fruizione.toString())){
stmt.setString(index++,fruizione.toString());
}
}
}else if(searchSoloErogazione){
//se erogazione non specificato voglio tutti i tipi di erogazione
if(erogazione==null){
stmt.setString(index++,TipologiaErogazione.DISABILITATO.toString());
}else{
if(!RicercaTipologiaErogazione.ALL.toString().equals(erogazione.toString())){
stmt.setString(index++,erogazione.toString());
}
}
}
if(fruizioneIsBound!=null){
stmt.setString(index++,TipoAutenticazione.DISABILITATO.getValue());
}
if(erogazioneIsBound!=null){
stmt.setString(index++,TipiConnettore.DISABILITATO.getNome());
stmt.setString(index++,TipiConnettore.HTTP.getNome());
stmt.setString(index++,TipiConnettore.HTTP.getNome());
// stmt.setString(index++,""); OP-708
}
risultato = stmt.executeQuery();
while (risultato.next()){
IDServizioApplicativo idSA = new IDServizioApplicativo();
if(proprietario!=null){
idSA.setIdSoggettoProprietario(proprietario);
}else{
long idProprietarioLetto = risultato.getLong(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
Soggetto s = this.soggettiDriver.getSoggetto(idProprietarioLetto);
idSA.setIdSoggettoProprietario(new IDSoggetto(s.getTipo(), s.getNome()));
}
idSA.setNome(risultato.getString("nome"));
TipologiaServizioApplicativo tipologia = new TipologiaServizioApplicativo();
tipologia.setIdServizioApplicativo(idSA);
String tipologiaFruizione = risultato.getString(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE);
if(tipologiaFruizione!=null && !"".equals(tipologiaFruizione)){
tipologia.setTipologiaFruizione(TipologiaFruizione.toEnumConstant(tipologiaFruizione));
}
String tipologiaErogazione = risultato.getString(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE);
if(tipologiaErogazione!=null && !"".equals(tipologiaErogazione)){
tipologia.setTipologiaErogazione(TipologiaErogazione.toEnumConstant(tipologiaErogazione));
}
lista.add(tipologia);
}
risultato.close();
stmt.close();
return lista;
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
private ISQLQueryObject getServiziApplicativiSearchFiltratiTipologia(IDSoggetto proprietario,
RicercaTipologiaErogazione erogazione, boolean searchSoloErogazione,
RicercaTipologiaFruizione fruizione, boolean serchSoloFruizione,
boolean checkAssociazionePorta,String search, boolean count,
Boolean fruizioneIsBound, Boolean erogazioneIsBound) throws DriverConfigurazioneException{
try {
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
if(count){
sqlQueryObject.addSelectCountField("*",CostantiDB.COLUMN_ALIAS_COUNT);
}
else{
sqlQueryObject.addSelectField("nome");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE);
}
if(proprietario!=null){
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
}
if(!"".equals(search)){
sqlQueryObject.addWhereLikeCondition("nome", search,false,true,true); // escape a false, deve essere pilotato da chi lo usa!
}
if(serchSoloFruizione){
//se fruizione non specificata voglio tutti i tipi di fruizione che non siano disabilitati
if(fruizione==null){
sqlQueryObject.addWhereCondition(true,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" <> ?");
}else{
if(RicercaTipologiaFruizione.DISABILITATO.toString().equals(fruizione.toString())){
sqlQueryObject.addWhereCondition(false,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" "+CostantiDB.CONDITION_IS_NULL,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" = ?");
}
else if(RicercaTipologiaFruizione.ALL.toString().equals(fruizione.toString())){
// Non devo fare niente (l'associazione porta seguente fara' si che verranno tornati solo i sa associati a PD)
}
else{
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE+" = ?");
}
}
if(checkAssociazionePorta){
ISQLQueryObject sqlQueryObjectIn = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
ISQLQueryObject sqlQueryObjectTrasportoIn = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectTrasportoIn.addFromTable(CostantiDB.PORTE_DELEGATE_SA);
sqlQueryObjectTrasportoIn.addSelectField(CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObjectTrasportoIn.addWhereCondition(CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+"="+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectIn.addWhereExistsCondition(false, sqlQueryObjectTrasportoIn);
ISQLQueryObject sqlQueryObjectTokenIn = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectTokenIn.addFromTable(CostantiDB.PORTE_DELEGATE_TOKEN_SA);
sqlQueryObjectTokenIn.addSelectField(CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObjectTokenIn.addWhereCondition(CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+"="+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObjectIn.addWhereExistsCondition(false, sqlQueryObjectTokenIn);
sqlQueryObjectIn.setANDLogicOperator(false);
sqlQueryObjectIn.addWhereCondition(sqlQueryObjectIn.createSQLConditions());
}
}
else if(searchSoloErogazione){
//se erogazione non specificato voglio tutti i tipi di erogazione
if(erogazione==null){
sqlQueryObject.addWhereCondition(true,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NOT_NULL,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" <> ?");
}else{
if(RicercaTipologiaErogazione.DISABILITATO.toString().equals(erogazione.toString())){
sqlQueryObject.addWhereCondition(false,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" "+CostantiDB.CONDITION_IS_NULL,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" = ?");
}
else if(RicercaTipologiaErogazione.ALL.toString().equals(erogazione.toString())){
// Non devo fare niente (l'associazione porta seguente fara' si che verranno tornati solo i sa associati a PD)
}
else{
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE+" = ?");
}
}
if(checkAssociazionePorta){
ISQLQueryObject sqlQueryObjectIn = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectIn.addFromTable(CostantiDB.PORTE_APPLICATIVE_SA);
sqlQueryObjectIn.addSelectField(CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF);
sqlQueryObjectIn.addWhereCondition(CostantiDB.PORTA_COLUMN_ID_SERVIZIO_APPLICATIVO_REF+"="+CostantiDB.SERVIZI_APPLICATIVI+"."+CostantiDB.COLUMN_ID);
sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectIn);
}
}
if(fruizioneIsBound!=null){
if(fruizioneIsBound){
sqlQueryObject.addWhereIsNotNullCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+"<>?");
}
else{
sqlQueryObject.addWhereCondition(false,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+" "+CostantiDB.CONDITION_IS_NULL,CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOAUTH+"=?");
}
}
if(erogazioneIsBound!=null){
ISQLQueryObject sqlQueryObjectConnettore = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectConnettore.setANDLogicOperator(true);
sqlQueryObjectConnettore.addFromTable(CostantiDB.CONNETTORI);
sqlQueryObjectConnettore.addSelectField("id");
sqlQueryObjectConnettore.addWhereCondition("id_connettore_inv="+CostantiDB.CONNETTORI+"."+CostantiDB.COLUMN_ID);
// Fix OP-708
ISQLQueryObject sqlQueryObjectNullCondition = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectNullCondition.addWhereIsNotNullCondition("url");
ISQLQueryObject sqlQueryObjectEmptyCondition = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObjectEmptyCondition.addWhereIsNotEmptyCondition("url");
sqlQueryObjectConnettore.addWhereCondition(false,
"endpointtype<>?"+CostantiDB.CONDITION_AND+"endpointtype<>?",
//"endpointtype=? AND url is not null AND url <> ?"); OP-708
"endpointtype=?"+CostantiDB.CONDITION_AND+""+sqlQueryObjectNullCondition.createSQLConditions()+
CostantiDB.CONDITION_AND+sqlQueryObjectEmptyCondition.createSQLConditions());
sqlQueryObject.addWhereExistsCondition(!erogazioneIsBound, sqlQueryObjectConnettore);
}
sqlQueryObject.setANDLogicOperator(true);
return sqlQueryObject;
} catch (Exception e) {
throw new DriverConfigurazioneException(e.getMessage(),e);
}
}
/**
* Recupera i servizi applicativi che hanno come tipologia di erogazione una tra quelle passate come parametro
* @param filters
* @param proprietario
* @return List<IDServizioApplicativo>
* @throws DriverConfigurazioneException
*/
protected List<IDServizioApplicativo> serviziApplicativiList(ISearch filters, IDSoggetto proprietario, TipologiaErogazione... erogazione) throws DriverConfigurazioneException {
String nomeMetodo = "serviziApplicativiList";
Connection con = null;
PreparedStatement stmt=null;
ResultSet risultato=null;
boolean error = false;
long idProprietario = -1;
int idLista = Liste.SERVIZIO_APPLICATIVO;
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<IDServizioApplicativo> lista = new ArrayList<>();
if (this.driver.atomica) {
try {
con = this.driver.getConnectionFromDatasource(nomeMetodo);
con.setAutoCommit(false);
} catch (Exception e) {
throw new DriverConfigurazioneException(getMessageDatasourceError(nomeMetodo, e),e);
}
} else
con = this.driver.globalConnection;
this.driver.logDebug(PREFIX_ATOMICA + this.driver.atomica);
try {
idProprietario=DBUtils.getIdSoggetto(proprietario.getNome(), proprietario.getTipo(), con, this.driver.tipoDB);
if(idProprietario<0)
throw new DriverConfigurazioneException(getMessageProprietarioNonEsiste(nomeMetodo, proprietario));
//count
ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addSelectCountField("*",CostantiDB.COLUMN_ALIAS_COUNT);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
if(!"".equals(search)){
sqlQueryObject.addWhereLikeCondition("nome", search,true,true);
}
//se erogazione non specificato voglio tutti i tipi di erogazione
String[] conditions = new String[erogazione.length];
for (int i = 0; i < erogazione.length; i++) {
conditions[i] = "tipologia_erogazione = ?";
}
sqlQueryObject.addWhereCondition(false,conditions);
sqlQueryObject.setANDLogicOperator(true);
String queryString = sqlQueryObject.createSQLQuery();
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idProprietario);
int baseIdx = 1;
for (int i = 0; i < erogazione.length; i++) {
stmt.setString(++baseIdx, erogazione[i].toString());
}
risultato = stmt.executeQuery();
if (risultato.next()){
filters.setNumEntries(idLista, risultato.getInt(CostantiDB.COLUMN_ALIAS_COUNT));
}
risultato.close();
stmt.close();
//select
sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
sqlQueryObject.addSelectField("nome");
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_FRUIZIONE);
sqlQueryObject.addSelectField(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_TIPOLOGIA_EROGAZIONE);
sqlQueryObject.addWhereCondition(CostantiDB.SERVIZI_APPLICATIVI_COLUMN_ID_SOGGETTO+"=?");
if(!"".equals(search)){
sqlQueryObject.addWhereLikeCondition("nome", search,true,true);
}
sqlQueryObject.addWhereCondition(false,conditions);
sqlQueryObject.setANDLogicOperator(true);
// ricavo le entries
if (limit == 0) // con limit
limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
sqlQueryObject.addOrderBy("nome");
sqlQueryObject.setSortType(true);
sqlQueryObject.setOffset(offset);
sqlQueryObject.setLimit(limit);
queryString = sqlQueryObject.createSQLQuery();
stmt = con.prepareStatement(queryString);
stmt.setLong(1, idProprietario);
baseIdx = 1;
for (int i = 0; i < erogazione.length; i++) {
stmt.setString(++baseIdx, erogazione[i].toString());
}
risultato = stmt.executeQuery();
while (risultato.next()){
IDServizioApplicativo idSA = new IDServizioApplicativo();
idSA.setIdSoggettoProprietario(proprietario);
idSA.setNome(risultato.getString("nome"));
lista.add(idSA);
}
risultato.close();
stmt.close();
return lista;
} catch (Exception qe) {
error = true;
throw new DriverConfigurazioneException(getMessageError(nomeMetodo, qe),qe);
} finally {
//Chiudo statement and resultset
JDBCUtilities.closeResources(risultato, stmt);
this.driver.closeConnection(error,con);
}
}
}