Converter.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.monitor.rs.server.api.impl.utils;
- import java.sql.Connection;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.lang.StringUtils;
- import org.joda.time.DateTime;
- import org.openspcoop2.core.eventi.constants.TipoSeverita;
- import org.openspcoop2.core.eventi.utils.SeveritaConverter;
- import org.openspcoop2.core.id.IDServizio;
- import org.openspcoop2.core.id.IDServizioApplicativo;
- import org.openspcoop2.core.monitor.rs.server.config.ServerProperties;
- import org.openspcoop2.core.monitor.rs.server.config.SoggettiConfig;
- import org.openspcoop2.core.monitor.rs.server.model.DetailTransazione;
- import org.openspcoop2.core.monitor.rs.server.model.Evento;
- import org.openspcoop2.core.monitor.rs.server.model.InfoImplementazioneApi;
- import org.openspcoop2.core.monitor.rs.server.model.ItemTransazione;
- import org.openspcoop2.core.monitor.rs.server.model.PDNDOrganizationExternalId;
- import org.openspcoop2.core.monitor.rs.server.model.PDNDOrganizationInfo;
- import org.openspcoop2.core.monitor.rs.server.model.PDNDOrganizationInfoItemTransazione;
- import org.openspcoop2.core.monitor.rs.server.model.Riepilogo;
- import org.openspcoop2.core.monitor.rs.server.model.RiepilogoApiItem;
- import org.openspcoop2.core.registry.driver.IDServizioFactory;
- import org.openspcoop2.core.transazioni.CredenzialeMittente;
- import org.openspcoop2.core.transazioni.DumpMessaggio;
- import org.openspcoop2.core.transazioni.constants.TipoMessaggio;
- import org.openspcoop2.core.transazioni.utils.CredenzialiMittente;
- import org.openspcoop2.core.transazioni.utils.credenziali.CredenzialeTokenClient;
- import org.openspcoop2.generic_project.expression.SortOrder;
- import org.openspcoop2.generic_project.utils.ServiceManagerProperties;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.protocol.sdk.constants.RuoloMessaggio;
- import org.openspcoop2.protocol.sdk.diagnostica.DriverMsgDiagnosticiNotFoundException;
- import org.openspcoop2.protocol.sdk.diagnostica.FiltroRicercaDiagnosticiConPaginazione;
- import org.openspcoop2.protocol.sdk.diagnostica.MsgDiagnostico;
- import org.openspcoop2.protocol.sdk.tracciamento.DriverTracciamentoNotFoundException;
- import org.openspcoop2.protocol.sdk.tracciamento.Traccia;
- import org.openspcoop2.utils.UtilsException;
- import org.openspcoop2.utils.beans.BlackListElement;
- import org.openspcoop2.utils.service.beans.DiagnosticoSeveritaEnum;
- import org.openspcoop2.utils.service.beans.ProfiloEnum;
- import org.openspcoop2.utils.service.beans.TransazioneExt;
- import org.openspcoop2.utils.service.beans.TransazioneRuoloEnum;
- import org.openspcoop2.utils.service.beans.utils.ProfiloUtils;
- import org.openspcoop2.utils.service.fault.jaxrs.FaultCode;
- import org.openspcoop2.web.monitor.core.core.PddMonitorProperties;
- import org.openspcoop2.web.monitor.eventi.bean.EventoBean;
- import org.openspcoop2.web.monitor.statistiche.bean.ConfigurazioneGenerale;
- import org.openspcoop2.web.monitor.statistiche.constants.CostantiConfigurazioni;
- import org.openspcoop2.web.monitor.transazioni.bean.TransazioneBean;
- import org.openspcoop2.web.monitor.transazioni.dao.TransazioniService;
- import org.openspcoop2.web.monitor.transazioni.datamodel.TransazioniDM;
- import org.slf4j.Logger;
- /**
- * Converter
- *
- * @author $Author$
- * @version $Rev$, $Date$
- *
- */
- public class Converter {
- public static String toProtocollo(ProfiloEnum profilo) throws UtilsException {
- if(profilo==null) {
- return ServerProperties.getInstance().getProtocolloDefault();
- }
- return ProfiloUtils.toProtocollo(profilo);
- }
-
- public static Integer toOffset(Integer offset) {
- return offset!=null ? offset : 0;
- }
- public static Integer toLimit(Integer limit) {
- return limit!=null ? limit : 25;
- }
- public static SortOrder toSortOrder(String sort) {
- if(StringUtils.isNotEmpty(sort)) {
- if(sort.startsWith("+")) {
- return SortOrder.ASC;
- }
- else if(sort.startsWith("-")) {
- return SortOrder.DESC;
- }
- }
- return SortOrder.DESC;
- }
- public static String toSortField(String sort) {
- if(StringUtils.isNotEmpty(sort)) {
- String sortParam = sort;
- if(sort.startsWith("+") || sort.startsWith("-")) {
- sortParam = sort.substring(1);
- }
- if(TransazioniDM.COL_DATA_LATENZA_TOTALE.equals(sortParam)){
- return sortParam;
- } else if(TransazioniDM.COL_DATA_LATENZA_SERVIZIO.equals(sortParam)){
- return sortParam;
- } else if(TransazioniDM.COL_DATA_INGRESSO_RICHIESTA.equals(sortParam)){
- return sortParam;
- }
- else {
- FaultCode.RICHIESTA_NON_VALIDA.throwException("Sort parameter '"+sort+"' non valido");
- }
- }
- return TransazioniDM.COL_DATA_INGRESSO_RICHIESTA;
- }
-
- public static DetailTransazione toTransazioneExt(TransazioneBean transazioneDB, TransazioniService transazioniService,
- Connection con, ServiceManagerProperties smp,
- Logger log) throws Exception {
- org.openspcoop2.pdd.logger.traccia.Converter converter = new org.openspcoop2.pdd.logger.traccia.Converter(log);
-
- PddMonitorProperties govwayMonitorProperties = PddMonitorProperties.getInstance(log);
-
- Traccia tracciaRichiesta = null;
- try {
- tracciaRichiesta = govwayMonitorProperties.getDriverTracciamento(con,smp).getTraccia(transazioneDB.getIdTransazione(), RuoloMessaggio.RICHIESTA);
- }catch(DriverTracciamentoNotFoundException notFound) {}
-
- Traccia tracciaRisposta = null;
- try {
- tracciaRisposta = govwayMonitorProperties.getDriverTracciamento(con,smp).getTraccia(transazioneDB.getIdTransazione(), RuoloMessaggio.RISPOSTA);
- }catch(DriverTracciamentoNotFoundException notFound) {}
-
- FiltroRicercaDiagnosticiConPaginazione filter = new FiltroRicercaDiagnosticiConPaginazione();
- filter.setIdTransazione(transazioneDB.getIdTransazione());
- List<MsgDiagnostico> messaggiDiagnostici = null;
- try {
- messaggiDiagnostici = govwayMonitorProperties.getDriverMsgDiagnostici(con,smp).getMessaggiDiagnostici(filter);
- }catch(DriverMsgDiagnosticiNotFoundException notFound) {}
- CredenzialiMittente credenzialiMittente = Converter.convertToCredenzialiMittente(transazioneDB);
-
- if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_INGRESSO_DUMP_BINARIO)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_INGRESSO_DUMP_BINARIO);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
- else if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_INGRESSO)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_INGRESSO);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
-
- if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_USCITA_DUMP_BINARIO)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_USCITA_DUMP_BINARIO);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
- else if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_USCITA)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RICHIESTA_USCITA);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
-
- if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_INGRESSO_DUMP_BINARIO)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_INGRESSO_DUMP_BINARIO);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
- else if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_INGRESSO)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_INGRESSO);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
-
- if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_USCITA_DUMP_BINARIO)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_USCITA_DUMP_BINARIO);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
- else if(transazioniService.hasInfoDumpAvailable(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_USCITA)) {
- DumpMessaggio dumpMessaggio = transazioniService.getDumpMessaggio(transazioneDB.getIdTransazione(), null, null, TipoMessaggio.RISPOSTA_USCITA);
- if(dumpMessaggio!=null) {
- transazioneDB.addDumpMessaggio(dumpMessaggio);
- }
- }
-
- TransazioneExt transazioneExt = converter.toTransazioneExt(transazioneDB, credenzialiMittente, tracciaRichiesta, tracciaRisposta, messaggiDiagnostici);
-
- // aggiunto campi supplementari
-
- DetailTransazione detail = new DetailTransazione();
-
- if(transazioneExt.getRichiesta()!=null) {
- detail.setData(transazioneExt.getRichiesta().getDataRicezione());
- }
- if(transazioneExt.getRichiesta()!=null && transazioneExt.getRichiesta().getDataConsegna()!=null &&
- transazioneExt.getRisposta()!=null && transazioneExt.getRisposta().getDataAccettazione()!=null) {
- long dataRisposta = transazioneExt.getRisposta().getDataAccettazione().getMillis();
- long dataRichiesta = transazioneExt.getRichiesta().getDataConsegna().getMillis();
- detail.setLatenzaServizio(dataRisposta-dataRichiesta);
- }
- if(transazioneExt.getRichiesta()!=null && transazioneExt.getRichiesta().getDataAccettazione()!=null &&
- transazioneExt.getRisposta()!=null && transazioneExt.getRisposta().getDataConsegna()!=null) {
- long dataRisposta = transazioneExt.getRisposta().getDataConsegna().getMillis();
- long dataRichiesta = transazioneExt.getRichiesta().getDataAccettazione().getMillis();
- detail.setLatenzaTotale(dataRisposta-dataRichiesta);
- }
-
- String pdndOrganizationName = transazioneDB.getPdndOrganizationName();
- String pdndOrganizationCategory = transazioneDB.getPdndOrganizationCategory();
- String pdndExternalId = transazioneDB.getPdndOrganizationExternalId();
- if(StringUtils.isNotEmpty(pdndOrganizationName) || StringUtils.isNotEmpty(pdndOrganizationCategory) || StringUtils.isNotEmpty(pdndExternalId)) {
- PDNDOrganizationInfo pdndOrganizationInfo = new PDNDOrganizationInfo();
- pdndOrganizationInfo.setNome(pdndOrganizationName);
- pdndOrganizationInfo.setCategoria(pdndOrganizationCategory);
- if(StringUtils.isNotEmpty(pdndExternalId) && pdndExternalId.contains(" ")) {
- try {
- int indexOf = pdndExternalId.indexOf(" ");
- String origin = pdndExternalId.substring(0, indexOf);
- String code = pdndExternalId.replaceFirst(origin+" ","");
- PDNDOrganizationExternalId extId = new PDNDOrganizationExternalId();
- extId.setOrigine(origin);
- extId.setCodice(code);
- pdndOrganizationInfo.setExternalId(extId);
- }
- catch(Exception e) {
- // ignore
- }
- }
- detail.setPdndOrganization(pdndOrganizationInfo);
- }
-
- String richiedente = transazioneDB.getLabelRichiedenteConFruitore();
- if(StringUtils.isNotEmpty(richiedente)) {
- detail.setRichiedente(richiedente);
- }
- String dettaglioErrore = transazioneDB.getDettaglioErrore(messaggiDiagnostici);
- if(StringUtils.isNotEmpty(dettaglioErrore)) {
- detail.setDettaglioErrore(dettaglioErrore);
- }
-
- List<BlackListElement> metodiEsclusi = new ArrayList<>();
- metodiEsclusi.add(new BlackListElement("setData", DateTime.class));
- metodiEsclusi.add(new BlackListElement("setLatenzaServizio", Long.class));
- metodiEsclusi.add(new BlackListElement("setLatenzaTotale", Long.class));
- metodiEsclusi.add(new BlackListElement("setPdndOrganization", PDNDOrganizationInfo.class));
- metodiEsclusi.add(new BlackListElement("setRichiedente", String.class));
- metodiEsclusi.add(new BlackListElement("setDettaglioErrore", String.class));
- org.openspcoop2.utils.beans.BeanUtils.copy(log, detail, transazioneExt, metodiEsclusi, true);
-
- // Se presenti, finiscono come informazione del token in detail.getMittente().getInformazioniToken()
- /*
- if(detail.getMittente()!=null) {
- detail.getMittente().setUtente(null);
- detail.getMittente().setClient(null);
- }
- */
-
- return detail;
- }
-
- public static ItemTransazione toItemTransazione(TransazioneBean transazioneDB, Logger log) throws Exception {
-
- CredenzialiMittente credenzialiMittente = Converter.convertToCredenzialiMittente(transazioneDB);
-
- org.openspcoop2.pdd.logger.traccia.Converter converter = new org.openspcoop2.pdd.logger.traccia.Converter(log);
- if(transazioneDB.getGruppiLabel()!=null && !"".equals(transazioneDB.getGruppiLabel())) {
- // converto voce originale
- transazioneDB.setGruppi(transazioneDB.getGruppiLabel());
- }
- if(transazioneDB.getSocketClientAddress()==null && transazioneDB.getSocketClientAddressLabel()!=null) {
- // converto voce originale
- transazioneDB.setSocketClientAddress(transazioneDB.getSocketClientAddressLabel());
- }
- if(transazioneDB.getTransportClientAddress()==null && transazioneDB.getTransportClientAddressLabel()!=null) {
- // converto voce originale
- transazioneDB.setTransportClientAddress(transazioneDB.getTransportClientAddressLabel());
- }
- TransazioneExt transazione = converter.toTransazioneExt(transazioneDB, credenzialiMittente, null, null, null);
-
- // elimino i campi non previsti in un ItemTransazione
- if(transazione.getRichiesta()!=null) {
- transazione.getRichiesta().setContenutiIngresso(null);
- transazione.getRichiesta().setContenutiUscita(null);
- transazione.getRichiesta().setDuplicatiMessaggio(null);
- transazione.getRichiesta().setTraccia(null);
- transazione.getRichiesta().setDataRicezioneAcquisita(null);
- transazione.getRichiesta().setDataConsegnaEffettuata(null);
- }
- if(transazione.getRisposta()!=null) {
- transazione.getRisposta().setContenutiIngresso(null);
- transazione.getRisposta().setContenutiUscita(null);
- transazione.getRisposta().setDuplicatiMessaggio(null);
- transazione.getRisposta().setTraccia(null);
- transazione.getRisposta().setFaultConsegna(null);
- transazione.getRisposta().setFaultConsegnaFormato(null);
- transazione.getRisposta().setFaultRicezione(null);
- transazione.getRisposta().setFaultRicezioneFormato(null);
- transazione.getRisposta().setDettagliErrore(null);
- transazione.getRisposta().setDataRicezioneAcquisita(null);
- if(transazione.getRisposta().getDataConsegnaEffettuata()!=null) { // inverto
- transazione.getRisposta().setDataConsegna(transazione.getRisposta().getDataConsegnaEffettuata());
- }
- transazione.getRisposta().setDataConsegnaEffettuata(null);
- }
- if(transazione.getApi()!=null) {
- transazione.getApi().setProfiloCollaborazione(null);
- transazione.getApi().setIdAsincrono(null);
- }
- if(transazione.getMittente()!=null) {
- transazione.getMittente().setCredenziali(null);
- transazione.getMittente().setToken(null);
- transazione.getMittente().setInformazioniToken(null);
- }
-
- // aggiunto campi supplementari
- ItemTransazione item = new ItemTransazione();
- if(transazione.getRichiesta()!=null) {
- item.setData(transazione.getRichiesta().getDataRicezione());
- }
- if(transazione.getRichiesta()!=null && transazione.getRichiesta().getDataConsegna()!=null &&
- transazione.getRisposta()!=null && transazione.getRisposta().getDataAccettazione()!=null) {
- long dataRisposta = transazione.getRisposta().getDataAccettazione().getMillis();
- long dataRichiesta = transazione.getRichiesta().getDataConsegna().getMillis();
- item.setLatenzaServizio(dataRisposta-dataRichiesta);
- }
- if(transazione.getRichiesta()!=null && transazione.getRichiesta().getDataAccettazione()!=null &&
- transazione.getRisposta()!=null && transazione.getRisposta().getDataConsegna()!=null) {
- long dataRisposta = transazione.getRisposta().getDataConsegna().getMillis();
- long dataRichiesta = transazione.getRichiesta().getDataAccettazione().getMillis();
- item.setLatenzaTotale(dataRisposta-dataRichiesta);
- }
-
- String pdndOrganizationName = transazioneDB.getPdndOrganizationName();
- if(StringUtils.isNotEmpty(pdndOrganizationName)) {
- PDNDOrganizationInfoItemTransazione pdndOrganizationInfo = new PDNDOrganizationInfoItemTransazione();
- pdndOrganizationInfo.setNome(pdndOrganizationName);
- item.setPdndOrganization(pdndOrganizationInfo);
- }
-
- String richiedente = transazioneDB.getLabelRichiedenteConFruitore();
- if(StringUtils.isNotEmpty(richiedente)) {
- item.setRichiedente(richiedente);
- }
-
- List<BlackListElement> metodiEsclusi = new ArrayList<>();
- metodiEsclusi.add(new BlackListElement("setData", DateTime.class));
- metodiEsclusi.add(new BlackListElement("setLatenzaServizio", Long.class));
- metodiEsclusi.add(new BlackListElement("setLatenzaTotale", Long.class));
- metodiEsclusi.add(new BlackListElement("setPdndOrganization", PDNDOrganizationInfoItemTransazione.class));
- metodiEsclusi.add(new BlackListElement("setRichiedente", String.class));
- org.openspcoop2.utils.beans.BeanUtils.copy(log, item, transazione, metodiEsclusi, true );
-
- return item;
- }
-
- private static CredenzialiMittente convertToCredenzialiMittente(TransazioneBean transazioneDB) {
- CredenzialiMittente credenzialiMittente = new CredenzialiMittente();
- if(transazioneDB.getTrasportoMittenteLabel()!=null) {
- CredenzialeMittente credenziale = new CredenzialeMittente();
- credenziale.setCredenziale(transazioneDB.getTrasportoMittenteLabel());
- credenzialiMittente.setTrasporto(credenziale);
- }
- if(transazioneDB.getTokenSubjectLabel()!=null) {
- CredenzialeMittente credenziale = new CredenzialeMittente();
- credenziale.setCredenziale(transazioneDB.getTokenSubjectLabel());
- credenzialiMittente.setTokenSubject(credenziale);
- }
- if(transazioneDB.getTokenIssuerLabel()!=null) {
- CredenzialeMittente credenziale = new CredenzialeMittente();
- credenziale.setCredenziale(transazioneDB.getTokenIssuerLabel());
- credenzialiMittente.setTokenIssuer(credenziale);
- }
- if(transazioneDB.getTokenClientIdLabel()!=null) {
- CredenzialeMittente credenziale = new CredenzialeMittente();
- String clientId = transazioneDB.getTokenClientIdLabel();
- IDServizioApplicativo idSA = transazioneDB.getTokenClient();
- if(idSA!=null) {
- CredenzialeTokenClient credToken = new CredenzialeTokenClient(clientId, idSA);
- try {
- credenziale.setCredenziale(credToken.getCredenziale());
- }catch(Throwable t) {
- credenziale.setCredenziale(clientId);
- }
- }
- else {
- credenziale.setCredenziale(clientId);
- }
- credenzialiMittente.setTokenClientId(credenziale);
- }
- if(transazioneDB.getTokenUsernameLabel()!=null) {
- CredenzialeMittente credenziale = new CredenzialeMittente();
- credenziale.setCredenziale(transazioneDB.getTokenUsernameLabel());
- credenzialiMittente.setTokenUsername(credenziale);
- }
- if(transazioneDB.getTokenMailLabel()!=null) {
- CredenzialeMittente credenziale = new CredenzialeMittente();
- credenziale.setCredenziale(transazioneDB.getTokenMailLabel());
- credenzialiMittente.setTokenEMail(credenziale);
- }
- return credenzialiMittente;
- }
-
- public static Evento toEvento(EventoBean eventoDB, Logger log) throws Exception {
- Evento evento = new Evento();
-
- if(eventoDB.getSeverita()>=0) {
- TipoSeverita tipo = SeveritaConverter.toSeverita(eventoDB.getSeverita());
- evento.setSeverita(Enums.toDiagnosticoSeverita.get(tipo));
- }
- evento.setOrigine(eventoDB.getIdConfigurazione());
- if(eventoDB.getOraRegistrazione()!=null) {
- evento.setOraRegistrazione(new DateTime(eventoDB.getOraRegistrazione().getTime()));
- }
-
- List<BlackListElement> metodiEsclusi = new ArrayList<>();
- metodiEsclusi.add(new BlackListElement("setSeverita", DiagnosticoSeveritaEnum.class));
- metodiEsclusi.add(new BlackListElement("setOrigine", String.class));
- metodiEsclusi.add(new BlackListElement("setOraRegistrazione", DateTime.class));
- org.openspcoop2.utils.beans.BeanUtils.copy(log, evento, eventoDB, metodiEsclusi, true);
- return evento;
- }
-
- public static RiepilogoApiItem toRiepilogoApiItem(ConfigurazioneGenerale configurazioneDB, Logger log) throws Exception {
- RiepilogoApiItem riepilogo = new RiepilogoApiItem();
- riepilogo.setErogatore(configurazioneDB.getErogatore());
- riepilogo.setFruitore(configurazioneDB.getFruitore());
-
- String nomeAPI = configurazioneDB.getServizio();
- if(nomeAPI!=null) {
- String [] tmp = nomeAPI.split(" v");
- String tipoNome = tmp[0];
- if(tipoNome.contains("/")) {
- riepilogo.setTipo(tipoNome.split("/")[0]);
- riepilogo.setNome(tipoNome.split("/")[1]);
- }
- else {
- riepilogo.setNome(tipoNome);
- }
- String versione = tmp[1];
- riepilogo.setVersione(Integer.parseInt(versione));
- }
-
- return riepilogo;
- }
-
- public static Riepilogo toRiepilogo(List<ConfigurazioneGenerale> listDB_infoGenerali_right, List<ConfigurazioneGenerale> listDB_infoServizi_left ,
- ConfigurazioneGenerale soggettiOperativi, Logger log) throws Exception {
- Riepilogo riepilogo = new Riepilogo();
-
- if(listDB_infoGenerali_right!=null && !listDB_infoGenerali_right.isEmpty()) {
- for (ConfigurazioneGenerale configurazioneGenerale : listDB_infoGenerali_right) {
- if(CostantiConfigurazioni.CONF_SOGGETTI_ESTERNI_LABEL.equals(configurazioneGenerale.getLabel())) {
- riepilogo.setSoggettiDominioEsterno(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- else if(CostantiConfigurazioni.CONF_SOGGETTI_OPERATIVI_LABEL.equals(configurazioneGenerale.getLabel())) {
- riepilogo.setSoggettiDominioInterno(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- else if(CostantiConfigurazioni.CONF_SERVIZI_APPLICATIVI_LABEL.equals(configurazioneGenerale.getLabel())) {
- riepilogo.setApplicativi(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- }
- }
-
- if(listDB_infoServizi_left!=null && !listDB_infoServizi_left.isEmpty()) {
- for (ConfigurazioneGenerale configurazioneGenerale : listDB_infoServizi_left) {
- if(CostantiConfigurazioni.CONF_ASPC_LABEL.equals(configurazioneGenerale.getLabel())) {
- riepilogo.setApi(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- else if(CostantiConfigurazioni.CONF_ASPS_LABEL.equals(configurazioneGenerale.getLabel())) {
- riepilogo.setErogazioni(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- else if(CostantiConfigurazioni.CONF_FRUIZIONI_SERVIZIO_LABEL.equals(configurazioneGenerale.getLabel())) {
- riepilogo.setFruizioni(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- }
- }
-
- if(riepilogo.getSoggettiDominioInterno()==null) {
- // mutitenant disabilitato
- if(soggettiOperativi!=null) {
- riepilogo.setSoggettiDominioInterno(Integer.valueOf(soggettiOperativi.getValue()));
- }
- }
-
- return riepilogo;
- }
-
- public static InfoImplementazioneApi toInfoImplementazioneApi(List<ConfigurazioneGenerale> listDB_infoServizi_left , Logger log) throws Exception {
- InfoImplementazioneApi info = new InfoImplementazioneApi();
-
- if(listDB_infoServizi_left!=null && !listDB_infoServizi_left.isEmpty()) {
- for (ConfigurazioneGenerale configurazioneGenerale : listDB_infoServizi_left) {
- if(CostantiConfigurazioni.CONF_ASPS_LABEL.equals(configurazioneGenerale.getLabel())) {
- info.setErogazioni(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- else if(CostantiConfigurazioni.CONF_FRUIZIONI_SERVIZIO_LABEL.equals(configurazioneGenerale.getLabel())) {
- info.setFruizioni(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- else if(CostantiConfigurazioni.CONF_AZIONI_LABEL.equals(configurazioneGenerale.getLabel())) {
- info.setAzioni(Integer.valueOf(configurazioneGenerale.getValue()));
- }
- }
- }
-
- return info;
- }
-
- public static IDServizio toIDServizio(TransazioneRuoloEnum tipo, ProfiloEnum profilo, String soggetto,
- String soggettoRemoto, String nomeServizio, String tipoServizio, Integer versioneServizio) throws Exception {
- String protocollo = Converter.toProtocollo(profilo);
- ProtocolFactoryManager protocolFactoryManager = ProtocolFactoryManager.getInstance();
- String tipoSoggetto = protocolFactoryManager.getDefaultOrganizationTypes().get(protocollo);
- String tipoServizioEffettivo = tipoServizio !=null ? tipoServizio : protocolFactoryManager._getServiceTypes().get(protocollo).get(0);
- String nomeSoggettoLocale = soggetto;
- if(nomeSoggettoLocale==null) {
- ServerProperties serverProperties = ServerProperties.getInstance();
- if(serverProperties.useSoggettoDefault()) {
- nomeSoggettoLocale = serverProperties.getSoggettoDefaultIfEnabled(protocollo);
- }
- else {
- throw FaultCode.RICHIESTA_NON_VALIDA.toException("Soggetto locale non indicato; parametro obbligatorio");
- }
- }
- if(!SoggettiConfig.existsIdentificativoPorta(tipoSoggetto, nomeSoggettoLocale)) {
- throw FaultCode.RICHIESTA_NON_VALIDA.toException("Il soggetto locale indicato non esiste");
- }
- String nomeSoggettoErogatore = null;
- switch (tipo) {
- case EROGAZIONE:
- nomeSoggettoErogatore = nomeSoggettoLocale;
- break;
- case FRUIZIONE:
- if(StringUtils.isNotBlank(soggettoRemoto)) {
- nomeSoggettoErogatore = soggettoRemoto;
- }
- else {
- FaultCode.RICHIESTA_NON_VALIDA.throwException("Parametro 'soggettoRemoto' รจ obbligatorio per il dettaglio di una fruizione");
- }
- break;
- default:
- break;
- }
- IDServizio idServizio =
- IDServizioFactory.getInstance().getIDServizioFromValues(tipoServizioEffettivo, nomeServizio, tipoSoggetto, nomeSoggettoErogatore,
- versioneServizio==null ? 1 : versioneServizio);
- return idServizio;
- }
- }