ErogazioniUtilities.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */

  20. package org.openspcoop2.web.ctrlstat.servlet.aps.erogazioni;

  21. import java.util.ArrayList;
  22. import java.util.List;

  23. import org.openspcoop2.core.allarmi.constants.RuoloPorta;
  24. import org.openspcoop2.core.config.PortaApplicativa;
  25. import org.openspcoop2.core.config.PortaDelegata;
  26. import org.openspcoop2.core.config.TrasformazioneRegola;
  27. import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
  28. import org.openspcoop2.core.controllo_traffico.constants.RuoloPolicy;
  29. import org.openspcoop2.core.id.IDPortaApplicativa;
  30. import org.openspcoop2.core.id.IDPortaDelegata;
  31. import org.openspcoop2.core.id.IDServizio;
  32. import org.openspcoop2.core.id.IDSoggetto;
  33. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  34. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  35. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  36. import org.openspcoop2.core.registry.Fruitore;
  37. import org.openspcoop2.core.registry.Soggetto;
  38. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  39. import org.openspcoop2.monitor.engine.alarm.wrapper.ConfigurazioneAllarmeBean;
  40. import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
  41. import org.openspcoop2.web.ctrlstat.driver.DriverControlStationException;
  42. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
  43. import org.openspcoop2.web.ctrlstat.servlet.config.ConfigurazioneCore;
  44. import org.openspcoop2.web.ctrlstat.servlet.pa.PorteApplicativeCore;
  45. import org.openspcoop2.web.ctrlstat.servlet.pd.PorteDelegateCore;
  46. import org.openspcoop2.web.ctrlstat.servlet.pdd.PddCore;
  47. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;

  48. /**
  49.  * ErogazioniUtilities
  50.  *
  51.  * @author Andrea Poli (poli@link.it)
  52.  * @author $Author$
  53.  * @version $Rev$, $Date$
  54.  *
  55.  */
  56. public class ErogazioniUtilities {

  57.     public static boolean isChangeAPIEnabled(AccordoServizioParteSpecifica asps, AccordiServizioParteSpecificaCore aspsCore) throws Exception {
  58.        
  59.         IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromAccordo(asps);
  60.         SoggettiCore soggettiCore = new SoggettiCore(aspsCore);
  61.         PddCore pddCore = new PddCore(aspsCore);
  62.         PorteDelegateCore porteDelegateCore = new PorteDelegateCore(aspsCore);
  63.         PorteApplicativeCore porteApplicativeCore = new PorteApplicativeCore(aspsCore);
  64.         ConfigurazioneCore confCore = new ConfigurazioneCore(aspsCore);
  65.            
  66.         List<IDServizio> lIdServizio = new ArrayList<IDServizio>();
  67.         lIdServizio.add(idServizio);
  68.        
  69.         boolean addDefault = true;
  70.         boolean addNotDefault = true;
  71.        
  72.         // Fruizioni
  73.         for (Fruitore fruitore : asps.getFruitoreList()) {
  74.             IDSoggetto idSoggettoFr = new IDSoggetto(fruitore.getTipo(), fruitore.getNome());
  75.             Soggetto soggetto = soggettiCore.getSoggettoRegistro(idSoggettoFr);
  76.             if(!pddCore.isPddEsterna(soggetto.getPortaDominio())){
  77.                
  78.                 List<MappingFruizionePortaDelegata> listNotDefault = porteDelegateCore.getMapping(lIdServizio, !addDefault, addNotDefault);
  79.                 if(listNotDefault!=null && !listNotDefault.isEmpty()) {
  80.                     return false;
  81.                 }
  82.                
  83.                 List<MappingFruizionePortaDelegata> listDefault = porteDelegateCore.getMapping(lIdServizio, addDefault, !addNotDefault);
  84.                 for (MappingFruizionePortaDelegata mappingDefault : listDefault) {
  85.                     IDPortaDelegata idPD = mappingDefault.getIdPortaDelegata();
  86.                     PortaDelegata pd = porteDelegateCore.getPortaDelegata(idPD);
  87.                     if(isChangeAPIEnabled(pd,confCore)==false) {
  88.                         return false;
  89.                     }
  90.                 }
  91.             }  
  92.         }
  93.            
  94.         // Erogazioni
  95.         List<MappingErogazionePortaApplicativa> listNotDefault = porteApplicativeCore.getMapping(lIdServizio, !addDefault, addNotDefault);
  96.         if(listNotDefault!=null && !listNotDefault.isEmpty()) {
  97.             return false;
  98.         }
  99.        
  100.         List<MappingErogazionePortaApplicativa> listDefault = porteApplicativeCore.getMapping(lIdServizio, addDefault, !addNotDefault);
  101.         for (MappingErogazionePortaApplicativa mappingDefault : listDefault) {
  102.             IDPortaApplicativa idPA = mappingDefault.getIdPortaApplicativa();
  103.             PortaApplicativa pa = porteApplicativeCore.getPortaApplicativa(idPA);
  104.             if(isChangeAPIEnabled(pa,confCore)==false) {
  105.                 return false;
  106.             }
  107.         }
  108.            
  109.         return true;
  110.     }
  111.    
  112.     private static boolean isChangeAPIEnabled(PortaDelegata pd, ConfigurazioneCore confCore) throws DriverControlStationException {
  113.        
  114.         if(pd.getTrasformazioni()!=null) {
  115.             if(pd.getTrasformazioni().sizeRegolaList()>0) {
  116.                 for (TrasformazioneRegola regola : pd.getTrasformazioni().getRegolaList()) {
  117.                     if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeAzioneList()>0) {
  118.                         return false;
  119.                     }
  120.                 }
  121.             }
  122.         }
  123.        
  124.         List<AttivazionePolicy> list = confCore.attivazionePolicyList(new ConsoleSearch(true), RuoloPolicy.DELEGATA, pd.getNome());
  125.         if(list!=null && !list.isEmpty()) {
  126.             for (AttivazionePolicy attivazionePolicy : list) {
  127.                 if(attivazionePolicy.getFiltro()!=null && attivazionePolicy.getFiltro().isEnabled() && attivazionePolicy.getFiltro().getAzione()!=null) {
  128.                     return false;
  129.                 }
  130.             }
  131.         }
  132.        
  133.         if(confCore.isConfigurazioneAllarmiEnabled()) {
  134.             List<ConfigurazioneAllarmeBean> listAllarmi = confCore.allarmiList(new ConsoleSearch(true), RuoloPorta.DELEGATA, pd.getNome());
  135.             if(listAllarmi!=null && !listAllarmi.isEmpty()) {
  136.                 for (ConfigurazioneAllarmeBean allarme : listAllarmi) {
  137.                     if(allarme.getFiltro()!=null && allarme.getFiltro().isEnabled() && allarme.getFiltro().getAzione()!=null) {
  138.                         return false;
  139.                     }
  140.                 }
  141.             }
  142.         }
  143.        
  144.         return true;
  145.     }
  146.    
  147.     private static boolean isChangeAPIEnabled(PortaApplicativa pa, ConfigurazioneCore confCore) throws DriverControlStationException {
  148.        
  149.         if(pa.getTrasformazioni()!=null) {
  150.             if(pa.getTrasformazioni().sizeRegolaList()>0) {
  151.                 for (TrasformazioneRegola regola : pa.getTrasformazioni().getRegolaList()) {
  152.                     if(regola.getApplicabilita()!=null && regola.getApplicabilita().sizeAzioneList()>0) {
  153.                         return false;
  154.                     }
  155.                 }
  156.             }
  157.         }
  158.        
  159.         List<AttivazionePolicy> list = confCore.attivazionePolicyList(new ConsoleSearch(true), RuoloPolicy.APPLICATIVA, pa.getNome());
  160.         if(list!=null && !list.isEmpty()) {
  161.             for (AttivazionePolicy attivazionePolicy : list) {
  162.                 if(attivazionePolicy.getFiltro()!=null && attivazionePolicy.getFiltro().isEnabled() && attivazionePolicy.getFiltro().getAzione()!=null) {
  163.                     return false;
  164.                 }
  165.             }
  166.         }
  167.        
  168.         if(confCore.isConfigurazioneAllarmiEnabled()) {
  169.             List<ConfigurazioneAllarmeBean> listAllarmi = confCore.allarmiList(new ConsoleSearch(true), RuoloPorta.APPLICATIVA, pa.getNome());
  170.             if(listAllarmi!=null && !listAllarmi.isEmpty()) {
  171.                 for (ConfigurazioneAllarmeBean allarme : listAllarmi) {
  172.                     if(allarme.getFiltro()!=null && allarme.getFiltro().isEnabled() && allarme.getFiltro().getAzione()!=null) {
  173.                         return false;
  174.                     }
  175.                 }
  176.             }
  177.         }
  178.        
  179.         return true;
  180.     }
  181. }