DriverConfigurazioneXML.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.core.config.driver.xml;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import org.openspcoop2.core.commons.CoreException;
- import org.openspcoop2.core.commons.IMonitoraggioRisorsa;
- import org.openspcoop2.core.config.AccessoConfigurazione;
- import org.openspcoop2.core.config.AccessoDatiAttributeAuthority;
- import org.openspcoop2.core.config.AccessoDatiAutenticazione;
- import org.openspcoop2.core.config.AccessoDatiAutorizzazione;
- import org.openspcoop2.core.config.AccessoDatiConsegnaApplicativi;
- import org.openspcoop2.core.config.AccessoDatiGestioneToken;
- import org.openspcoop2.core.config.AccessoDatiKeystore;
- import org.openspcoop2.core.config.AccessoDatiRichieste;
- import org.openspcoop2.core.config.AccessoRegistro;
- import org.openspcoop2.core.config.CanaliConfigurazione;
- import org.openspcoop2.core.config.Configurazione;
- import org.openspcoop2.core.config.ConfigurazioneUrlInvocazione;
- import org.openspcoop2.core.config.ConfigurazioneUrlInvocazioneRegola;
- import org.openspcoop2.core.config.GenericProperties;
- import org.openspcoop2.core.config.GestioneErrore;
- import org.openspcoop2.core.config.Openspcoop2;
- import org.openspcoop2.core.config.PortaApplicativa;
- import org.openspcoop2.core.config.PortaApplicativaServizioApplicativo;
- import org.openspcoop2.core.config.PortaDelegata;
- import org.openspcoop2.core.config.RegistroPlugin;
- import org.openspcoop2.core.config.RegistroPluginArchivio;
- import org.openspcoop2.core.config.RegistroPlugins;
- import org.openspcoop2.core.config.RoutingTable;
- import org.openspcoop2.core.config.ServizioApplicativo;
- import org.openspcoop2.core.config.Soggetto;
- import org.openspcoop2.core.config.StatoServiziPdd;
- import org.openspcoop2.core.config.SystemProperties;
- import org.openspcoop2.core.config.TrasformazioneRegola;
- import org.openspcoop2.core.config.TrasformazioneRegolaApplicabilitaServizioApplicativo;
- import org.openspcoop2.core.config.TrasformazioneRegolaApplicabilitaSoggetto;
- import org.openspcoop2.core.config.constants.CostantiConfigurazione;
- import org.openspcoop2.core.config.constants.PortaApplicativaAzioneIdentificazione;
- import org.openspcoop2.core.config.constants.StatoFunzionalita;
- import org.openspcoop2.core.config.driver.BeanUtilities;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
- import org.openspcoop2.core.config.driver.DriverConfigurazioneNotFound;
- import org.openspcoop2.core.config.driver.FiltroRicercaPorteApplicative;
- import org.openspcoop2.core.config.driver.FiltroRicercaPorteDelegate;
- import org.openspcoop2.core.config.driver.FiltroRicercaServiziApplicativi;
- import org.openspcoop2.core.config.driver.FiltroRicercaSoggetti;
- import org.openspcoop2.core.config.driver.IDServizioUtils;
- import org.openspcoop2.core.config.driver.IDriverConfigurazioneGet;
- import org.openspcoop2.core.config.driver.ValidazioneSemantica;
- import org.openspcoop2.core.id.IDConnettore;
- import org.openspcoop2.core.id.IDPortaApplicativa;
- import org.openspcoop2.core.id.IDPortaDelegata;
- import org.openspcoop2.core.id.IDServizio;
- import org.openspcoop2.core.id.IDServizioApplicativo;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.core.id.IdentificativiErogazione;
- import org.openspcoop2.core.id.IdentificativiFruizione;
- import org.openspcoop2.message.OpenSPCoop2MessageFactory;
- import org.openspcoop2.message.xml.ValidatoreXSD;
- import org.openspcoop2.utils.LoggerWrapperFactory;
- import org.openspcoop2.utils.certificate.ArchiveLoader;
- import org.openspcoop2.utils.certificate.ArchiveType;
- import org.openspcoop2.utils.certificate.Certificate;
- import org.openspcoop2.utils.certificate.CertificateInfo;
- import org.openspcoop2.utils.certificate.CertificateUtils;
- import org.openspcoop2.utils.certificate.PrincipalType;
- import org.openspcoop2.utils.crypt.CryptConfig;
- import org.openspcoop2.utils.crypt.CryptFactory;
- import org.openspcoop2.utils.crypt.ICrypt;
- import org.openspcoop2.utils.date.DateManager;
- import org.slf4j.Logger;
- /**
- * Contiene un 'reader' della configurazione dell'infrastruttura OpenSPCoop.
- * <p>
- * Sono forniti metodi per la lettura della configurazione la quale contiene i seguenti soggetti :
- * <ul>
- * <li>Porte Delegate</li>
- * <li>Porte Applicative</li>
- * <li>SIL-Mittenti</li>
- * <li>Porta di Dominio</li>
- * <li>RoutingTable</li>
- * <li>Altri aspetti di configurazione ...</li>
- * </ul>
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DriverConfigurazioneXML extends BeanUtilities
- implements IDriverConfigurazioneGet,IMonitoraggioRisorsa{
- /* ******** F I E L D S P R I V A T I ******** */
- /** Indicazione di una corretta creazione */
- public boolean create = false;
- /** Path dove si trova il file xml che realizza la configurazione di OpenSPCoop. */
- private String configuration_path;
- /** 'Root' del servizio della configurazione di OpenSPCoop. */
- private org.openspcoop2.core.config.Openspcoop2 openspcoop;
- /** Validatore della configurazione */
- private ValidatoreXSD validatoreConfigurazione = null;
- /** Variabile che mantiene uno stato di ultima modifica della configurazione xml
- od una variabile temporale che servira' per fare il refresh della configurazione
- una volta scaduto un timeout, nel caso il file sia posto in remoto (HTTP) .*/
- private long lastModified = 0;
- /** Logger utilizzato per info. */
- private Logger log = null;
- /** Indica ogni quanto deve essere effettuato il refresh del file dei registri dei servizi,
- nel caso sia posto in remoto (secondi)*/
- private static final int timeoutRefresh = 30;
- /** ************* parsing XML ************** */
- private void parsingXMLConfigurazione() throws DriverConfigurazioneException{
-
- /* --- Validazione XSD -- */
- if(buildXsdValidator) {
- FileInputStream fXML = null;
- try{
- if(this.configuration_path.startsWith("http://") || this.configuration_path.startsWith("file://")){
- this.validatoreConfigurazione.valida(this.configuration_path);
- }else{
- fXML = new FileInputStream(this.configuration_path);
- this.validatoreConfigurazione.valida(fXML);
- }
- }catch (Exception e) {
- throw new DriverConfigurazioneException("Riscontrato errore durante la validazione XSD della configurazione XML di OpenSPCoop: "+e.getMessage());
- }finally{
- if(fXML!=null){
- try{
- fXML.close();
- }catch(Exception e){}
- }
- }
- }
- /* ---- InputStream ---- */
- InputStream iStream = null;
- HttpURLConnection httpConn = null;
- if(this.configuration_path.startsWith("http://") || this.configuration_path.startsWith("file://")){
- try{
- URL url = new URL(this.configuration_path);
- URLConnection connection = url.openConnection();
- httpConn = (HttpURLConnection) connection;
- httpConn.setRequestMethod("GET");
- httpConn.setDoOutput(true);
- httpConn.setDoInput(true);
- iStream = httpConn.getInputStream();
- }catch(Exception e) {
- try{
- // if(iStream!=null)
- // iStream.close();
- if(httpConn !=null)
- httpConn.disconnect();
- } catch(Exception ef) {}
- throw new DriverConfigurazioneException("Riscontrato errore durante la creazione dell'inputStream della configurazione (HTTP) : \n\n"+e.getMessage());
- }
- this.lastModified = DateManager.getTimeMillis();
- }else{
- try{
- iStream = new FileInputStream(this.configuration_path);
- }catch(java.io.FileNotFoundException e) {
- throw new DriverConfigurazioneException("Riscontrato errore durante la creazione dell'inputStream della configurazione (FILE) : \n\n"+e.getMessage());
- }
- try{
- this.lastModified = (new File(this.configuration_path)).lastModified();
- }catch(Exception e){
- try{
- if(iStream!=null)
- iStream.close();
- } catch(java.io.IOException ef) {}
- throw new DriverConfigurazioneException("Riscontrato errore durante la lettura del file dove e' allocato la configurazione: "+e.getMessage());
- }
- }
- /* ---- Unmarshall del file di configurazione ---- */
- try{
- org.openspcoop2.core.config.utils.serializer.JaxbDeserializer deserializer = new org.openspcoop2.core.config.utils.serializer.JaxbDeserializer();
- this.openspcoop = deserializer.readOpenspcoop2(iStream);
- } catch(Exception e) {
- try{
- if(iStream!=null)
- iStream.close();
- } catch(Exception ef) {}
- try{
- if(httpConn !=null)
- httpConn.disconnect();
- } catch(Exception ef) {}
- throw new DriverConfigurazioneException("Riscontrato errore durante l'unmarshall del file di configurazione: "+e.getMessage());
- }
-
- try{
- // Chiusura dello Stream
- if(iStream!=null)
- iStream.close();
- } catch(Exception e) {
- throw new DriverConfigurazioneException("Riscontrato errore durante la chiusura dell'Input Stream: "+e.getMessage());
- }
- try{
- // Chiusura dell'eventuale connessione HTTP
- if(httpConn !=null)
- httpConn.disconnect();
- } catch(Exception e) {
- throw new DriverConfigurazioneException("Riscontrato errore durante la chiusura dell'Input Stream (http): "+e.getMessage());
- }
- }
- /* ******** COSTRUTTORI e METODI DI RELOAD ******** */
- private static boolean buildXsdValidator = true;
- public static void disableBuildXsdValidator() {
- buildXsdValidator = false;
- }
-
- /**
- * Costruttore. Viene effettuato l'unmarshall del file di configurazione.
- *
- * @param path path dove si trova il file xml che realizza la configurazione di OpenSPCoop.
- *
- */
- public DriverConfigurazioneXML(String path,Logger alog){
- if(alog==null)
- this.log = LoggerWrapperFactory.getLogger(DriverConfigurazioneXML.class);
- else
- this.log = alog;
-
- if(path == null){
- this.log.error("DriverConfigurazione: Riscontrato errore durante la creazione: url/path is null");
- this.create=false;
- return;
- }
- this.configuration_path = path;
- /* --- Costruzione Validatore XSD -- */
- try{
- if(buildXsdValidator) {
- this.validatoreConfigurazione = new ValidatoreXSD(OpenSPCoop2MessageFactory.getDefaultMessageFactory(), this.log,DriverConfigurazioneXML.class.getResourceAsStream("/config.xsd"));
- }
- }catch (Exception e) {
- this.log.info("Riscontrato errore durante l'inizializzazione dello schema della configurazione di OpenSPCoop: "+e.getMessage(),e);
- return;
- }
- try{
- this.parsingXMLConfigurazione();
- }catch(Exception e){
- this.log.error("DriverConfigurazione: "+e.getMessage(),e);
- this.create=false;
- return;
- }
- this.create = true;
- }
- /**
- * Metodo che si occupa di effettuare il refresh dell'unmarshall del file di configurazione
- * se il file di configurazione e' stato modificato dall'ultimo unmarshall.
- *
- *
- */
- private void forzaRefreshConfigurazioneXML() throws DriverConfigurazioneException{
- refreshConfigurazioneXML(true);
- }
-
- /**
- * Metodo che si occupa di effettuare il refresh dell'unmarshall del file di configurazione
- * se il file di configurazione e' stato modificato dall'ultimo unmarshall.
- *
- *
- */
- public void refreshConfigurazioneXML() throws DriverConfigurazioneException{
- refreshConfigurazioneXML(false);
- }
- /**
- * Metodo che si occupa di effettuare il refresh dell'unmarshall del file di configurazione
- * se il file di configurazione e' stato modificato dall'ultimo unmarshall.
- *
- *
- */
- private synchronized void refreshConfigurazioneXML(boolean refreshForzato) throws DriverConfigurazioneException{
- File fTest = null;
- boolean refresh = refreshForzato;
- if(refreshForzato==false){
- if(this.configuration_path.startsWith("http://") || this.configuration_path.startsWith("file://")){
- long now = DateManager.getTimeMillis();
- if( (now-this.lastModified) > (DriverConfigurazioneXML.timeoutRefresh*1000) ){
- refresh=true;
- }
- }else{
- fTest = new File(this.configuration_path);
- if(this.lastModified != fTest.lastModified()){
- refresh = true;
- }
- }
- }
- if(refresh){
- try{
- this.parsingXMLConfigurazione();
- }catch(Exception e){
- this.log.error("DriverConfigurazione refreshError: "+e.getMessage());
- throw new DriverConfigurazioneException("DriverConfigurazione refreshError: "+e.getMessage());
- }
- if(this.configuration_path.startsWith("http://")==false &&
- this.configuration_path.startsWith("file://")==false){
- this.log.warn("Reloaded configuration context.");
- }
- if(this.validazioneSemanticaDuranteModificaXML){
- ValidazioneSemantica validazioneSemantica = new ValidazioneSemantica(this.openspcoop,this.tipiConnettori,
- this.tipiSoggetti,this.tipiServiziSoap,this.tipiServiziRest,
- this.tipoMsgDiagnosticiAppender,this.tipoTracciamentoAppender,this.tipoDumpAppender,
- this.tipoAutenticazionePortaDelegata,this.tipoAutenticazionePortaApplicativa,
- this.tipoAutorizzazionePortaDelegata,this.tipoAutorizzazionePortaApplicativa,
- this.tipoAutorizzazioneContenutoPortaDelegata,this.tipoAutorizzazioneContenutoPortaApplicativa,
- this.tipoIntegrazionePD,this.tipoIntegrazionePA,
- true,
- this.log);
- try{
- validazioneSemantica.validazioneSemantica(false);
- }catch(Exception e){
- this.log.error("DriverConfigurazione refreshError(ValidazioneSemantica): "+e.getMessage());
- throw new DriverConfigurazioneException("DriverConfigurazione refreshError(ValidazioneSemantica): "+e.getMessage());
- }
- }
- }
- if(this.openspcoop == null){
- this.log.error("DriverConfigurazione refreshError: istanza della configurazione is null dopo il refresh");
- throw new DriverConfigurazioneException("DriverConfigurazione refreshError: istanza della configurazione is null dopo il refresh");
- }
- }
- private boolean validazioneSemanticaDuranteModificaXML = false;
- private String[] tipiConnettori = null;
- private String[] tipiSoggetti = null;
- private String[] tipiServiziSoap = null;
- private String[] tipiServiziRest = null;
- private String[] tipoMsgDiagnosticiAppender = null;
- private String[] tipoTracciamentoAppender = null;
- private String[] tipoDumpAppender = null;
- private String[] tipoAutenticazionePortaDelegata = null;
- private String[] tipoAutenticazionePortaApplicativa = null;
- private String[] tipoAutorizzazionePortaDelegata = null;
- private String[] tipoAutorizzazionePortaApplicativa = null;
- private String[] tipoAutorizzazioneContenutoPortaDelegata = null;
- private String[] tipoAutorizzazioneContenutoPortaApplicativa = null;
- private String[] tipoIntegrazionePD = null;
- private String[] tipoIntegrazionePA = null;
- public void abilitazioneValidazioneSemanticaDuranteModificaXML(String[] tipiConnettori,
- String[] tipiSoggetti,String[] tipiServiziSoap,String[] tipiServiziRest,
- String[]tipoMsgDiagnosticiAppender,String[]tipoTracciamentoAppender,String[]tipoDumpAppender,
- String[]tipoAutenticazionePortaDelegata,String[]tipoAutenticazionePortaApplicativa,
- String[]tipoAutorizzazionePortaDelegata,String[]tipoAutorizzazionePortaApplicativa,
- String[]tipoAutorizzazioneContenutoPortaDelegata,String[]tipoAutorizzazioneContenutoPortaApplicativa,
- String[]tipoIntegrazionePD,String[]tipoIntegrazionePA){
- this.validazioneSemanticaDuranteModificaXML = true;
-
- this.tipiConnettori = tipiConnettori;
- this.tipiSoggetti = tipiSoggetti;
- this.tipiServiziSoap = tipiServiziSoap;
- this.tipiServiziRest = tipiServiziRest;
- this.tipoMsgDiagnosticiAppender= tipoMsgDiagnosticiAppender;
- this.tipoTracciamentoAppender=tipoTracciamentoAppender;
- this.tipoDumpAppender=tipoDumpAppender;
- this.tipoAutenticazionePortaDelegata=tipoAutenticazionePortaDelegata;
- this.tipoAutenticazionePortaApplicativa=tipoAutenticazionePortaApplicativa;
- this.tipoAutorizzazionePortaDelegata=tipoAutorizzazionePortaDelegata;
- this.tipoAutorizzazionePortaApplicativa=tipoAutorizzazionePortaApplicativa;
- this.tipoAutorizzazioneContenutoPortaDelegata=tipoAutorizzazioneContenutoPortaDelegata;
- this.tipoAutorizzazioneContenutoPortaApplicativa=tipoAutorizzazioneContenutoPortaApplicativa;
- this.tipoIntegrazionePD=tipoIntegrazionePD;
- this.tipoIntegrazionePA=tipoIntegrazionePA;
- }
-
-
-
- // SOGGETTO
-
- /**
- * Restituisce Il soggetto identificato da <var>idSoggetto</var>
- *
- * @param aSoggetto Identificatore di un soggetto
- * @return Il Soggetto identificato dal parametro.
- *
- */
- @Override
- public Soggetto getSoggetto(IDSoggetto aSoggetto) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- if( (aSoggetto == null) || (aSoggetto.getNome()==null) || (aSoggetto.getTipo()==null)){
- throw new DriverConfigurazioneException("[getSoggetto] Parametri Non Validi");
- }
- refreshConfigurazioneXML();
- for(int i=0;i<this.openspcoop.sizeSoggettoList();i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- if( aSoggetto.getNome().equals(soggetto.getNome()) &&
- aSoggetto.getTipo().equals(soggetto.getTipo())){
- return soggetto;
- }
- }
- throw new DriverConfigurazioneNotFound("[getSoggetto] Soggetto "+aSoggetto.toString()+" non Esistente");
- }
- /**
- * Restituisce il soggetto configurato come router, se esiste nella Porta di Dominio un soggetto registrato come Router
- *
- * @return il soggetto configurato come router, se esiste nella Porta di Dominio un soggetto registrato come Router
- *
- */
- @Override
- public Soggetto getRouter() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- refreshConfigurazioneXML();
- // Deve esistere un soggetto configurato come Router
- for(int i=0; i<this.openspcoop.sizeSoggettoList();i++){
- if(this.openspcoop.getSoggetto(i).getRouter())
- return this.openspcoop.getSoggetto(i);
- }
- throw new DriverConfigurazioneNotFound("[getRouter] Router non esistente");
- }
- /**
- * Restituisce la lista dei soggetti virtuali gestiti dalla PdD
- *
- * @return Restituisce la lista dei soggetti virtuali gestiti dalla PdD
- * @throws DriverConfigurazioneException
- */
- @Override
- public List<IDSoggetto> getSoggettiVirtuali() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- refreshConfigurazioneXML();
- List<IDSoggetto> lista = new ArrayList<IDSoggetto>();
- try{
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggetto.sizePortaApplicativaList(); j++){
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
- if(pa.getSoggettoVirtuale()!=null &&
- pa.getSoggettoVirtuale().getTipo()!=null &&
- pa.getSoggettoVirtuale().getNome()!=null){
- IDSoggetto soggettoVirtuale = new IDSoggetto(pa.getSoggettoVirtuale().getTipo(),pa.getSoggettoVirtuale().getNome());
- if(lista.contains(soggettoVirtuale)==false){
- this.log.info("aggiunto Soggetto "+soggettoVirtuale+" alla lista dei Soggetti Virtuali");
- lista.add(soggettoVirtuale);
- }
- }
- }
- }
- }catch(Exception e){
- throw new DriverConfigurazioneException("[getSoggettiVirtuali] Inizializzazione lista dei soggetti virtuali non riuscita: "+e.getMessage());
- }
- if(lista.size()==0){
- throw new DriverConfigurazioneNotFound("[getSoggettiVirtuali] Soggetti virtuali non esistenti");
- }
-
- return lista;
- }
- /**
- * Restituisce la lista dei soggetti virtuali gestiti dalla PdD
- *
- * @return Restituisce la lista dei servizi associati a soggetti virtuali gestiti dalla PdD
- * @throws DriverConfigurazioneException
- */
- @Override
- public List<IDServizio> getServiziSoggettiVirtuali() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- List<IDServizio> lista = new ArrayList<>();
- HashSet<String> unique = new HashSet<>();
- try{
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggetto.sizePortaApplicativaList(); j++){
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
- if(pa.getSoggettoVirtuale()!=null &&
- pa.getSoggettoVirtuale().getTipo()!=null &&
- pa.getSoggettoVirtuale().getNome()!=null){
- IDServizio s = IDServizioUtils.buildIDServizio(pa.getServizio().getTipo(), pa.getServizio().getNome(),
- new IDSoggetto(pa.getSoggettoVirtuale().getTipo(),pa.getSoggettoVirtuale().getNome()),
- pa.getServizio().getVersione());
- if(!unique.contains(s.toString())){
- /**log.info("aggiunto Servizio "+s.toString()+" alla lista dei servizi erogati da Soggetti Virtuali");*/
- lista.add(s);
- unique.add(s.toString());
- }
- }
- }
- }
- }catch(Exception e){
- throw new DriverConfigurazioneException("[getServiziSoggettiVirtuali] Inizializzazione lista servizi dei soggetti virtuali non riuscita: "+e.getMessage());
- }
-
-
- if(lista.isEmpty()){
- throw new DriverConfigurazioneNotFound("[getServiziSoggettiVirtuali] Servizi erogati da Soggetti virtuali non esistenti");
- }
-
- return lista;
-
- }
-
- /**
- * Restituisce la lista degli identificativi dei soggetti
- *
- * @param filtroRicerca
- * @return lista degli identificativi dei soggetti
- * @throws DriverConfigurazioneException
- * @throws DriverConfigurazioneNotFound
- */
- @Override
- public List<IDSoggetto> getAllIdSoggetti(
- FiltroRicercaSoggetti filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- List<IDSoggetto> listIDSoggetti = new ArrayList<IDSoggetto>();
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- if(filtroRicerca!=null){
- // Filtro By Data
- if(filtroRicerca.getMinDate()!=null){
- if(soggetto.getOraRegistrazione()==null){
- this.log.debug("[getAllIdSoggetti](FiltroByMinDate) Soggetto ["+soggetto.getTipo()+"/"+soggetto.getNome()+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(soggetto.getOraRegistrazione().before(filtroRicerca.getMinDate())){
- continue;
- }
- }
- if(filtroRicerca.getMaxDate()!=null){
- if(soggetto.getOraRegistrazione()==null){
- this.log.debug("[getAllIdSoggetti](FiltroByMaxDate) Soggetto ["+soggetto.getTipo()+"/"+soggetto.getNome()+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(soggetto.getOraRegistrazione().after(filtroRicerca.getMaxDate())){
- continue;
- }
- }
- // Filtro By Tipo e Nome
- if(filtroRicerca.getTipo()!=null){
- if(soggetto.getTipo().equals(filtroRicerca.getTipo()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNome()!=null){
- if(soggetto.getNome().equals(filtroRicerca.getNome()) == false){
- continue;
- }
- }
- }
- listIDSoggetti.add(new IDSoggetto(soggetto.getTipo(), soggetto.getNome()));
- }
-
- if(listIDSoggetti.size()<=0){
- if(filtroRicerca!=null)
- throw new DriverConfigurazioneNotFound("Soggetti non trovati che rispettano il filtro di ricerca selezionato: "+filtroRicerca.toString());
- else
- throw new DriverConfigurazioneNotFound("Soggetti non trovati");
- }
-
- return listIDSoggetti;
- }
-
-
-
-
-
-
-
-
- // PORTA DELEGATA
- private IDPortaDelegata convertToIDPortaDelegata(PortaDelegata pd) throws DriverConfigurazioneException{
-
- IDPortaDelegata idPD = new IDPortaDelegata();
- idPD.setNome(pd.getNome());
-
- IdentificativiFruizione idFruizione = new IdentificativiFruizione();
-
- IDSoggetto soggettoFruitore = new IDSoggetto(pd.getTipoSoggettoProprietario(), pd.getNomeSoggettoProprietario());
- idFruizione.setSoggettoFruitore(soggettoFruitore);
-
- try{
- IDServizio idServizio = IDServizioUtils.buildIDServizio(pd.getServizio().getTipo(), pd.getServizio().getNome(),
- new IDSoggetto(pd.getSoggettoErogatore().getTipo(),pd.getSoggettoErogatore().getNome()),
- pd.getServizio().getVersione());
- if(pd.getAzione()!=null && pd.getAzione().getNome()!=null && !"".equals(pd.getAzione().getNome())){
- idServizio.setAzione(pd.getAzione().getNome());
- }
- idFruizione.setIdServizio(idServizio);
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
-
- idPD.setIdentificativiFruizione(idFruizione);
-
- return idPD;
- }
-
- @Override
- public IDPortaDelegata getIDPortaDelegata(String nome) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- if(nome == null)
- throw new DriverConfigurazioneException("[getIDPortaDelegata] Parametro Non Validi");
- refreshConfigurazioneXML();
- for(int i=0;i<this.openspcoop.sizeSoggettoList();i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- // ricerca PD
- for(int j=0; j<soggetto.sizePortaDelegataList() ; j++){
- PortaDelegata pd = soggetto.getPortaDelegata(j);
- if(nome.equals(pd.getNome())){
- pd.setTipoSoggettoProprietario(soggetto.getTipo());
- pd.setNomeSoggettoProprietario(soggetto.getNome());
- return convertToIDPortaDelegata(pd);
- }
- }
- }
- throw new DriverConfigurazioneNotFound("Porta Delegata ["+nome+"] non esistente");
- }
-
- @Override
- public PortaDelegata getPortaDelegata(IDPortaDelegata idPD) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
- if(idPD == null)
- throw new DriverConfigurazioneException("[getPortaDelegata] Parametro idPD Non Validi");
- String nome = idPD.getNome();
- if( (nome == null) )
- throw new DriverConfigurazioneException("[getPortaDelegata] Parametri non Validi");
- // Il getIDPortaDelegata effettua il REFRESH XML
- IDPortaDelegata id = this.getIDPortaDelegata(nome);
- IDSoggetto soggettoProprietario = id.getIdentificativiFruizione().getSoggettoFruitore();
-
- // Il getSoggetto effettua il REFRESH XML
- Soggetto soggetto = null;
- try{
- soggetto = getSoggetto(soggettoProprietario);
- }catch(Exception e){
- // ignore
- }
- if(soggetto == null)
- throw new DriverConfigurazioneException("[getPortaDelegata] Soggetto fruitore ["+soggettoProprietario.getTipo()+"/"+soggettoProprietario.getNome()+"] non esistente");
- // ricerca PD
- for(int j=0; j<soggetto.sizePortaDelegataList() ; j++){
- PortaDelegata pd = soggetto.getPortaDelegata(j);
- if(nome.equals(pd.getNome())){
- pd.setTipoSoggettoProprietario(soggetto.getTipo());
- pd.setNomeSoggettoProprietario(soggetto.getNome());
- return pd;
- }
- }
- throw new DriverConfigurazioneNotFound("PortaDelegata ["+nome+"] non esistente");
- }
- @Override
- public List<IDPortaDelegata> getAllIdPorteDelegate(
- FiltroRicercaPorteDelegate filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- List<IDPortaDelegata> listIDPorteDelegate = new ArrayList<IDPortaDelegata>();
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- for (int j = 0; j < soggetto.sizePortaDelegataList(); j++) {
- PortaDelegata pd = soggetto.getPortaDelegata(j);
-
- String id = pd.getNome();
-
- if(filtroRicerca!=null){
-
- boolean porteDelegatePerAzioni = false;
- if(filtroRicerca.getNomePortaDelegante()!=null) {
- porteDelegatePerAzioni = true;
- }
-
- // Filtro By Data
- if(filtroRicerca.getMinDate()!=null){
- if(pd.getOraRegistrazione()==null){
- this.log.debug("[getAllIdPorteDelegate](FiltroByMinDate) PortaDelegata ["+id+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(pd.getOraRegistrazione().before(filtroRicerca.getMinDate())){
- continue;
- }
- }
- if(filtroRicerca.getMaxDate()!=null){
- if(soggetto.getOraRegistrazione()==null){
- this.log.debug("[getAllIdPorteDelegate](FiltroByMaxDate) PortaDelegata ["+id+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(soggetto.getOraRegistrazione().after(filtroRicerca.getMaxDate())){
- continue;
- }
- }
- // Filtro By Tipo e Nome
- if(filtroRicerca.getTipoSoggetto()!=null){
- if(soggetto.getTipo().equals(filtroRicerca.getTipoSoggetto()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNomeSoggetto()!=null){
- if(soggetto.getNome().equals(filtroRicerca.getNomeSoggetto()) == false){
- continue;
- }
- }
- // Filtro By Tipo e Nome soggetto erogatore
- if(filtroRicerca.getTipoSoggettoErogatore()!=null){
- if(pd.getSoggettoErogatore().getTipo().equals(filtroRicerca.getTipoSoggettoErogatore()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNomeSoggettoErogatore()!=null){
- if(pd.getSoggettoErogatore().getNome()==null){
- continue;
- }
- if(pd.getSoggettoErogatore().getNome().equals(filtroRicerca.getNomeSoggettoErogatore()) == false){
- continue;
- }
- }
- // Filtro By Tipo e Nome servizio
- if(filtroRicerca.getTipoServizio()!=null){
- if(pd.getServizio().getTipo().equals(filtroRicerca.getTipoServizio()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNomeServizio()!=null){
- if(pd.getServizio().getNome()==null){
- continue;
- }
- if(pd.getServizio().getNome().equals(filtroRicerca.getNomeServizio()) == false){
- continue;
- }
- }
- if(filtroRicerca.getVersioneServizio()!=null){
- if(pd.getServizio().getVersione()==null){
- continue;
- }
- if(pd.getServizio().getVersione().intValue() != filtroRicerca.getVersioneServizio().intValue()){
- continue;
- }
- }
- // Filtro By azione
- if(!porteDelegatePerAzioni && filtroRicerca.getAzione()!=null){
- if(pd.getAzione().getNome()==null){
- continue;
- }
- if(pd.getAzione().getNome().equals(filtroRicerca.getAzione()) == false){
- continue;
- }
- }
- // Filtro By Ruoli
- if(filtroRicerca.getIdRuolo()!=null && filtroRicerca.getIdRuolo().getNome()!=null){
- if(pd.getRuoli()==null){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.getRuoli().sizeRuoloList(); z++) {
- if(filtroRicerca.getIdRuolo().getNome().equals(pd.getRuoli().getRuolo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Scope
- if(filtroRicerca.getIdScope()!=null && filtroRicerca.getIdScope().getNome()!=null){
- if(pd.getScope()==null){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.getScope().sizeScopeList(); z++) {
- if(filtroRicerca.getIdScope().getNome().equals(pd.getScope().getScope(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Autorizzazione Servizio Applicativo
- if(filtroRicerca.getNomeServizioApplicativo()!=null) {
- if(pd.sizeServizioApplicativoList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.sizeServizioApplicativoList(); z++) {
- if(filtroRicerca.getNomeServizioApplicativo().equals(pd.getServizioApplicativo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Autorizzazione Token Servizio Applicativo
- if(filtroRicerca.getNomeServizioApplicativoToken()!=null) {
- if(pd.getAutorizzazioneToken()==null || pd.getAutorizzazioneToken().getServiziApplicativi()==null ||
- pd.getAutorizzazioneToken().getServiziApplicativi().sizeServizioApplicativoList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.getAutorizzazioneToken().getServiziApplicativi().sizeServizioApplicativoList(); z++) {
- if(filtroRicerca.getNomeServizioApplicativoToken().equals(pd.getAutorizzazioneToken().getServiziApplicativi().getServizioApplicativo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Ruoli Token
- if(filtroRicerca.getIdRuoloToken()!=null && filtroRicerca.getIdRuoloToken().getNome()!=null){
- if(pd.getAutorizzazioneToken()==null || pd.getAutorizzazioneToken().getRuoli()==null ||
- pd.getAutorizzazioneToken().getRuoli().sizeRuoloList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.getAutorizzazioneToken().getRuoli().sizeRuoloList(); z++) {
- if(filtroRicerca.getIdRuoloToken().getNome().equals(pd.getAutorizzazioneToken().getRuoli().getRuolo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Applicabilita Trasformazione Servizio Applicativo
- if(filtroRicerca.getNomeServizioApplicativoRiferitoApplicabilitaTrasformazione()!=null) {
- if(pd.getTrasformazioni()==null || pd.getTrasformazioni().sizeRegolaList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.getTrasformazioni().sizeRegolaList(); z++) {
- TrasformazioneRegola regola = pd.getTrasformazioni().getRegola(z);
- if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeServizioApplicativoList()>0) {
- for (TrasformazioneRegolaApplicabilitaServizioApplicativo tSA : regola.getApplicabilita().getServizioApplicativoList()) {
- if(filtroRicerca.getNomeServizioApplicativoRiferitoApplicabilitaTrasformazione().equals(tSA.getNome())){
- contains = true;
- break;
- }
- }
- if(contains){
- break;
- }
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Applicabilita Trasformazione Servizio Applicativo Token
- if(filtroRicerca.getNomeServizioApplicativoTokenRiferitoApplicabilitaTrasformazione()!=null) {
- if(pd.getTrasformazioni()==null || pd.getTrasformazioni().sizeRegolaList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pd.getTrasformazioni().sizeRegolaList(); z++) {
- TrasformazioneRegola regola = pd.getTrasformazioni().getRegola(z);
- if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeServizioApplicativoList()>0) {
- for (TrasformazioneRegolaApplicabilitaServizioApplicativo tSA : regola.getApplicabilita().getServizioApplicativoList()) {
- if(filtroRicerca.getNomeServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().equals(tSA.getNome())){
- contains = true;
- break;
- }
- }
- if(contains){
- break;
- }
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Stato
- if(filtroRicerca.getStato()!=null){
- if(pd.getStato()==null){
- // equivale a abilitato
- if(!StatoFunzionalita.ABILITATO.equals(filtroRicerca.getStato())){
- continue;
- }
- }
- else if(!pd.getStato().equals(filtroRicerca.getStato())){
- continue;
- }
- }
- // Filtro By NomePortaDelegante
- if(porteDelegatePerAzioni) {
- if(pd.getAzione()==null || pd.getAzione().getNomePortaDelegante()==null){
- continue;
- }
- else if(!pd.getAzione().getNomePortaDelegante().equals(filtroRicerca.getNomePortaDelegante())){
- continue;
- }
- if(filtroRicerca.getAzione()!=null) {
- if(pd.getAzione().getAzioneDelegataList().size()<=0){
- continue;
- }
- if(pd.getAzione().getAzioneDelegataList().contains(filtroRicerca.getAzione()) == false){
- continue;
- }
- }
- }
- }
-
- pd.setTipoSoggettoProprietario(soggetto.getTipo());
- pd.setNomeSoggettoProprietario(soggetto.getNome());
- listIDPorteDelegate.add(this.convertToIDPortaDelegata(pd));
- }
- }
-
- if(listIDPorteDelegate.size()<=0){
- if(filtroRicerca!=null)
- throw new DriverConfigurazioneNotFound("PorteDelegate non trovate che rispettano il filtro di ricerca selezionato: "+filtroRicerca.toString());
- else
- throw new DriverConfigurazioneNotFound("PorteDelegate non trovate");
- }
-
- return listIDPorteDelegate;
- }
-
-
-
-
-
-
-
- // PORTA APPLICATIVA
-
- private IDPortaApplicativa convertToIDPortaApplicativa(PortaApplicativa pa) throws DriverConfigurazioneException{
-
- IDPortaApplicativa idPA = new IDPortaApplicativa();
- idPA.setNome(pa.getNome());
-
- IdentificativiErogazione idErogazione = new IdentificativiErogazione();
-
- if(pa.getSoggettoVirtuale()!=null){
- IDSoggetto soggettoVirtuale = new IDSoggetto(pa.getSoggettoVirtuale().getTipo(),pa.getSoggettoVirtuale().getNome());
- idErogazione.setSoggettoVirtuale(soggettoVirtuale);
- }
-
- try{
- IDServizio idServizio = IDServizioUtils.buildIDServizio(pa.getServizio().getTipo(), pa.getServizio().getNome(),
- new IDSoggetto(pa.getTipoSoggettoProprietario(), pa.getNomeSoggettoProprietario()),
- pa.getServizio().getVersione());
- if(pa.getAzione()!=null && pa.getAzione().getNome()!=null && !"".equals(pa.getAzione().getNome())){
- idServizio.setAzione(pa.getAzione().getNome());
- }
- idErogazione.setIdServizio(idServizio);
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
-
- idPA.setIdentificativiErogazione(idErogazione);
-
- return idPA;
- }
-
- @Override
- public IDPortaApplicativa getIDPortaApplicativa(String nome) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- if(nome == null)
- throw new DriverConfigurazioneException("[getIDPortaApplicativa] Parametro Non Validi");
- refreshConfigurazioneXML();
- for(int i=0;i<this.openspcoop.sizeSoggettoList();i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- // ricerca PA
- for(int j=0; j<soggetto.sizePortaApplicativaList() ; j++){
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
- if(nome.equals(pa.getNome())){
- pa.setTipoSoggettoProprietario(soggetto.getTipo());
- pa.setNomeSoggettoProprietario(soggetto.getNome());
- return convertToIDPortaApplicativa(pa);
- }
- }
- }
- throw new DriverConfigurazioneNotFound("Porta Applicativa ["+nome+"] non esistente");
- }
-
- @Override
- public PortaApplicativa getPortaApplicativa(IDPortaApplicativa idPA) throws DriverConfigurazioneException,DriverConfigurazioneNotFound {
- if(idPA == null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Parametro idPA Non Validi");
- String nome = idPA.getNome();
- if( (nome == null) )
- throw new DriverConfigurazioneException("[getPortaApplicativa] Parametri non Validi");
- // Il getIDPortaApplicativa effettua il REFRESH XML
- IDPortaApplicativa id = this.getIDPortaApplicativa(nome);
- IDSoggetto soggettoProprietario = id.getIdentificativiErogazione().getIdServizio().getSoggettoErogatore();
-
- // Il getSoggetto effettua il REFRESH XML
- Soggetto soggetto = null;
- try{
- soggetto = getSoggetto(soggettoProprietario);
- }catch(Exception e){
- // ignore
- }
- if(soggetto == null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Soggetto fruitore ["+soggettoProprietario.getTipo()+"/"+soggettoProprietario.getNome()+"] non esistente");
- // ricerca PA
- for(int j=0; j<soggetto.sizePortaApplicativaList() ; j++){
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
- if(nome.equals(pa.getNome())){
- pa.setTipoSoggettoProprietario(soggetto.getTipo());
- pa.setNomeSoggettoProprietario(soggetto.getNome());
- return pa;
- }
- }
- throw new DriverConfigurazioneNotFound("PortaApplicativa ["+nome+"] non esistente");
- }
-
- @Override
- public List<PortaApplicativa> getPorteApplicative(IDServizio idServizio, boolean ricercaPuntuale) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- return this.getEnginePorteApplicative_engine(idServizio, null, ricercaPuntuale);
- }
-
- @Override
- public List<PortaApplicativa> getPorteApplicativeVirtuali(IDSoggetto soggettoVirtuale,IDServizio idServizio, boolean ricercaPuntuale) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- return this.getEnginePorteApplicative_engine(idServizio, soggettoVirtuale, ricercaPuntuale);
- }
-
- private List<PortaApplicativa> getEnginePorteApplicative_engine(IDServizio service,IDSoggetto soggettoVirtuale,boolean ricercaPuntuale) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- if(service == null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Parametro idServizio non definito");
-
- IDSoggetto soggettoErogatore = service.getSoggettoErogatore();
- if(soggettoErogatore == null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Parametri non validi (Soggetto Erogatore is null)");
-
- String servizio = service.getNome();
- String tipoServizio = service.getTipo();
- Integer versioneServizio = service.getVersione();
- String azione = service.getAzione();
- if((servizio==null)||(tipoServizio==null)||versioneServizio==null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Parametri (Servizio) non validi");
- // Il getSoggetto effettua il REFRESH XML
- Soggetto soggetto = null;
- try{
- soggetto = getSoggetto(soggettoErogatore);
- }catch(DriverConfigurazioneNotFound dn){
- throw new DriverConfigurazioneNotFound("[getPortaApplicativa] "+dn.getMessage(),dn);
- }
- catch(Exception e){}
- if(soggetto == null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Soggetto erogatore ["+soggettoErogatore.getTipo()+"/"+soggettoErogatore.getNome()+"] non esistente");
- if(soggettoVirtuale!=null){
- if(soggettoVirtuale.getTipo()==null || soggettoVirtuale.getNome()==null)
- throw new DriverConfigurazioneException("[getPortaApplicativa] Parametri (Soggetto Virtuale) non validi");
- }
-
- // ricerca PA
- List<PortaApplicativa> paSenzaAzioneList = new ArrayList<PortaApplicativa>();
- List<PortaApplicativa> paList = new ArrayList<PortaApplicativa>();
- for(int j=0; j<soggetto.sizePortaApplicativaList() ; j++){
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
- boolean paMatchaCriteriDiRicerca = false;
- if(soggettoVirtuale==null){
- paMatchaCriteriDiRicerca = servizio.equals(pa.getServizio().getNome()) &&
- tipoServizio.equals(pa.getServizio().getTipo()) &&
- versioneServizio.intValue() == pa.getServizio().getVersione().intValue();
- }else{
- paMatchaCriteriDiRicerca = servizio.equals(pa.getServizio().getNome()) &&
- tipoServizio.equals(pa.getServizio().getTipo()) &&
- versioneServizio.intValue() == pa.getServizio().getVersione().intValue() &&
- pa.getSoggettoVirtuale()!=null &&
- soggettoVirtuale.getTipo().equals(pa.getSoggettoVirtuale().getTipo()) &&
- soggettoVirtuale.getNome().equals(pa.getSoggettoVirtuale().getNome());
- }
- if(paMatchaCriteriDiRicerca) {
- if(pa.getAzione()!=null && PortaApplicativaAzioneIdentificazione.DELEGATED_BY.equals(pa.getAzione().getIdentificazione())) {
- paMatchaCriteriDiRicerca = false;
- }
- }
-
-
- if(paMatchaCriteriDiRicerca){
- // ricerca di una porta applicativa senza azione
- if(azione==null){
- if(pa.getAzione() == null){
- pa.setTipoSoggettoProprietario(soggetto.getTipo());
- pa.setNomeSoggettoProprietario(soggetto.getNome());
- paList.add(pa);
- }
- }
- // ricerca di una porta applicativa con azione
- else{
- if(pa.getAzione() == null){
- PortaApplicativa paSenzaAzione = pa; // potenziale porta applicativa che mappa solo il servizio (se non esiste)
- paSenzaAzione.setTipoSoggettoProprietario(soggetto.getTipo());
- paSenzaAzione.setNomeSoggettoProprietario(soggetto.getNome());
- paSenzaAzioneList.add(paSenzaAzione);
- }
- else if(azione.equals(pa.getAzione().getNome())){
- pa.setTipoSoggettoProprietario(soggetto.getTipo());
- pa.setNomeSoggettoProprietario(soggetto.getNome());
- paList.add(pa);
- }
- }
- }
- }
-
- if(paList.size()>0){
- return paList;
- }
-
- if(paSenzaAzioneList.size()>0 && ricercaPuntuale==false)
- return paSenzaAzioneList;
- throw new DriverConfigurazioneNotFound("PorteApplicative non esistenti");
- }
-
- @Override
- public Map<IDSoggetto,PortaApplicativa> getPorteApplicativeSoggettiVirtuali(IDServizio idServizio)throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- if(idServizio==null)
- throw new DriverConfigurazioneException("[getPortaApplicativa_SoggettiVirtuali] Parametro idServizio non valido");
- if(idServizio.getSoggettoErogatore()==null)
- throw new DriverConfigurazioneException("[getPortaApplicativa_SoggettiVirtuali] Parametro Soggetto Erogatore non valido");
- refreshConfigurazioneXML();
- Map<IDSoggetto,PortaApplicativa> paConSoggetti = new HashMap<IDSoggetto,PortaApplicativa>();
- IDSoggetto soggettoVirtuale = idServizio.getSoggettoErogatore();
- String servizio = idServizio.getNome();
- String tipoServizio = idServizio.getTipo();
- Integer versioneServizio = idServizio.getVersione();
- String azione = idServizio.getAzione();
- if((servizio==null)||(tipoServizio==null)||versioneServizio==null)
- throw new DriverConfigurazioneException("[getPortaApplicativa_SoggettiVirtuali] Parametri (Servizio) Non Validi");
- // Ricerca soggetti che possiedono porte applicative.... che hanno un soggetto virtuale
- for(int i=0; i<this.openspcoop.sizeSoggettoList();i++){
- Soggetto aSoggetto = this.openspcoop.getSoggetto(i);
- PortaApplicativa paSenzaAzione = null;
- // Ricerca tra le PA del soggetto...
- for(int j=0; j<aSoggetto.sizePortaApplicativaList() ; j++){
- PortaApplicativa pa = aSoggetto.getPortaApplicativa(j);
- if( pa.getSoggettoVirtuale()!= null ){
- if( (pa.getSoggettoVirtuale().getTipo().equals(soggettoVirtuale.getTipo())) &&
- (pa.getSoggettoVirtuale().getNome().equals(soggettoVirtuale.getNome())) ){
- // Porta applicativa con tale soggetto virtuale... guardo se possiede il servizio e l'azione della busta
- if(servizio.equals(pa.getServizio().getNome()) &&
- tipoServizio.equals(pa.getServizio().getTipo()) &&
- versioneServizio.intValue() == pa.getServizio().getVersione().intValue()){
- // ricerca di una porta applicativa senza azione
- if(azione==null){
- if(pa.getAzione() == null){
- for(int k=0; k<pa.sizeServizioApplicativoList(); k++){
- paConSoggetti.put(new IDSoggetto(aSoggetto.getTipo(),aSoggetto.getNome()),
- pa);
- }
- break; // ricerca in questo soggetto terminata.
- }
- }
- // ricerca di una porta applicativa con azione
- else{
- if(pa.getAzione() == null){
- paSenzaAzione = pa; // potenziale porta applicativa che mappa solo il servizio (se non esiste)
- continue;
- }
- if(azione.equals(pa.getAzione().getNome())){
- for(int k=0; k<pa.sizeServizioApplicativoList(); k++){
- paConSoggetti.put(new IDSoggetto(aSoggetto.getTipo(),aSoggetto.getNome()),
- pa);
- paSenzaAzione = null;
- }
- break; // ricerca in questo soggetto terminata.
- }
- }
- }
- }
- }
- }// Fine ricerca tra le PA del soggetto
- if(paSenzaAzione!=null){
- // Trovata PA con solo match per azione
- paConSoggetti.put(new IDSoggetto(aSoggetto.getTipo(),aSoggetto.getNome()),
- paSenzaAzione);
- }
- } // fine Ricerca
- if(paConSoggetti.size() == 0)
- throw new DriverConfigurazioneNotFound("[getPortaApplicativa_SoggettiVirtuali] Porte applicative di soggetti virtuali non esistenti.");
-
- return paConSoggetti;
- }
- @Override
- public List<IDPortaApplicativa> getAllIdPorteApplicative(
- FiltroRicercaPorteApplicative filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- List<IDPortaApplicativa> listIDPorteApplicative = new ArrayList<IDPortaApplicativa>();
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- for (int j = 0; j < soggetto.sizePortaApplicativaList(); j++) {
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
-
- String id = pa.getNome();
-
- if(filtroRicerca!=null){
-
- boolean porteDelegatePerAzioni = false;
- if(filtroRicerca.getNomePortaDelegante()!=null) {
- porteDelegatePerAzioni = true;
- }
-
- // Filtro By Data
- if(filtroRicerca.getMinDate()!=null){
- if(pa.getOraRegistrazione()==null){
- this.log.debug("[getAllIdPorteApplicative](FiltroByMinDate) PortaApplicativa ["+id+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(pa.getOraRegistrazione().before(filtroRicerca.getMinDate())){
- continue;
- }
- }
- if(filtroRicerca.getMaxDate()!=null){
- if(soggetto.getOraRegistrazione()==null){
- this.log.debug("[getAllIdPorteApplicative](FiltroByMaxDate) PortaApplicativa ["+id+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(soggetto.getOraRegistrazione().after(filtroRicerca.getMaxDate())){
- continue;
- }
- }
- // Filtro By Tipo e Nome
- if(filtroRicerca.getTipoSoggetto()!=null){
- if(soggetto.getTipo().equals(filtroRicerca.getTipoSoggetto()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNomeSoggetto()!=null){
- if(soggetto.getNome().equals(filtroRicerca.getNomeSoggetto()) == false){
- continue;
- }
- }
- // Filtro By Tipo e Nome servizio
- if(filtroRicerca.getTipoServizio()!=null){
- if(pa.getServizio().getTipo().equals(filtroRicerca.getTipoServizio()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNomeServizio()!=null){
- if(pa.getServizio().getNome()==null){
- continue;
- }
- if(pa.getServizio().getNome().equals(filtroRicerca.getNomeServizio()) == false){
- continue;
- }
- }
- if(filtroRicerca.getVersioneServizio()!=null){
- if(pa.getServizio().getVersione()==null){
- continue;
- }
- if(pa.getServizio().getVersione().intValue() != filtroRicerca.getVersioneServizio().intValue()){
- continue;
- }
- }
- // Filtro By azione
- if(!porteDelegatePerAzioni && filtroRicerca.getAzione()!=null){
- if(pa.getAzione().getNome()==null){
- continue;
- }
- if(pa.getAzione().getNome().equals(filtroRicerca.getAzione()) == false){
- continue;
- }
- }
- // Filtro By Ruoli
- if(filtroRicerca.getIdRuolo()!=null && filtroRicerca.getIdRuolo().getNome()!=null){
- if(pa.getRuoli()==null){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getRuoli().sizeRuoloList(); z++) {
- if(filtroRicerca.getIdRuolo().getNome().equals(pa.getRuoli().getRuolo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Scope
- if(filtroRicerca.getIdScope()!=null && filtroRicerca.getIdScope().getNome()!=null){
- if(pa.getScope()==null){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getScope().sizeScopeList(); z++) {
- if(filtroRicerca.getIdScope().getNome().equals(pa.getScope().getScope(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By SoggettoAutorizzato
- if(filtroRicerca.getIdSoggettoAutorizzato()!=null &&
- (filtroRicerca.getIdSoggettoAutorizzato().getTipo()!=null ||
- filtroRicerca.getIdSoggettoAutorizzato().getNome()!=null)){
- if(pa.getSoggetti()==null || pa.getSoggetti().sizeSoggettoList()<=0) {
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getSoggetti().sizeSoggettoList(); z++) {
- if(filtroRicerca.getIdSoggettoAutorizzato().getTipo()!=null &&
- !filtroRicerca.getIdSoggettoAutorizzato().getTipo().equals(pa.getSoggetti().getSoggetto(z).getTipo())){
- continue;
- }
- if(filtroRicerca.getIdSoggettoAutorizzato().getNome()!=null &&
- !filtroRicerca.getIdSoggettoAutorizzato().getNome().equals(pa.getSoggetti().getSoggetto(z).getNome())){
- continue;
- }
- contains = true;
- break;
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By ServizioApplicativoAutorizzato (ricerca puntuale)
- if(filtroRicerca.getIdServizioApplicativoAutorizzato()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzato().getNome()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzato().getIdSoggettoProprietario()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzato().getIdSoggettoProprietario().getTipo()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzato().getIdSoggettoProprietario().getNome()!=null
- ){
- if(pa.getServiziApplicativiAutorizzati()==null || pa.getServiziApplicativiAutorizzati().sizeServizioApplicativoList()<=0) {
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getServiziApplicativiAutorizzati().sizeServizioApplicativoList(); z++) {
- if(!filtroRicerca.getIdServizioApplicativoAutorizzato().getNome().equals(pa.getServiziApplicativiAutorizzati().getServizioApplicativo(z).getNome())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoAutorizzato().getIdSoggettoProprietario().getTipo().equals(pa.getServiziApplicativiAutorizzati().getServizioApplicativo(z).getTipoSoggettoProprietario())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoAutorizzato().getIdSoggettoProprietario().getNome().equals(pa.getServiziApplicativiAutorizzati().getServizioApplicativo(z).getNomeSoggettoProprietario())){
- continue;
- }
- contains = true;
- break;
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By SoggettoAutorizzato
- if(filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione()!=null &&
- (filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione().getTipo()!=null ||
- filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione().getNome()!=null)){
- if(pa.getTrasformazioni()==null || pa.getTrasformazioni().sizeRegolaList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getTrasformazioni().sizeRegolaList(); z++) {
- TrasformazioneRegola regola = pa.getTrasformazioni().getRegola(z);
- if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeSoggettoList()>0) {
- for (TrasformazioneRegolaApplicabilitaSoggetto tSoggetto : regola.getApplicabilita().getSoggettoList()) {
- if(filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione().getTipo()!=null &&
- !filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione().getTipo().equals(tSoggetto.getTipo())){
- continue;
- }
- if(filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione().getNome()!=null &&
- !filtroRicerca.getIdSoggettoRiferitoApplicabilitaTrasformazione().getNome().equals(tSoggetto.getNome())){
- continue;
- }
- contains = true;
- break;
- }
- if(contains){
- break;
- }
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By ServizioApplicativoAutorizzatoToken (ricerca puntuale)
- if(filtroRicerca.getIdServizioApplicativoAutorizzatoToken()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getNome()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getIdSoggettoProprietario()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getIdSoggettoProprietario().getTipo()!=null &&
- filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getIdSoggettoProprietario().getNome()!=null
- ){
- if(pa.getAutorizzazioneToken()==null || pa.getAutorizzazioneToken().getServiziApplicativi()== null || pa.getAutorizzazioneToken().getServiziApplicativi().sizeServizioApplicativoList()<=0) {
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getAutorizzazioneToken().getServiziApplicativi().sizeServizioApplicativoList(); z++) {
- if(!filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getNome().equals(pa.getAutorizzazioneToken().getServiziApplicativi().getServizioApplicativo(z).getNome())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getIdSoggettoProprietario().getTipo().equals(pa.getAutorizzazioneToken().getServiziApplicativi().getServizioApplicativo(z).getTipoSoggettoProprietario())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoAutorizzatoToken().getIdSoggettoProprietario().getNome().equals(pa.getAutorizzazioneToken().getServiziApplicativi().getServizioApplicativo(z).getNomeSoggettoProprietario())){
- continue;
- }
- contains = true;
- break;
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Ruoli Token
- if(filtroRicerca.getIdRuoloToken()!=null && filtroRicerca.getIdRuoloToken().getNome()!=null){
- if(pa.getAutorizzazioneToken()==null || pa.getAutorizzazioneToken().getRuoli()== null || pa.getAutorizzazioneToken().getRuoli().sizeRuoloList()<=0) {
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getAutorizzazioneToken().getRuoli().sizeRuoloList(); z++) {
- if(filtroRicerca.getIdRuoloToken().getNome().equals(pa.getAutorizzazioneToken().getRuoli().getRuolo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Applicabilita Trasformazione Servizio Applicativo
- if(filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione()!=null &&
- filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getNome()!=null &&
- filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario()!=null &&
- filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getTipo()!=null &&
- filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getNome()!=null
- ){
- if(pa.getTrasformazioni()==null || pa.getTrasformazioni().sizeRegolaList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getTrasformazioni().sizeRegolaList(); z++) {
- TrasformazioneRegola regola = pa.getTrasformazioni().getRegola(z);
- if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeServizioApplicativoList()>0) {
- for (TrasformazioneRegolaApplicabilitaServizioApplicativo tSA : regola.getApplicabilita().getServizioApplicativoList()) {
- if(!filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getNome().equals(tSA.getNome())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getTipo().equals(tSA.getTipoSoggettoProprietario())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getNome().equals(tSA.getNomeSoggettoProprietario())){
- continue;
- }
- contains = true;
- break;
- }
- if(contains){
- break;
- }
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Applicabilita Trasformazione Servizio Applicativo Token
- if(filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione()!=null &&
- filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getNome()!=null &&
- filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario()!=null &&
- filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getTipo()!=null &&
- filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getNome()!=null
- ){
- if(pa.getTrasformazioni()==null || pa.getTrasformazioni().sizeRegolaList()<=0){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < pa.getTrasformazioni().sizeRegolaList(); z++) {
- TrasformazioneRegola regola = pa.getTrasformazioni().getRegola(z);
- if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeServizioApplicativoList()>0) {
- for (TrasformazioneRegolaApplicabilitaServizioApplicativo tSA : regola.getApplicabilita().getServizioApplicativoList()) {
- if(!filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getNome().equals(tSA.getNome())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getTipo().equals(tSA.getTipoSoggettoProprietario())){
- continue;
- }
- if(!filtroRicerca.getIdServizioApplicativoTokenRiferitoApplicabilitaTrasformazione().getIdSoggettoProprietario().getNome().equals(tSA.getNomeSoggettoProprietario())){
- continue;
- }
- contains = true;
- break;
- }
- if(contains){
- break;
- }
- }
- }
- if(!contains){
- continue;
- }
- }
- // Filtro By Stato
- if(filtroRicerca.getStato()!=null){
- if(pa.getStato()==null){
- // equivale a abilitato
- if(!StatoFunzionalita.ABILITATO.equals(filtroRicerca.getStato())){
- continue;
- }
- }
- else if(!pa.getStato().equals(filtroRicerca.getStato())){
- continue;
- }
- }
- // Filtro By NomePortaDelegante
- if(porteDelegatePerAzioni) {
- if(pa.getAzione()==null || pa.getAzione().getNomePortaDelegante()==null){
- continue;
- }
- else if(!pa.getAzione().getNomePortaDelegante().equals(filtroRicerca.getNomePortaDelegante())){
- continue;
- }
- if(filtroRicerca.getAzione()!=null) {
- if(pa.getAzione().getAzioneDelegataList().size()<=0){
- continue;
- }
- if(pa.getAzione().getAzioneDelegataList().contains(filtroRicerca.getAzione()) == false){
- continue;
- }
- }
- }
- }
-
- pa.setTipoSoggettoProprietario(soggetto.getTipo());
- pa.setNomeSoggettoProprietario(soggetto.getNome());
- listIDPorteApplicative.add(this.convertToIDPortaApplicativa(pa));
-
- }
- }
-
- if(listIDPorteApplicative.size()<=0){
- if(filtroRicerca!=null)
- throw new DriverConfigurazioneNotFound("PorteApplicative non trovate che rispettano il filtro di ricerca selezionato: "+filtroRicerca.toString());
- else
- throw new DriverConfigurazioneNotFound("PorteApplicative non trovate");
- }
-
- return listIDPorteApplicative;
- }
-
-
-
-
-
-
-
- // SERVIZIO APPLICATIVO
-
- @Override
- public ServizioApplicativo getServizioApplicativo(IDServizioApplicativo idServizioApplicativo) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- if(idServizioApplicativo==null){
- throw new DriverConfigurazioneException("IDServizioApplicativo non definito");
- }
- if(idServizioApplicativo.getIdSoggettoProprietario()==null){
- throw new DriverConfigurazioneException("IDServizioApplicativo.idSoggettoProprietario non definito");
- }
- if(idServizioApplicativo.getNome()==null){
- throw new DriverConfigurazioneException("IDServizioApplicativo.nome non definito");
- }
-
- Soggetto soggettoProprietario = this.getSoggetto(idServizioApplicativo.getIdSoggettoProprietario());
- for(int j=0; j<soggettoProprietario.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoProprietario.getServizioApplicativo(j);
- if(idServizioApplicativo.getNome().equals(sa.getNome())){
- sa.setTipoSoggettoProprietario(soggettoProprietario.getTipo());
- sa.setNomeSoggettoProprietario(soggettoProprietario.getNome());
- return sa;
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo non trovato");
- }
-
-
- @Override
- public ServizioApplicativo getServizioApplicativoByCredenzialiBasic(String aUser,String aPassword, CryptConfig config) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- if(aUser==null){
- throw new DriverConfigurazioneException("Username non definito");
- }
- if(aPassword==null){
- throw new DriverConfigurazioneException("Password non definita");
- }
-
- boolean testInChiaro = false;
- ICrypt crypt = null;
- if(config==null || config.isBackwardCompatibility()) {
- testInChiaro = true;
- }
- if(config!=null) {
- try {
- crypt = CryptFactory.getCrypt(this.log, config);
- }catch(Exception e) {
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
- }
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggettoSearch = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggettoSearch.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoSearch.getServizioApplicativo(j);
- if(sa.getInvocazionePorta()!=null){
- for(int z=0;z<sa.getInvocazionePorta().sizeCredenzialiList();z++){
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo()!=null &&
- CostantiConfigurazione.CREDENZIALE_BASIC.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo())){
- if( (aUser.equals(sa.getInvocazionePorta().getCredenziali(z).getUser())) ){
-
- String passwordSaved = sa.getInvocazionePorta().getCredenziali(z).getPassword();
-
- boolean found = false;
- if(testInChiaro) {
- found = aPassword.equals(passwordSaved);
- }
- if(!found && crypt!=null) {
- found = crypt.check(aPassword, passwordSaved);
- }
-
- if( found ) {
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }
- }
- }
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo cercato con credenziali basic non trovato");
- }
-
- @Override
- public ServizioApplicativo getServizioApplicativoByCredenzialiApiKey(String aUser,String aPassword, boolean appId, CryptConfig config) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- if(aUser==null){
- throw new DriverConfigurazioneException("Username non definito");
- }
- if(aPassword==null){
- throw new DriverConfigurazioneException("Password non definita");
- }
-
- boolean testInChiaro = false;
- ICrypt crypt = null;
- if(config!=null) {
- try {
- crypt = CryptFactory.getCrypt(this.log, config);
- }catch(Exception e) {
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
- }
- else {
- testInChiaro = true;
- }
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggettoSearch = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggettoSearch.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoSearch.getServizioApplicativo(j);
- if(sa.getInvocazionePorta()!=null){
- for(int z=0;z<sa.getInvocazionePorta().sizeCredenzialiList();z++){
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo()!=null &&
- CostantiConfigurazione.CREDENZIALE_APIKEY.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo())){
- if( (aUser.equals(sa.getInvocazionePorta().getCredenziali(z).getUser())) ){
-
- if(appId) {
- if(!sa.getInvocazionePorta().getCredenziali(z).isAppId()) {
- continue;
- }
- }
- else {
- if(sa.getInvocazionePorta().getCredenziali(z).isAppId()) {
- continue;
- }
- }
-
- String passwordSaved = sa.getInvocazionePorta().getCredenziali(z).getPassword();
-
- boolean found = false;
- if(testInChiaro) {
- found = aPassword.equals(passwordSaved);
- }
- if(!found && crypt!=null) {
- found = crypt.check(aPassword, passwordSaved);
- }
-
- if( found ) {
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }
- }
- }
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo cercato con credenziali basic non trovato");
- }
-
- @Override
- public ServizioApplicativo getServizioApplicativoByCredenzialiToken(String tokenPolicy, String tokenClientId, boolean tokenWithHttpsEnabled) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- if(tokenPolicy==null){
- throw new DriverConfigurazioneException("TokenPolicy non definita");
- }
- if(tokenClientId==null){
- throw new DriverConfigurazioneException("TokenClientId non definito");
- }
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggettoSearch = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggettoSearch.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoSearch.getServizioApplicativo(j);
- if(sa.getInvocazionePorta()!=null){
- for(int z=0;z<sa.getInvocazionePorta().sizeCredenzialiList();z++){
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo()!=null &&
- (
- CostantiConfigurazione.CREDENZIALE_TOKEN.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo())
- ||
- (tokenWithHttpsEnabled && CostantiConfigurazione.CREDENZIALE_SSL.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo()))
- )
- ){
- if( tokenClientId.equals(sa.getInvocazionePorta().getCredenziali(z).getUser()) &&
- tokenPolicy.equals(sa.getInvocazionePorta().getCredenziali(z).getTokenPolicy())){
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }
- }
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo cercato con credenziali principal non trovato");
- }
-
- @Override
- public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(String aSubject, String aIssuer) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- if(aSubject==null){
- throw new DriverConfigurazioneException("Subject non definito");
- }
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggettoSearch = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggettoSearch.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoSearch.getServizioApplicativo(j);
- if(sa.getInvocazionePorta()!=null){
- for(int z=0;z<sa.getInvocazionePorta().sizeCredenzialiList();z++){
- // Default: SSL
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo() == null){
- try{
- if(sa.getInvocazionePorta().getCredenziali(z).getSubject()==null) {
- continue;
- }
- boolean subjectValid = CertificateUtils.sslVerify(sa.getInvocazionePorta().getCredenziali(z).getSubject(), aSubject, PrincipalType.SUBJECT, this.log);
- boolean issuerValid = true;
- if(aIssuer!=null) {
- if(sa.getInvocazionePorta().getCredenziali(z).getIssuer()==null) {
- issuerValid = false;
- }else {
- issuerValid = CertificateUtils.sslVerify(sa.getInvocazionePorta().getCredenziali(z).getIssuer(), aIssuer, PrincipalType.ISSUER, this.log);
- }
- }
- else {
- issuerValid = (sa.getInvocazionePorta().getCredenziali(z).getIssuer() == null);
- }
- if(subjectValid && issuerValid){
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
- }
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo()!=null &&
- CostantiConfigurazione.CREDENZIALE_SSL.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo())){
- try{
- if(sa.getInvocazionePorta().getCredenziali(z).getSubject()==null) {
- continue;
- }
- boolean subjectValid = CertificateUtils.sslVerify(sa.getInvocazionePorta().getCredenziali(z).getSubject(), aSubject, PrincipalType.SUBJECT, this.log);
- boolean issuerValid = true;
- if(aIssuer!=null) {
- if(sa.getInvocazionePorta().getCredenziali(z).getIssuer()==null) {
- issuerValid = false;
- }else {
- issuerValid = CertificateUtils.sslVerify(sa.getInvocazionePorta().getCredenziali(z).getIssuer(), aIssuer, PrincipalType.ISSUER, this.log);
- }
- }
- else {
- issuerValid = (sa.getInvocazionePorta().getCredenziali(z).getIssuer() == null);
- }
- if(subjectValid && issuerValid){
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
- }
- }
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo cercato con credenziali ssl non trovato");
- }
-
- @Override
- public ServizioApplicativo getServizioApplicativoByCredenzialiSsl(CertificateInfo aCertificate, boolean aStrictVerifier) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- if(aCertificate==null){
- throw new DriverConfigurazioneException("Certificato non definito");
- }
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggettoSearch = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggettoSearch.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoSearch.getServizioApplicativo(j);
- if(sa.getInvocazionePorta()!=null){
- for(int z=0;z<sa.getInvocazionePorta().sizeCredenzialiList();z++){
- // Default: SSL
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo() == null){
- try{
- if(sa.getInvocazionePorta().getCredenziali(z).getCertificate()==null) {
- continue;
- }
- if(aStrictVerifier != sa.getInvocazionePorta().getCredenziali(z).isCertificateStrictVerification()) {
- continue;
- }
- String cnSubject = aCertificate.getSubject().getCN();
- if(cnSubject.equals(sa.getInvocazionePorta().getCredenziali(z).getCnSubject())) {
- Certificate certificato = ArchiveLoader.load(ArchiveType.CER, sa.getInvocazionePorta().getCredenziali(z).getCertificate(), 0, null);
- if(aCertificate.equals(certificato.getCertificate(),aStrictVerifier)) {
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
- }
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo()!=null &&
- CostantiConfigurazione.CREDENZIALE_SSL.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo())){
- try{
- if(sa.getInvocazionePorta().getCredenziali(z).getCertificate()==null) {
- continue;
- }
- if(aStrictVerifier != sa.getInvocazionePorta().getCredenziali(z).isCertificateStrictVerification()) {
- continue;
- }
- String cnSubject = aCertificate.getSubject().getCN();
- if(cnSubject.equals(sa.getInvocazionePorta().getCredenziali(z).getCnSubject())) {
- Certificate certificato = ArchiveLoader.load(ArchiveType.CER, sa.getInvocazionePorta().getCredenziali(z).getCertificate(), 0, null);
- if(aCertificate.equals(certificato.getCertificate(),aStrictVerifier)) {
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }
- }catch(Exception e){
- throw new DriverConfigurazioneException(e.getMessage(),e);
- }
- }
- }
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo cercato con credenziali ssl non trovato");
-
- }
-
- @Override
- public ServizioApplicativo getServizioApplicativoByCredenzialiPrincipal(String aUserPrincipal) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- if(aUserPrincipal==null){
- throw new DriverConfigurazioneException("Principal non definito");
- }
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggettoSearch = this.openspcoop.getSoggetto(i);
- for(int j=0; j<soggettoSearch.sizeServizioApplicativoList(); j++){
- ServizioApplicativo sa = soggettoSearch.getServizioApplicativo(j);
- if(sa.getInvocazionePorta()!=null){
- for(int z=0;z<sa.getInvocazionePorta().sizeCredenzialiList();z++){
- if(sa.getInvocazionePorta().getCredenziali(z).getTipo()!=null &&
- CostantiConfigurazione.CREDENZIALE_PRINCIPAL.equals(sa.getInvocazionePorta().getCredenziali(z).getTipo())){
- if( aUserPrincipal.equals(sa.getInvocazionePorta().getCredenziali(z).getUser()) ){
- sa.setTipoSoggettoProprietario(soggettoSearch.getTipo());
- sa.setNomeSoggettoProprietario(soggettoSearch.getNome());
- return sa;
- }
- }
- }
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("Servizio Applicativo cercato con credenziali principal non trovato");
- }
-
- /**
- * Restituisce la lista degli identificativi dei servizi applicativi
- *
- * @param filtroRicerca
- * @return lista degli identificativi dei servizi applicativi
- * @throws DriverConfigurazioneException
- * @throws DriverConfigurazioneNotFound
- */
- @Override
- public List<IDServizioApplicativo> getAllIdServiziApplicativi(
- FiltroRicercaServiziApplicativi filtroRicerca) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- List<IDServizioApplicativo> listIDServiziApplicativi = new ArrayList<IDServizioApplicativo>();
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- for (int j = 0; j < soggetto.sizeServizioApplicativoList(); j++) {
- ServizioApplicativo sa = soggetto.getServizioApplicativo(j);
-
- String id = sa.getNome();
-
- if(filtroRicerca!=null){
- // Filtro By Data
- if(filtroRicerca.getMinDate()!=null){
- if(sa.getOraRegistrazione()==null){
- this.log.debug("[getAllIdPorteApplicative](FiltroByMinDate) PortaApplicativa ["+id+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(sa.getOraRegistrazione().before(filtroRicerca.getMinDate())){
- continue;
- }
- }
- if(filtroRicerca.getMaxDate()!=null){
- if(soggetto.getOraRegistrazione()==null){
- this.log.debug("[getAllIdPorteApplicative](FiltroByMaxDate) PortaApplicativa ["+id+"] non valorizzato nell'ora-registrazione. Non inserito nella lista ritornata.");
- continue;
- }else if(soggetto.getOraRegistrazione().after(filtroRicerca.getMaxDate())){
- continue;
- }
- }
- // Filtro By Tipo e Nome
- if(filtroRicerca.getTipoSoggetto()!=null){
- if(soggetto.getTipo().equals(filtroRicerca.getTipoSoggetto()) == false){
- continue;
- }
- }
- if(filtroRicerca.getNomeSoggetto()!=null){
- if(soggetto.getNome().equals(filtroRicerca.getNomeSoggetto()) == false){
- continue;
- }
- }
- // Filtro By Ruoli
- if(filtroRicerca.getIdRuolo()!=null && filtroRicerca.getIdRuolo().getNome()!=null){
- if(sa.getInvocazionePorta()==null){
- continue;
- }
- if(sa.getInvocazionePorta().getRuoli()==null){
- continue;
- }
- boolean contains = false;
- for (int z = 0; z < sa.getInvocazionePorta().getRuoli().sizeRuoloList(); z++) {
- if(filtroRicerca.getIdRuolo().getNome().equals(sa.getInvocazionePorta().getRuoli().getRuolo(z).getNome())){
- contains = true;
- break;
- }
- }
- if(!contains){
- continue;
- }
- }
- }
- IDServizioApplicativo idSA = new IDServizioApplicativo();
- idSA.setNome(id);
- idSA.setIdSoggettoProprietario(new IDSoggetto(soggetto.getTipo(), soggetto.getNome()));
- listIDServiziApplicativi.add(idSA);
- }
- }
-
- if(listIDServiziApplicativi.size()<=0){
- if(filtroRicerca!=null)
- throw new DriverConfigurazioneNotFound("ServiziApplicativi non trovati che rispettano il filtro di ricerca selezionato: "+filtroRicerca.toString());
- else
- throw new DriverConfigurazioneNotFound("ServiziApplicativi non trovati");
- }
-
- return listIDServiziApplicativi;
-
- }
-
- @Override
- public List<IDConnettore> getConnettoriConsegnaNotifichePrioritarie(String queueName) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- List<IDConnettore> listIDServiziApplicativi = new ArrayList<IDConnettore>();
-
- for(int i=0; i<this.openspcoop.sizeSoggettoList(); i++){
- Soggetto soggetto = this.openspcoop.getSoggetto(i);
- for (int j = 0; j < soggetto.sizePortaApplicativaList(); j++) {
- PortaApplicativa pa = soggetto.getPortaApplicativa(j);
- if(pa.sizeServizioApplicativoList()>0) {
- for (int k = 0; k <pa.sizeServizioApplicativoList(); k++) {
- PortaApplicativaServizioApplicativo pasa = pa.getServizioApplicativo(k);
- if(pasa.getDatiConnettore()!=null && pasa.getDatiConnettore().isPrioritaMax()) {
- if(queueName!=null) {
- String coda = pasa.getDatiConnettore().getCoda();
- if(coda==null) {
- coda = CostantiConfigurazione.CODA_DEFAULT;
- }
- if(!queueName.equals(coda)){
- continue;
- }
- }
- IDConnettore idSA = new IDConnettore();
- idSA.setNome(pasa.getNome());
- idSA.setIdSoggettoProprietario(new IDSoggetto(soggetto.getTipo(), soggetto.getNome()));
- idSA.setNomeConnettore(pasa.getDatiConnettore().getNome());
- if(idSA.getNomeConnettore()==null) {
- idSA.setNomeConnettore(CostantiConfigurazione.NOME_CONNETTORE_DEFAULT);
- }
- listIDServiziApplicativi.add(idSA);
- }
- }
- }
- }
- }
-
- if(listIDServiziApplicativi.size()<=0){
- if(queueName!=null)
- throw new DriverConfigurazioneNotFound("ServiziApplicativi non trovati per la coda '"+queueName+"'");
- else
- throw new DriverConfigurazioneNotFound("ServiziApplicativi non trovati");
- }
-
- return listIDServiziApplicativi;
- }
-
-
-
-
-
-
-
- // CONFIGURAZIONE
- /**
- * Restituisce la RoutingTable definita nella Porta di Dominio
- *
- * @return RoutingTable
- *
- */
- @Override
- public RoutingTable getRoutingTable() throws DriverConfigurazioneException{
- refreshConfigurazioneXML();
- RoutingTable r = null;
- if(this.openspcoop.getConfigurazione().getRoutingTable()==null){
- r = new RoutingTable();
- r.setAbilitata(false);
- }else{
- r = this.openspcoop.getConfigurazione().getRoutingTable();
- r.setAbilitata(true);
- }
-
- return r;
- }
- /**
- * Restituisce l'accesso al registro definito nella Porta di Dominio
- *
- * @return AccessoRegistro
- *
- */
- @Override
- public AccessoRegistro getAccessoRegistro() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoRegistro()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoRegistro] Informazioni di accesso al RegistroServizi non trovate");
-
- return this.openspcoop.getConfigurazione().getAccessoRegistro();
- }
-
- /**
- * Restituisce l'accesso alla configurazione definito nella Porta di Dominio
- *
- * @return AccessoConfigurazione
- *
- */
- @Override
- public AccessoConfigurazione getAccessoConfigurazione() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoConfigurazione] Informazioni di accesso alla configurazione non trovate");
-
- return this.openspcoop.getConfigurazione().getAccessoConfigurazione();
- }
-
- /**
- * Restituisce l'accesso ai dati di autorizzazione definiti nella Porta di Dominio
- *
- * @return AccessoDatiAutorizzazione
- *
- */
- @Override
- public AccessoDatiAutorizzazione getAccessoDatiAutorizzazione() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiAutorizzazione()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiAutorizzazione] Informazioni di accesso ai dati di autorizzazione non trovate");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiAutorizzazione();
-
- }
-
- /**
- * Restituisce l'accesso ai dati di autenticazione definiti nella Porta di Dominio
- *
- * @return AccessoDatiAutenticazione
- *
- */
- @Override
- public AccessoDatiAutenticazione getAccessoDatiAutenticazione() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiAutenticazione()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiAutenticazione] Informazioni di accesso ai dati di autenticazione non trovate");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiAutenticazione();
-
- }
-
- /**
- * Restituisce l'accesso ai dati di gestione token
- *
- * @return AccessoDatiGestioneToken
- *
- */
- @Override
- public AccessoDatiGestioneToken getAccessoDatiGestioneToken() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiGestioneToken()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiGestioneToken] Informazioni di accesso ai dati di gestione dei token non trovati");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiGestioneToken();
-
- }
-
- /**
- * Restituisce l'accesso ai dati recuperati da attribute authority
- *
- * @return AccessoDatiAttributeAuthority
- *
- */
- @Override
- public AccessoDatiAttributeAuthority getAccessoDatiAttributeAuthority() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiAttributeAuthority()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiAttributeAuthority] Informazioni di accesso ai dati recuperati da Attribute Authority non trovati");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiAttributeAuthority();
-
- }
-
- /**
- * Restituisce l'accesso ai dati per la gestione dei keystore
- *
- * @return AccessoDatiKeystore
- *
- */
- @Override
- public AccessoDatiKeystore getAccessoDatiKeystore() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiKeystore()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiKeystore] Informazioni di accesso ai dati per la gestione dei keystore non trovati");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiKeystore();
-
- }
-
- /**
- * Restituisce l'accesso ai dati per la gestione delle richieste
- *
- * @return AccessoDatiRichieste
- *
- */
- @Override
- public AccessoDatiRichieste getAccessoDatiRichieste() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiRichieste()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiRichieste] Informazioni di accesso ai dati per la gestione delle richieste non trovati");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiRichieste();
-
- }
-
- /**
- * Restituisce l'accesso ai dati per la gestione della consegna agli applicativi
- *
- * @return AccessoDatiKeystore
- *
- */
- @Override
- public AccessoDatiConsegnaApplicativi getAccessoDatiConsegnaApplicativi() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
- if(this.openspcoop.getConfigurazione().getAccessoDatiConsegnaApplicativi()==null)
- throw new DriverConfigurazioneNotFound("[getAccessoDatiKeystore] Informazioni di accesso ai dati per la gestione della consegna agli applicativi non trovati");
-
- return this.openspcoop.getConfigurazione().getAccessoDatiConsegnaApplicativi();
-
- }
-
-
- /**
- * Restituisce la gestione dell'errore di default definita nella Porta di Dominio per il componente di cooperazione
- *
- * @return La gestione dell'errore
- *
- */
- @Override
- public GestioneErrore getGestioneErroreComponenteCooperazione() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getGestioneErroreComponenteCooperazione] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getGestioneErrore()==null)
- throw new DriverConfigurazioneNotFound("[getGestioneErroreComponenteCooperazione] Informazioni per la gestione dell'errore non trovate");
- if(this.openspcoop.getConfigurazione().getGestioneErrore().getComponenteCooperazione()==null)
- throw new DriverConfigurazioneNotFound("[getGestioneErroreComponenteCooperazione] Informazioni per la gestione dell'errore per il componente di cooperazione non trovate");
-
- return this.openspcoop.getConfigurazione().getGestioneErrore().getComponenteCooperazione();
- }
-
- /**
- * Restituisce la gestione dell'errore di default definita nella Porta di Dominio per il componente di integrazione
- *
- * @return La gestione dell'errore
- *
- */
- @Override
- public GestioneErrore getGestioneErroreComponenteIntegrazione() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getGestioneErroreComponenteIntegrazione] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getGestioneErrore()==null)
- throw new DriverConfigurazioneNotFound("[getGestioneErroreComponenteIntegrazione] Informazioni per la gestione dell'errore non trovate");
- if(this.openspcoop.getConfigurazione().getGestioneErrore().getComponenteIntegrazione()==null)
- throw new DriverConfigurazioneNotFound("[getGestioneErroreComponenteIntegrazione] Informazioni per la gestione dell'errore per il componente di cooperazione non trovate");
-
- return this.openspcoop.getConfigurazione().getGestioneErrore().getComponenteIntegrazione();
- }
- /**
- * Restituisce la servizio sui ServiziAttivi definiti nella Porta di Dominio
- *
- * @return ServiziAttivi
- *
- */
- @Override
- public StatoServiziPdd getStatoServiziPdD() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getServiziAttiviPdD] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getStatoServiziPdd()==null)
- throw new DriverConfigurazioneNotFound("[getServiziAttiviPdD] Configurazione servizi attivi sulla PdD non presente");
-
- return this.openspcoop.getConfigurazione().getStatoServiziPdd();
- }
-
- /**
- * Restituisce le proprieta' di sistema utilizzate dalla PdD
- *
- * @return proprieta' di sistema
- *
- */
- @Override
- public SystemProperties getSystemPropertiesPdD() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getServiziAttiviPdD] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getSystemProperties()==null)
- throw new DriverConfigurazioneNotFound("[getServiziAttiviPdD] Configurazione System Properties non presenti");
-
- return this.openspcoop.getConfigurazione().getSystemProperties();
-
- }
-
- /**
- * Restituisce i nomi delle proprieta' di sistema cifrate
- *
- * @return proprieta' di sistema
- *
- */
- @Override
- public List<String> getEncryptedSystemPropertiesPdD() throws DriverConfigurazioneException{
- return new ArrayList<>();
- }
-
- /**
- * Restituisce le proprieta' generiche utilizzate dalla PdD
- *
- * @return proprieta' generiche
- *
- */
- @Override
- public List<GenericProperties> getGenericProperties() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getGenericPropertiesList()==null || this.openspcoop.getConfigurazione().getGenericPropertiesList().size()<=0)
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione Generic Properties non presenti");
-
- return this.openspcoop.getConfigurazione().getGenericPropertiesList();
-
- }
-
- /**
- * Restituisce le proprieta' generiche di una tipologia utilizzate dalla PdD
- *
- * @return proprieta' generiche
- *
- */
- @Override
- public List<GenericProperties> getGenericProperties(String tipologia) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getGenericPropertiesList()==null || this.openspcoop.getConfigurazione().getGenericPropertiesList().size()<=0)
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione Generic Properties non presenti");
-
- List<GenericProperties> list = new ArrayList<>();
- for (GenericProperties genericProperties : this.openspcoop.getConfigurazione().getGenericPropertiesList()) {
- if(tipologia!=null && tipologia.equals(genericProperties.getTipologia())) {
- list.add(genericProperties);
- }
- }
-
- if(list.isEmpty()) {
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione Generic Properties non presenti con tipologia '"+tipologia+"'");
- }
-
- return list;
- }
-
- @Override
- public GenericProperties getGenericProperties(String tipologia, String name) throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
-
- refreshConfigurazioneXML();
-
- if(this.openspcoop.getConfigurazione()==null)
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione non trovata");
- if(this.openspcoop.getConfigurazione().getGenericPropertiesList()==null || this.openspcoop.getConfigurazione().getGenericPropertiesList().size()<=0)
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione Generic Properties non presenti");
-
- for (GenericProperties genericProperties : this.openspcoop.getConfigurazione().getGenericPropertiesList()) {
- if(tipologia!=null && tipologia.equals(genericProperties.getTipologia())) {
- if(genericProperties.getNome().equals(name)) {
- return genericProperties;
- }
- }
- }
-
- throw new DriverConfigurazioneNotFound("[getGenericProperties] Configurazione Generic Properties non presenti con tipologia '"+tipologia+"' e nome '"+name+"'");
- }
- /**
- * Restituisce la configurazione dei plugins
- *
- * @return RegistroPlugins
- *
- */
- @Override
- public RegistroPlugins getRegistroPlugins() throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- refreshConfigurazioneXML();
- RegistroPlugins registro = this.openspcoop.getConfigurazione().getRegistroPlugins();
- if(registro==null || registro.sizePluginList()<=0) {
- throw new DriverConfigurazioneNotFound("Nessun plugin registrato");
- }
-
- return registro;
- }
-
- @Override
- public CanaliConfigurazione getCanaliConfigurazione() throws DriverConfigurazioneException,DriverConfigurazioneNotFound{
- refreshConfigurazioneXML();
-
- CanaliConfigurazione c = this.openspcoop.getConfigurazione().getGestioneCanali();
- if(c==null) {
- c = new CanaliConfigurazione();
- c.setStato(StatoFunzionalita.DISABILITATO);
- }
- return c;
- }
- /**
- * Restituisce la configurazione del plugin
- *
- * @return RegistroPlugin
- *
- */
- @Override
- public RegistroPlugin getRegistroPlugin(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- return getRegistroPlugin(nome, false);
- }
- @Override
- public RegistroPlugin getDatiRegistroPlugin(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- return getRegistroPlugin(nome, true);
- }
- private RegistroPlugin getRegistroPlugin(String nome, boolean soloDati) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- if(nome==null) {
- throw new DriverConfigurazioneException("Nome plugin non indicato");
- }
-
- refreshConfigurazioneXML();
- RegistroPlugins registro = this.openspcoop.getConfigurazione().getRegistroPlugins();
- if(registro==null || registro.sizePluginList()<=0) {
- throw new DriverConfigurazioneNotFound("Plugin '"+nome+"' non esistente");
- }
- for (int i = 0; i < registro.sizePluginList(); i++) {
- RegistroPlugin plug = registro.getPlugin(i);
- if(plug.getNome().equals(nome)) {
- if(soloDati) {
- RegistroPlugin plugCloned = (RegistroPlugin) plug.clone();
- while(plugCloned.sizeArchivioList()>0) {
- plugCloned.removeArchivio(0);
- }
- }
- else {
- return plug;
- }
- }
- }
- throw new DriverConfigurazioneNotFound("Plugin '"+nome+"' non esistente");
- }
-
- @Override
- public RegistroPluginArchivio getRegistroPluginArchivio(String nomePlugin, String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
-
- RegistroPlugin plug = this.getRegistroPlugin(nomePlugin);
-
- if(nome==null) {
- throw new DriverConfigurazioneException("Nome archivio non indicato");
- }
-
- for (int i = 0; i < plug.sizeArchivioList(); i++) {
- RegistroPluginArchivio plugArchivio = plug.getArchivio(i);
- if(plugArchivio.getNome().equals(nome)) {
- return plugArchivio;
- }
- }
- throw new DriverConfigurazioneNotFound("Archivio '"+nome+"' non esistente nel plugin '"+nomePlugin+"'");
- }
-
- @Override
- public ConfigurazioneUrlInvocazioneRegola getUrlInvocazioneRegola(String nome) throws DriverConfigurazioneException, DriverConfigurazioneNotFound{
- if(nome==null) {
- throw new DriverConfigurazioneException("Nome regola non indicato");
- }
-
- refreshConfigurazioneXML();
- ConfigurazioneUrlInvocazione registro = this.openspcoop.getConfigurazione().getUrlInvocazione();
- if(registro==null || registro.sizeRegolaList()<=0) {
- throw new DriverConfigurazioneNotFound("Regola '"+nome+"' non esistente");
- }
- for (int i = 0; i < registro.sizeRegolaList(); i++) {
- ConfigurazioneUrlInvocazioneRegola regola = registro.getRegola(i);
- if(regola.getNome().equals(nome)) {
- return regola;
- }
- }
- throw new DriverConfigurazioneNotFound("Regola '"+nome+"' non esistente");
- }
-
- /**
- * Restituisce la configurazione generale della Porta di Dominio
- *
- * @return Configurazione
- *
- */
- @SuppressWarnings("deprecation")
- @Override
- public Configurazione getConfigurazioneGenerale() throws DriverConfigurazioneException{
- refreshConfigurazioneXML();
- Configurazione config = this.openspcoop.getConfigurazione();
-
- // Backward Compatibility
- if(config!=null && config.getDump()!=null) {
- if(config.getDump().getConfigurazione()!=null) {
- if(config.getDump().getConfigurazionePortaApplicativa()==null && config.getDump().getConfigurazionePortaDelegata()==null) {
- config.getDump().setConfigurazionePortaApplicativa(config.getDump().getConfigurazione());
- config.getDump().setConfigurazionePortaDelegata(config.getDump().getConfigurazione());
- }
- }
- }
-
- return config;
- }
- /**
- * Metodo che verica la connessione ad una risorsa.
- * Se la connessione non e' presente, viene lanciata una eccezione che contiene il motivo della mancata connessione
- *
- * @throws DriverException eccezione che contiene il motivo della mancata connessione
- */
- @Override
- public void isAlive() throws CoreException{
-
- if(this.create==false)
- throw new CoreException("Driver non inizializzato");
-
- try{
- this.forzaRefreshConfigurazioneXML();
- }catch(Exception e){
- throw new CoreException("Connessione al registro non disponibile: "+e.getMessage(),e);
- }
- }
- @Override
- public Openspcoop2 getImmagineCompletaConfigurazionePdD() throws DriverConfigurazioneException{
-
- refreshConfigurazioneXML();
- return this.openspcoop;
- }
- }