RegistroServiziManager.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.protocol.registry;
import java.io.Serializable;
import java.sql.Connection;
import java.util.List;
import java.util.Map;
import org.openspcoop2.core.commons.CoreException;
import org.openspcoop2.core.id.IDAccordo;
import org.openspcoop2.core.id.IDAccordoAzione;
import org.openspcoop2.core.id.IDAccordoCooperazione;
import org.openspcoop2.core.id.IDFruizione;
import org.openspcoop2.core.id.IDPortType;
import org.openspcoop2.core.id.IDPortTypeAzione;
import org.openspcoop2.core.id.IDResource;
import org.openspcoop2.core.id.IDRuolo;
import org.openspcoop2.core.id.IDScope;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.registry.AccordoCooperazione;
import org.openspcoop2.core.registry.AccordoServizioParteComune;
import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
import org.openspcoop2.core.registry.Documento;
import org.openspcoop2.core.registry.PortaDominio;
import org.openspcoop2.core.registry.Ruolo;
import org.openspcoop2.core.registry.Scope;
import org.openspcoop2.core.registry.Soggetto;
import org.openspcoop2.core.registry.constants.TipiDocumentoLivelloServizio;
import org.openspcoop2.core.registry.constants.TipiDocumentoSemiformale;
import org.openspcoop2.core.registry.constants.TipiDocumentoSicurezza;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziAzioneNotFound;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziCorrelatoNotFound;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziNotFound;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziPortTypeNotFound;
import org.openspcoop2.core.registry.driver.DriverRegistroServiziServizioNotFound;
import org.openspcoop2.core.registry.driver.FiltroRicerca;
import org.openspcoop2.core.registry.driver.FiltroRicercaAccordi;
import org.openspcoop2.core.registry.driver.FiltroRicercaAzioni;
import org.openspcoop2.core.registry.driver.FiltroRicercaFruizioniServizio;
import org.openspcoop2.core.registry.driver.FiltroRicercaOperations;
import org.openspcoop2.core.registry.driver.FiltroRicercaPortTypes;
import org.openspcoop2.core.registry.driver.FiltroRicercaResources;
import org.openspcoop2.core.registry.driver.FiltroRicercaRuoli;
import org.openspcoop2.core.registry.driver.FiltroRicercaScope;
import org.openspcoop2.core.registry.driver.FiltroRicercaServizi;
import org.openspcoop2.core.registry.driver.FiltroRicercaSoggetti;
import org.openspcoop2.core.registry.driver.IDAccordoFactory;
import org.openspcoop2.core.registry.driver.IDServizioFactory;
import org.openspcoop2.protocol.sdk.IProtocolFactory;
import org.openspcoop2.protocol.sdk.Servizio;
import org.openspcoop2.protocol.sdk.constants.InformationApiSource;
import org.openspcoop2.protocol.sdk.state.IState;
import org.openspcoop2.protocol.sdk.state.RequestInfo;
import org.openspcoop2.protocol.sdk.state.StateMessage;
import org.openspcoop2.utils.certificate.CertificateInfo;
import org.openspcoop2.utils.crypt.CryptConfig;
import org.openspcoop2.utils.transport.http.IBYOKUnwrapFactory;
import org.slf4j.Logger;
/**
* RegistroServiziManager
*
* @author Poli Andrea (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class RegistroServiziManager {
private static RegistroServiziManager staticInstanceWithoutState = null;
private static synchronized void initStaticInstanceWithoutState(){
if(staticInstanceWithoutState == null) {
staticInstanceWithoutState = new RegistroServiziManager();
staticInstanceWithoutState.singleInstance = true;
}
}
public static RegistroServiziManager getInstance(){
//return new RegistroServiziManager();
if(staticInstanceWithoutState == null) {
if(RegistroServiziReader.getInstance()==null) {
return new RegistroServiziManager(); // succede all'avvio
}
initStaticInstanceWithoutState();
}
return staticInstanceWithoutState;
}
public static RegistroServiziManager getInstance(IState state){
if(state!=null && state instanceof StateMessage) {
return getInstance((StateMessage)state);
}
return getInstance();
}
public static RegistroServiziManager getInstance(StateMessage state){
if(state!=null) {
return new RegistroServiziManager(state);
}
return getInstance();
}
public static RegistroServiziManager getInstance(IState requestStateParam, IState responseStateParam){
StateMessage requestState = null;
StateMessage responseState = null;
if(requestStateParam!=null && requestStateParam instanceof StateMessage) {
requestState = (StateMessage) requestStateParam;
}
if(responseStateParam!=null && responseStateParam instanceof StateMessage) {
responseState = (StateMessage) responseStateParam;
}
if(requestState!=null || responseState!=null) {
return new RegistroServiziManager(requestState,responseState);
}
return getInstance();
}
public static RegistroServiziManager getInstance(StateMessage requestState, StateMessage responseState){
if(requestState!=null || responseState!=null) {
return new RegistroServiziManager(requestState,responseState);
}
return getInstance();
}
private boolean singleInstance = false;
private RegistroServiziReader registroServiziReader = null;
private StateMessage state = null;
private StateMessage responseState = null;
public StateMessage getState() {
return this.state;
}
public StateMessage getResponseState() {
return this.responseState;
}
public RegistroServiziManager(){
this.registroServiziReader = RegistroServiziReader.getInstance();
}
public RegistroServiziManager(StateMessage state){
this();
this.state = state;
}
public RegistroServiziManager(StateMessage requestState, StateMessage responseState){
this();
this.state = requestState;
this.responseState = responseState;
}
public RegistroServiziManager refreshState(IState requestStateParam, IState responseStateParam) {
StateMessage requestState = null;
StateMessage responseState = null;
if(requestStateParam!=null && requestStateParam instanceof StateMessage) {
requestState = (StateMessage) requestStateParam;
}
if(responseStateParam!=null && responseStateParam instanceof StateMessage) {
responseState = (StateMessage) responseStateParam;
}
return refreshState(requestState, responseState);
}
public RegistroServiziManager refreshState(StateMessage requestState, StateMessage responseState) {
if(requestState==null && responseState==null) {
return getInstance(); // senza stato
}
if(this.singleInstance) {
return RegistroServiziManager.getInstance(requestState, responseState); // inizialmente era senza stato, ora serve
}
this.state = requestState;
this.responseState = responseState;
return this;
}
private Connection getConnection() {
if(this.state!=null) {
Connection c = StateMessage.getConnection(this.state);
if(c!=null) {
return c;
}
}
if(this.responseState!=null) {
Connection c = StateMessage.getConnection(this.responseState);
if(c!=null) {
return c;
}
}
return null;
}
/* ******** READER ******** */
public RegistroServiziReader getRegistroServiziReader(){
return this.registroServiziReader;
}
/* ******** U T I L S ******** */
public void isAlive(boolean controlloTotale) throws CoreException{
this.registroServiziReader.isAlive(controlloTotale);
}
public void validazioneSemantica(boolean controlloTotale,boolean verificaURI,
String[] tipiSoggettiValidi,String [] tipiServiziSoapValidi, String [] tipiServiziRestValidi, String[] tipiConnettoriValidi,
boolean validazioneSemanticaAbilitataXML,boolean validazioneSemanticaAbilitataAltriRegistri,
Logger logConsole) throws CoreException{
this.registroServiziReader.validazioneSemantica(controlloTotale, verificaURI, tipiSoggettiValidi, tipiServiziSoapValidi, tipiServiziRestValidi,
tipiConnettoriValidi, validazioneSemanticaAbilitataXML, validazioneSemanticaAbilitataAltriRegistri, logConsole);
}
public void setValidazioneSemanticaModificaRegistroServiziXML(boolean verificaURI,
String[] tipiSoggettiValidi,String [] tipiServiziSoapValidi, String [] tipiServiziRestValidi, String[] tipiConnettoriValidi) throws CoreException{
this.registroServiziReader.setValidazioneSemanticaModificaRegistroServiziXML(verificaURI, tipiSoggettiValidi, tipiServiziSoapValidi, tipiServiziRestValidi, tipiConnettoriValidi);
}
public void verificaConsistenzaRegistroServizi() throws DriverRegistroServiziException {
this.registroServiziReader.verificaConsistenzaRegistroServizi();
}
/* ******** P R O F I L O D I G E S T I O N E ******** */
public String getProfiloGestioneFruizioneServizio(IDServizio idServizio,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idServizio!=null && idServizio.equals(requestInfo.getRequestConfig().getIdServizio(), false);
if(useRequestInfo) {
if(requestInfo.getRequestConfig().getServizioVersioneProtocollo()!=null) {
return requestInfo.getRequestConfig().getServizioVersioneProtocollo();
}
}
String v = this.registroServiziReader.getProfiloGestioneFruizioneServizio(this.getConnection(), idServizio, nomeRegistro, requestInfo);
if(useRequestInfo) {
if(requestInfo.getRequestConfig().getServizioVersioneProtocollo()==null) {
requestInfo.getRequestConfig().setServizioVersioneProtocollo(v);
}
}
return v;
}
public String getProfiloGestioneErogazioneServizio(IDSoggetto idFruitore,IDServizio idServizio,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
// accendendo all'implementazione sottostante si puo' vedere come il parametro idServizio non viene usato
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idFruitore!=null;
boolean useRequestInfoSoggettoFruitore = false;
boolean useRequestInfoSoggettoErogatore = false;
if(useRequestInfo) {
useRequestInfoSoggettoFruitore = useRequestInfo && requestInfo.getRequestConfig().getIdFruitore()!=null &&
requestInfo.getRequestConfig().getIdFruitore().equals(idFruitore);
if(useRequestInfoSoggettoFruitore) {
if(requestInfo.getRequestConfig().getSoggettoFruitoreVersioneProtocollo()!=null) {
return requestInfo.getRequestConfig().getSoggettoFruitoreVersioneProtocollo();
}
}
else {
useRequestInfoSoggettoErogatore = useRequestInfo && requestInfo.getRequestConfig().getIdServizio()!=null &&
requestInfo.getRequestConfig().getIdServizio().getSoggettoErogatore()!=null &&
requestInfo.getRequestConfig().getIdServizio().getSoggettoErogatore().equals(idFruitore);
if(useRequestInfoSoggettoErogatore) {
if(requestInfo.getRequestConfig().getSoggettoErogatoreVersioneProtocollo()!=null) {
return requestInfo.getRequestConfig().getSoggettoErogatoreVersioneProtocollo();
}
}
}
}
String v = this.registroServiziReader.getProfiloGestioneErogazioneServizio(this.getConnection(), idFruitore, idServizio, nomeRegistro, requestInfo);
if(useRequestInfoSoggettoFruitore) {
if(requestInfo.getRequestConfig().getSoggettoFruitoreVersioneProtocollo()==null) {
requestInfo.getRequestConfig().setSoggettoFruitoreVersioneProtocollo(v);
}
}
else if(useRequestInfoSoggettoErogatore) {
if(requestInfo.getRequestConfig().getSoggettoErogatoreVersioneProtocollo()==null) {
requestInfo.getRequestConfig().setSoggettoErogatoreVersioneProtocollo(v);
}
}
return v;
}
public String getProfiloGestioneSoggetto(IDSoggetto idSoggetto,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null;
boolean useRequestInfoSoggettoFruitore = false;
boolean useRequestInfoSoggettoErogatore = false;
if(useRequestInfo) {
useRequestInfoSoggettoFruitore = useRequestInfo && requestInfo.getRequestConfig().getIdFruitore()!=null &&
requestInfo.getRequestConfig().getIdFruitore().equals(idSoggetto);
if(useRequestInfoSoggettoFruitore) {
if(requestInfo.getRequestConfig().getSoggettoFruitoreVersioneProtocollo()!=null) {
return requestInfo.getRequestConfig().getSoggettoFruitoreVersioneProtocollo();
}
}
else {
useRequestInfoSoggettoErogatore = useRequestInfo && requestInfo.getRequestConfig().getIdServizio()!=null &&
requestInfo.getRequestConfig().getIdServizio().getSoggettoErogatore()!=null &&
requestInfo.getRequestConfig().getIdServizio().getSoggettoErogatore().equals(idSoggetto);
if(useRequestInfoSoggettoErogatore) {
if(requestInfo.getRequestConfig().getSoggettoErogatoreVersioneProtocollo()!=null) {
return requestInfo.getRequestConfig().getSoggettoErogatoreVersioneProtocollo();
}
}
}
}
String v = this.registroServiziReader.getProfiloGestioneSoggetto(this.getConnection(), idSoggetto, nomeRegistro, requestInfo);
if(useRequestInfoSoggettoFruitore) {
if(requestInfo.getRequestConfig().getSoggettoFruitoreVersioneProtocollo()==null) {
requestInfo.getRequestConfig().setSoggettoFruitoreVersioneProtocollo(v);
}
}
else if(useRequestInfoSoggettoErogatore) {
if(requestInfo.getRequestConfig().getSoggettoErogatoreVersioneProtocollo()==null) {
requestInfo.getRequestConfig().setSoggettoErogatoreVersioneProtocollo(v);
}
}
return v;
}
/* ******** R I C E R C A I N F O S E R V I Z I ******** */
public Servizio getInfoServizio(IDSoggetto idSoggetto, IDServizio idService,String nomeRegistro, boolean verificaEsistenzaServizioAzioneCorrelato, boolean throwAzioneNotFound,
RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound,DriverRegistroServiziAzioneNotFound,DriverRegistroServiziPortTypeNotFound,DriverRegistroServiziCorrelatoNotFound{
if(requestInfo!=null && requestInfo.getRequestConfig()!=null && idService!=null && requestInfo.getRequestConfig().getInfoServizio()!=null) {
if(requestInfo.getRequestConfig().getInfoServizio().getIDServizio().equals(idService)) {
return requestInfo.getRequestConfig().getInfoServizio();
}
}
Servizio s = this.registroServiziReader.getInfoServizio(this.getConnection(), idSoggetto, idService, nomeRegistro, verificaEsistenzaServizioAzioneCorrelato, throwAzioneNotFound);
if(requestInfo!=null && requestInfo.getRequestConfig()!=null && requestInfo.getRequestConfig().getInfoServizio()==null) {
requestInfo.getRequestConfig().setInfoServizio(s);
}
return s;
}
public Servizio getInfoServizioCorrelato(IDSoggetto idSoggetto,IDServizio idService,String nomeRegistro, boolean throwAzioneNotFound,
RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound,DriverRegistroServiziAzioneNotFound,DriverRegistroServiziPortTypeNotFound,DriverRegistroServiziCorrelatoNotFound{
if(requestInfo!=null && requestInfo.getRequestConfig()!=null && idService!=null && requestInfo.getRequestConfig().getInfoServizioCorrelato()!=null) {
if(requestInfo.getRequestConfig().getInfoServizioCorrelato().getIDServizio().equals(idService)) {
return requestInfo.getRequestConfig().getInfoServizioCorrelato();
}
}
Servizio s = this.registroServiziReader.getInfoServizioCorrelato(this.getConnection(), idSoggetto, idService, nomeRegistro, throwAzioneNotFound);
if(requestInfo!=null && requestInfo.getRequestConfig()!=null && requestInfo.getRequestConfig().getInfoServizioCorrelato()==null) {
requestInfo.getRequestConfig().setInfoServizioCorrelato(s);
}
return s;
}
public Servizio getInfoServizioAzioneCorrelata(IDSoggetto idSoggetto,IDServizio idService,String nomeRegistro, boolean throwAzioneNotFound,
RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound,DriverRegistroServiziAzioneNotFound,DriverRegistroServiziPortTypeNotFound,DriverRegistroServiziCorrelatoNotFound{
if(requestInfo!=null && requestInfo.getRequestConfig()!=null && idService!=null && requestInfo.getRequestConfig().getInfoServizioAzioneCorrelata()!=null) {
if(requestInfo.getRequestConfig().getInfoServizioAzioneCorrelata().getIDServizio().equals(idService)) {
return requestInfo.getRequestConfig().getInfoServizioAzioneCorrelata();
}
}
Servizio s = this.registroServiziReader.getInfoServizioAzioneCorrelata(this.getConnection(), idSoggetto, idService, nomeRegistro, throwAzioneNotFound);
if(requestInfo!=null && requestInfo.getRequestConfig()!=null && requestInfo.getRequestConfig().getInfoServizioAzioneCorrelata()==null) {
requestInfo.getRequestConfig().setInfoServizioAzioneCorrelata(s);
}
return s;
}
public Allegati getAllegati(IDServizio idASPS)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllegati(this.getConnection(), idASPS);
}
public Documento getAllegato(IDAccordo idAccordo, String nome, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllegato(this.getConnection(), idAccordo, nome, requestInfo);
}
public Documento getSpecificaSemiformale(IDAccordo idAccordo, TipiDocumentoSemiformale tipo, String nome, RequestInfo requestInfo)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSpecificaSemiformale(this.getConnection(), idAccordo, tipo, nome, requestInfo);
}
public Documento getAllegato(IDServizio idASPS, String nome, RequestInfo requestInfo)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllegato(this.getConnection(), idASPS, nome, requestInfo);
}
public Documento getSpecificaSemiformale(IDServizio idASPS, TipiDocumentoSemiformale tipo, String nome, RequestInfo requestInfo)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSpecificaSemiformale(this.getConnection(), idASPS, tipo, nome, requestInfo);
}
public Documento getSpecificaSicurezza(IDServizio idASPS, TipiDocumentoSicurezza tipo, String nome, RequestInfo requestInfo)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSpecificaSicurezza(this.getConnection(), idASPS, tipo, nome, requestInfo);
}
public Documento getSpecificaLivelloServizio(IDServizio idASPS, TipiDocumentoLivelloServizio tipo, String nome, RequestInfo requestInfo)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSpecificaLivelloServizio(this.getConnection(), idASPS, tipo, nome, requestInfo);
}
public org.openspcoop2.core.registry.wsdl.AccordoServizioWrapper getWsdlAccordoServizio(IDServizio idService,InformationApiSource infoWsdlSource,boolean buildSchemaXSD, boolean readDatiRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idService!=null && infoWsdlSource!=null;
if(useRequestInfo) {
org.openspcoop2.core.registry.wsdl.AccordoServizioWrapper w = requestInfo.getRequestConfig().getAsWrapperSoap(infoWsdlSource, buildSchemaXSD, readDatiRegistro);
if(w!=null) {
return w;
}
}
org.openspcoop2.core.registry.wsdl.AccordoServizioWrapper w = this.registroServiziReader.getWsdlAccordoServizio(this.getConnection(), idService, infoWsdlSource,buildSchemaXSD, readDatiRegistro);
if(useRequestInfo && requestInfo!=null && requestInfo.getRequestConfig().getAsWrapperSoap(infoWsdlSource, buildSchemaXSD, readDatiRegistro)==null) {
requestInfo.getRequestConfig().setAsWrapperSoap(w, infoWsdlSource, buildSchemaXSD, readDatiRegistro,
requestInfo.getIdTransazione());
}
return w;
}
public org.openspcoop2.core.registry.rest.AccordoServizioWrapper getRestAccordoServizio(IDServizio idService,InformationApiSource infoWsdlSource,boolean buildSchemaXSD, boolean processIncludeForOpenApi, boolean readDatiRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idService!=null && infoWsdlSource!=null;
if(useRequestInfo) {
org.openspcoop2.core.registry.rest.AccordoServizioWrapper w = requestInfo.getRequestConfig().getAsWrapperRest(infoWsdlSource, buildSchemaXSD, processIncludeForOpenApi, readDatiRegistro);
if(w!=null) {
return w;
}
}
org.openspcoop2.core.registry.rest.AccordoServizioWrapper w = this.registroServiziReader.getRestAccordoServizio(this.getConnection(), idService, infoWsdlSource,buildSchemaXSD, processIncludeForOpenApi, readDatiRegistro);
if(useRequestInfo && requestInfo!=null && requestInfo.getRequestConfig().getAsWrapperRest(infoWsdlSource, buildSchemaXSD, processIncludeForOpenApi, readDatiRegistro)==null) {
requestInfo.getRequestConfig().setAsWrapperRest(w, infoWsdlSource, buildSchemaXSD, processIncludeForOpenApi, readDatiRegistro,
requestInfo.getIdTransazione());
}
return w;
}
public org.openspcoop2.core.registry.constants.ServiceBinding getServiceBinding(IDServizio idService, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idService!=null;
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getServiceBinding()!=null) {
return requestInfo.getRequestConfig().getServiceBinding();
}
}
org.openspcoop2.core.registry.constants.ServiceBinding serviceBinding = this.registroServiziReader.getServiceBinding(this.getConnection(), idService);
if(useRequestInfo && requestInfo.getRequestConfig().getServiceBinding()==null) {
requestInfo.getRequestConfig().setServiceBinding(serviceBinding);
}
return serviceBinding;
}
public EsitoAutorizzazioneRegistro isFruitoreServizioAutorizzato(String pdd,String servizioApplicativo,IDSoggetto soggetto,IDServizio servizio)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound, DriverRegistroServiziServizioNotFound{
return this.registroServiziReader.isFruitoreServizioAutorizzato(this.getConnection(), pdd, servizioApplicativo, soggetto, servizio);
}
/* ******** C O N N E T T O R I ******** */
public org.openspcoop2.core.config.Connettore getConnettore(IDSoggetto idSoggetto,IDServizio idService,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null && idService!=null &&
requestInfo.getRequestConfig().getIdFruitore()!=null && idSoggetto.equals(requestInfo.getRequestConfig().getIdFruitore()) &&
requestInfo.getRequestConfig().getIdServizio()!=null && idService.equals(requestInfo.getRequestConfig().getIdServizio(),false);
if(useRequestInfo) {
if(requestInfo.getRequestConfig().getConnettoreFrutoreServizio()!=null) {
return requestInfo.getRequestConfig().getConnettoreFrutoreServizio();
}
}
org.openspcoop2.core.config.Connettore c = this.registroServiziReader.getConnettore(this.getConnection(), idSoggetto, idService, nomeRegistro);
if(useRequestInfo) {
if(requestInfo.getRequestConfig().getConnettoreFrutoreServizio()==null) {
requestInfo.getRequestConfig().setConnettoreFrutoreServizio(c);
}
}
return c;
}
public org.openspcoop2.core.config.Connettore getConnettore(IDSoggetto idSoggetto,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null &&
requestInfo.getRequestConfig().getIdServizio()!=null &&
requestInfo.getRequestConfig().getIdServizio().getSoggettoErogatore()!=null &&
requestInfo.getRequestConfig().getIdServizio().getSoggettoErogatore().equals(idSoggetto);
if(useRequestInfo) {
if(requestInfo.getRequestConfig().getConnettoreSoggettoErogatore()!=null) {
return requestInfo.getRequestConfig().getConnettoreSoggettoErogatore();
}
}
org.openspcoop2.core.config.Connettore c = this.registroServiziReader.getConnettore(this.getConnection(), idSoggetto, nomeRegistro);
if(useRequestInfo) {
if(requestInfo.getRequestConfig().getConnettoreSoggettoErogatore()==null) {
requestInfo.getRequestConfig().setConnettoreSoggettoErogatore(c);
}
}
return c;
}
/* ******** VALIDAZIONE ******** */
public String getDominio(IDSoggetto idSoggetto,String nomeRegistro,IProtocolFactory<?> protocolFactory, RequestInfo requestInfo)
throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null;
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getSoggettoErogatoreConfig()!=null && requestInfo.getRequestConfig().getSoggettoErogatoreIdentificativoPorta()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoErogatoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoErogatoreConfig().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoErogatoreIdentificativoPorta();
}
else if( requestInfo.getRequestConfig().getSoggettoFruitoreConfig()!=null && requestInfo.getRequestConfig().getSoggettoFruitoreIdentificativoPorta()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoFruitoreConfig().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoFruitoreIdentificativoPorta();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo()!=null) {
if(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreIdentificativoPorta()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig().getNome())) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreIdentificativoPorta();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo()!=null) {
if(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreIdentificativoPorta()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig().getNome())) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreIdentificativoPorta();
}
}
return this.registroServiziReader.getDominio(this.getConnection(), idSoggetto, nomeRegistro, protocolFactory);
// il set viene effettuato nei service utils per comprendere se si tratta di fruitore o erogatore
}
public String getImplementazionePdD(IDSoggetto idSoggetto,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null;
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getSoggettoErogatoreConfig()!=null && requestInfo.getRequestConfig().getSoggettoErogatoreImplementazionePdd()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoErogatoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoErogatoreConfig().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoErogatoreImplementazionePdd();
}
else if( requestInfo.getRequestConfig().getSoggettoFruitoreConfig()!=null && requestInfo.getRequestConfig().getSoggettoFruitoreImplementazionePdd()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoFruitoreConfig().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoFruitoreImplementazionePdd();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo()!=null) {
if(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreImplementazionePdd()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig().getNome())) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreImplementazionePdd();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo()!=null) {
if(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreImplementazionePdd()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig().getNome())) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreImplementazionePdd();
}
}
return this.registroServiziReader.getImplementazionePdD(this.getConnection(), idSoggetto, nomeRegistro);
// il set viene effettuato nei service utils per comprendere se si tratta di fruitore o erogatore
}
public String getIdPortaDominio(IDSoggetto idSoggetto,String nomeRegistro, RequestInfo requestInfo)
throws DriverRegistroServiziException{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null;
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getSoggettoErogatoreConfig()!=null && requestInfo.getRequestConfig().getSoggettoErogatorePddReaded()!=null &&
requestInfo.getRequestConfig().getSoggettoErogatorePddReaded() &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoErogatoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoErogatoreConfig().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoErogatorePdd()!=null ? requestInfo.getRequestConfig().getSoggettoErogatorePdd().getNome() : null;
}
else if( requestInfo.getRequestConfig().getSoggettoFruitoreConfig()!=null && requestInfo.getRequestConfig().getSoggettoFruitorePddReaded()!=null &&
requestInfo.getRequestConfig().getSoggettoFruitorePddReaded() &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoFruitoreConfig().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoFruitorePdd()!=null ? requestInfo.getRequestConfig().getSoggettoFruitorePdd().getNome() : null;
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo()!=null) {
if( requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePddReaded()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePddReaded() &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreConfig().getNome()) ) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePdd()!=null ? requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePdd().getNome() : null;
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo()!=null) {
if( requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePddReaded()!=null &&
requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePddReaded() &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreConfig().getNome()) ) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePdd()!=null ? requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePdd().getNome() : null;
}
}
return this.registroServiziReader.getIdPortaDominio(this.getConnection(), idSoggetto, nomeRegistro);
// il set viene effettuato nei service utils per comprendere se si tratta di fruitore o erogatore
}
public RisultatoValidazione validaServizio(IDSoggetto soggettoFruitore,IDServizio idService,String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziPortTypeNotFound{
return this.registroServiziReader.validaServizio(this.getConnection(), soggettoFruitore, idService, nomeRegistro);
}
/* ******** A U T E N T I C A Z I O N E S O G G E T T I ******** */
public Soggetto getSoggettoByCredenzialiBasic(String username, String password, CryptConfig cryptConfig, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSoggettoByCredenzialiBasic(this.getConnection(), username, password, cryptConfig, nomeRegistro);
}
public Soggetto getSoggettoByCredenzialiApiKey(String username, String password, boolean appId, CryptConfig cryptConfig, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSoggettoByCredenzialiApiKey(this.getConnection(), username, password, appId, cryptConfig, nomeRegistro);
}
public Soggetto getSoggettoByCredenzialiSsl(String subject, String issuer, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSoggettoByCredenzialiSsl(this.getConnection(), subject, issuer, nomeRegistro);
}
public Soggetto getSoggettoByCredenzialiSsl(CertificateInfo certificate, boolean strictVerifier, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSoggettoByCredenzialiSsl(this.getConnection(), certificate, strictVerifier, nomeRegistro);
}
public Soggetto getSoggettoByCredenzialiPrincipal(String principal, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getSoggettoByCredenzialiPrincipal(this.getConnection(), principal, nomeRegistro);
}
public IDSoggetto getIdSoggettoByCredenzialiBasic(String username, String password, CryptConfig cryptConfig, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getIdSoggettoByCredenzialiBasic(this.getConnection(), username, password, cryptConfig, nomeRegistro);
}
public IDSoggetto getIdSoggettoByCredenzialiApiKey(String username, String password, boolean appId, CryptConfig cryptConfig, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getIdSoggettoByCredenzialiApiKey(this.getConnection(), username, password, appId, cryptConfig, nomeRegistro);
}
public IDSoggetto getIdSoggettoByCredenzialiSsl(String subject, String issuer, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getIdSoggettoByCredenzialiSsl(this.getConnection(), subject, issuer, nomeRegistro);
}
public IDSoggetto getIdSoggettoByCredenzialiSsl(CertificateInfo certificate, boolean strictVerifier, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getIdSoggettoByCredenzialiSsl(this.getConnection(), certificate, strictVerifier, nomeRegistro);
}
public IDSoggetto getIdSoggettoByCredenzialiPrincipal(String principal, String nomeRegistro)throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getIdSoggettoByCredenzialiPrincipal(this.getConnection(), principal, nomeRegistro);
}
/* ******** P R O P R I E T A ******** */
public Map<String, String> getProprietaConfigurazione(Soggetto soggetto) throws DriverRegistroServiziException {
return this.registroServiziReader.getProprietaConfigurazione(soggetto);
}
/* ******** C E R T I F I C A T I ******** */
public CertificateCheck checkCertificatoSoggettoWithoutCache(long idSoggetto, int sogliaWarningGiorni,
boolean addCertificateDetails, String separator, String newLine) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
return this.registroServiziReader.checkCertificatoSoggetto(null, false,
idSoggetto, sogliaWarningGiorni,
addCertificateDetails, separator, newLine);
}
public CertificateCheck checkCertificatoSoggettoWithoutCache(IDSoggetto idSoggetto, int sogliaWarningGiorni,
boolean addCertificateDetails, String separator, String newLine) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
return this.registroServiziReader.checkCertificatoSoggetto(null, false,
idSoggetto, sogliaWarningGiorni,
addCertificateDetails, separator, newLine);
}
public CertificateCheck checkCertificatiConnettoreHttpsByIdWithoutCache(long idConnettore, int sogliaWarningGiorni, IBYOKUnwrapFactory byokUnwrapFactory,
boolean addCertificateDetails, String separator, String newLine) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
return this.registroServiziReader.checkCertificatiConnettoreHttpsById(null, false,
idConnettore, sogliaWarningGiorni, byokUnwrapFactory,
addCertificateDetails, separator, newLine);
}
public CertificateCheck checkCertificatiModIErogazioneByIdWithoutCache(long idErogazione, int sogliaWarningGiorni, IBYOKUnwrapFactory byokUnwrapFactory,
boolean addCertificateDetails, String separator, String newLine) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
return this.registroServiziReader.checkCertificatiModIErogazioneById(null, false,
idErogazione, sogliaWarningGiorni, byokUnwrapFactory,
addCertificateDetails, separator, newLine);
}
public CertificateCheck checkCertificatiModIFruizioneByIdWithoutCache(long idFruizione, int sogliaWarningGiorni, IBYOKUnwrapFactory byokUnwrapFactory,
boolean addCertificateDetails, String separator, String newLine) throws DriverRegistroServiziException,DriverRegistroServiziNotFound {
return this.registroServiziReader.checkCertificatiModIFruizioneById(null, false,
idFruizione, sogliaWarningGiorni, byokUnwrapFactory,
addCertificateDetails, separator, newLine);
}
/* ******** R I C E R C A E L E M E N T I P R I M I T I V I ******** */
public PortaDominio getPortaDominio(String nome,String nomeRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && nome!=null;
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getSoggettoErogatorePdd()!=null &&
nome.equals(requestInfo.getRequestConfig().getSoggettoErogatorePdd().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoErogatorePdd();
}
else if( requestInfo.getRequestConfig().getSoggettoFruitorePdd()!=null &&
nome.equals(requestInfo.getRequestConfig().getSoggettoFruitorePdd().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoFruitorePdd();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo()!=null) {
if( requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePdd()!=null &&
nome!=null && nome.equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePdd().getNome()) ) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitorePdd();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo()!=null) {
if( requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePdd()!=null &&
nome!=null && nome.equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePdd().getNome()) ) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitorePdd();
}
}
return this.registroServiziReader.getPortaDominio(this.getConnection(), nome, nomeRegistro);
// il set viene effettuato nei service utils per comprendere se si tratta di fruitore o erogatore
}
public Ruolo getRuolo(String nome,String nomeRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && nome!=null;
if(useRequestInfo) {
Ruolo ruolo = requestInfo.getRequestConfig().getRuolo(nome);
if(ruolo!=null) {
return ruolo;
}
}
Ruolo r = this.registroServiziReader.getRuolo(this.getConnection(), nome, nomeRegistro);
if(useRequestInfo && requestInfo!=null) {
requestInfo.getRequestConfig().addRuolo(nome, r,
requestInfo.getIdTransazione());
}
return r;
}
public Ruolo getRuolo(IDRuolo idRuolo,String nomeRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.getRuolo(idRuolo.getNome(), nomeRegistro, requestInfo);
}
public Scope getScope(String nome,String nomeRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && nome!=null;
if(useRequestInfo) {
Scope scope = requestInfo.getRequestConfig().getScope(nome);
if(scope!=null) {
return scope;
}
}
Scope s = this.registroServiziReader.getScope(this.getConnection(), nome, nomeRegistro);
if(useRequestInfo && requestInfo!=null) {
requestInfo.getRequestConfig().addScope(nome, s,
requestInfo.getIdTransazione());
}
return s;
}
public Scope getScope(IDScope idScope,String nomeRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.getScope(idScope.getNome(), nomeRegistro, requestInfo);
}
public Soggetto getSoggetto(IDSoggetto idSoggetto,String nomeRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
Soggetto soggetto = _getSoggettoFromRequestInfo(idSoggetto, requestInfo);
if(soggetto!=null) {
return soggetto;
}
return this.registroServiziReader.getSoggetto(this.getConnection(), idSoggetto, nomeRegistro);
}
static Soggetto _getSoggettoFromRequestInfo(IDSoggetto idSoggetto, RequestInfo requestInfo) {
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idSoggetto!=null;
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getSoggettoErogatoreRegistry()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoErogatoreRegistry().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoErogatoreRegistry().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoErogatoreRegistry();
}
else if( requestInfo.getRequestConfig().getSoggettoFruitoreRegistry()!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestConfig().getSoggettoFruitoreRegistry().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestConfig().getSoggettoFruitoreRegistry().getNome()) ) {
return requestInfo.getRequestConfig().getSoggettoFruitoreRegistry();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo()!=null) {
if(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreRegistry()!=null && idSoggetto!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreRegistry().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreRegistry().getNome())) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTrasportoInfo().getSoggettoFruitoreRegistry();
}
}
if(requestInfo!=null && requestInfo.getRequestThreadContext()!=null && requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo()!=null) {
if(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreRegistry()!=null && idSoggetto!=null &&
idSoggetto.getTipo().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreRegistry().getTipo()) &&
idSoggetto.getNome().equals(requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreRegistry().getNome())) {
return requestInfo.getRequestThreadContext().getRequestFruitoreTokenInfo().getSoggettoFruitoreRegistry();
}
}
return null;
}
public AccordoServizioParteComune getAccordoServizioParteComune(IDAccordo idAccordo,String nomeRegistro,Boolean readContenutiAllegati,Boolean readDatiRegistro, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idAccordo!=null &&
(readContenutiAllegati==null || readContenutiAllegati==false) &&
(readDatiRegistro==null || readDatiRegistro==false);
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getAspc()!=null) {
IDAccordoFactory idAccordoFactory = IDAccordoFactory.getInstance();
String uriAspc = idAccordoFactory.getUriFromAccordo(requestInfo.getRequestConfig().getAspc());
String uriParam = idAccordoFactory.getUriFromIDAccordo(idAccordo);
if(uriAspc.equals(uriParam)) {
return requestInfo.getRequestConfig().getAspc();
}
}
}
AccordoServizioParteComune aspc = this.registroServiziReader.getAccordoServizioParteComune(this.getConnection(), idAccordo, readContenutiAllegati, readDatiRegistro, nomeRegistro);
if(useRequestInfo && requestInfo.getRequestConfig().getAspc()==null) {
requestInfo.getRequestConfig().setAspc(aspc);
}
return aspc;
}
public AccordoServizioParteSpecifica getAccordoServizioParteSpecifica(IDServizio idServizio,String nomeRegistro,Boolean readContenutiAllegati, RequestInfo requestInfo) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
boolean useRequestInfo = requestInfo!=null && requestInfo.getRequestConfig()!=null && idServizio!=null &&
(readContenutiAllegati==null || readContenutiAllegati==false);
if(useRequestInfo) {
if( requestInfo.getRequestConfig().getAsps()!=null) {
IDServizioFactory idServizioFactory = IDServizioFactory.getInstance();
String uriAsps = idServizioFactory.getUriFromAccordo(requestInfo.getRequestConfig().getAsps());
String uriParam = idServizioFactory.getUriFromIDServizio(idServizio);
if(uriAsps.equals(uriParam)) {
return requestInfo.getRequestConfig().getAsps();
}
}
}
AccordoServizioParteSpecifica asps = this.registroServiziReader.getAccordoServizioParteSpecifica(this.getConnection(), idServizio, readContenutiAllegati, nomeRegistro);
if(useRequestInfo && requestInfo.getRequestConfig().getAsps()==null) {
requestInfo.getRequestConfig().setAsps(asps);
}
return asps;
}
public AccordoCooperazione getAccordoCooperazione(IDAccordoCooperazione idAccordo,String nomeRegistro,Boolean readContenutiAllegati) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAccordoCooperazione(this.getConnection(), idAccordo, readContenutiAllegati, nomeRegistro);
}
/* ******** R I C E R C A I D E L E M E N T I P R I M I T I V I ******** */
public List<String> getAllIdPorteDominio(FiltroRicerca filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdPorteDominio(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDRuolo> getAllIdRuoli(FiltroRicercaRuoli filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdRuoli(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDScope> getAllIdScope(FiltroRicercaScope filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdScope(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDSoggetto> getAllIdSoggetti(FiltroRicercaSoggetti filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdSoggetti(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDAccordoCooperazione> getAllIdAccordiCooperazione(FiltroRicercaAccordi filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdAccordiCooperazione(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDAccordo> getAllIdAccordiServizioParteComune(FiltroRicercaAccordi filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdAccordiServizioParteComune(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDPortType> getAllIdPortType(FiltroRicercaPortTypes filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdPortType(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDPortTypeAzione> getAllIdAzionePortType(FiltroRicercaOperations filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdAzionePortType(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDAccordoAzione> getAllIdAzioneAccordo(FiltroRicercaAzioni filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdAzioneAccordo(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDResource> getAllIdResource(FiltroRicercaResources filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdResource(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDServizio> getAllIdServizi(FiltroRicercaServizi filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdServizi(this.getConnection(), filtroRicerca, nomeRegistro);
}
public List<IDFruizione> getAllIdFruizioniServizio(FiltroRicercaFruizioniServizio filtroRicerca,String nomeRegistro) throws DriverRegistroServiziException, DriverRegistroServiziNotFound{
return this.registroServiziReader.getAllIdFruizioniServizio(this.getConnection(), filtroRicerca, nomeRegistro);
}
/* ******** R E P O S I T O R Y O G G E T T I G E N E R I C I ******** */
public Serializable getGenericObject(String keyObject) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.getGenericObject(keyObject);
}
public Serializable pushGenericObject(String keyObject, Serializable object) throws DriverRegistroServiziException,DriverRegistroServiziNotFound{
return this.registroServiziReader.pushGenericObject(keyObject, object);
}
}