ConfigurazionePluginsTipoPluginUtils.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.web.ctrlstat.servlet.config;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.lang.StringUtils;
- import org.openspcoop2.core.commons.Filtri;
- import org.openspcoop2.core.commons.ISearch;
- import org.openspcoop2.core.commons.SearchUtils;
- import org.openspcoop2.core.config.constants.PluginCostanti;
- import org.openspcoop2.core.plugins.Plugin;
- import org.openspcoop2.core.plugins.PluginProprietaCompatibilita;
- import org.openspcoop2.core.plugins.constants.TipoPlugin;
- import org.openspcoop2.pdd.core.dynamic.DynamicHelperCostanti;
- import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
- import org.openspcoop2.web.lib.mvc.DataElement;
- import org.openspcoop2.web.lib.mvc.DataElementInfo;
- import org.openspcoop2.web.lib.mvc.DataElementType;
- import org.openspcoop2.web.lib.mvc.PageData;
- import org.slf4j.Logger;
- /**
- * ConfigurazionePluginsTipoPluginUtils
- *
- * @author Poli Andrea (poli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class ConfigurazionePluginsTipoPluginUtils {
-
- private ConfigurazionePluginsTipoPluginUtils() {}
- public static final boolean ADD_TRANSAZIONI = false;
- public static final boolean ADD_RICERCHE = false;
- public static final boolean ADD_STATISTICHE = false;
-
- public static List<String> getValuesTipoPlugin(boolean addAllarmi) {
- List<String> valori = new ArrayList<>();
-
- valori.add(TipoPlugin.AUTENTICAZIONE.toString());
-
- valori.add(TipoPlugin.AUTORIZZAZIONE.toString());
- valori.add(TipoPlugin.AUTORIZZAZIONE_CONTENUTI.toString());
-
- valori.add(TipoPlugin.RATE_LIMITING.toString());
-
- if(addAllarmi) {
- valori.add(TipoPlugin.ALLARME.toString());
- }
-
- valori.add(TipoPlugin.INTEGRAZIONE.toString());
-
- valori.add(TipoPlugin.CONNETTORE.toString());
-
- valori.add(TipoPlugin.BEHAVIOUR.toString());
-
- valori.add(TipoPlugin.MESSAGE_HANDLER.toString());
- valori.add(TipoPlugin.SERVICE_HANDLER.toString());
-
- valori.add(TipoPlugin.TOKEN_DYNAMIC_DISCOVERY.toString());
-
- valori.add(TipoPlugin.TOKEN_VALIDAZIONE.toString());
-
- valori.add(TipoPlugin.TOKEN_NEGOZIAZIONE.toString());
-
- valori.add(TipoPlugin.ATTRIBUTE_AUTHORITY.toString());
-
- if(ADD_RICERCHE) {
- valori.add(TipoPlugin.RICERCA.toString());
- }
- if(ADD_STATISTICHE) {
- valori.add(TipoPlugin.STATISTICA.toString());
- }
- if(ADD_TRANSAZIONI) {
- valori.add(TipoPlugin.TRANSAZIONE.toString());
- }
-
- return valori;
- }
-
- public static List<String> getLabelsTipoPlugin(boolean addAllarmi) {
- List<String> labels = new ArrayList<>();
- List<String> values = getValuesTipoPlugin(addAllarmi);
-
- for (String value : values) {
- String label = tipoPluginToLabel(TipoPlugin.toEnumConstant(value));
- if(label != null) {
- labels.add(label);
- }
- }
-
- return labels;
- }
- public static String tipoPluginToLabel(TipoPlugin value) {
- switch (value) {
- case ALLARME:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_ALLARME;
- case AUTENTICAZIONE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_AUTENTICAZIONE;
- case AUTORIZZAZIONE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_AUTORIZZAZIONE;
- case AUTORIZZAZIONE_CONTENUTI:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_AUTORIZZAZIONE_CONTENUTI;
- case BEHAVIOUR:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_BEHAVIOUR;
- case CONNETTORE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_CONNETTORE;
- case INTEGRAZIONE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_INTEGRAZIONE;
- case MESSAGE_HANDLER:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_MESSAGE_HANDLER;
- case RATE_LIMITING:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_RATE_LIMITING;
- case RICERCA:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_RICERCA;
- case SERVICE_HANDLER:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_SERVICE_HANDLER;
- case STATISTICA:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_STATISTICA;
- case TRANSAZIONE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_TRANSAZIONE;
- case TOKEN_DYNAMIC_DISCOVERY:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_TOKEN_DYNAMIC_DISCOVERY;
- case TOKEN_VALIDAZIONE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_TOKEN_VALIDAZIONE;
- case TOKEN_NEGOZIAZIONE:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_TOKEN_NEGOZIAZIONE;
- case ATTRIBUTE_AUTHORITY:
- return ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_ARCHIVI_CLASSI_PLUGIN_SELEZIONATE_ATTRIBUTE_AUTHORITY;
- }
- return null;
- }
-
- public static String getApplicabilitaClassePlugin(Plugin plugin) {
- if(plugin.sizePluginProprietaCompatibilitaList() > 0) {
- TipoPlugin tipoPlugin = TipoPlugin.toEnumConstant(plugin.getTipoPlugin());
-
- StringBuilder sb = new StringBuilder();
-
- switch (tipoPlugin) {
- case AUTENTICAZIONE:
- case AUTORIZZAZIONE:
- case AUTORIZZAZIONE_CONTENUTI:
- case INTEGRAZIONE:
- // una property con nome = Ruolo
- for (PluginProprietaCompatibilita prop : plugin.getPluginProprietaCompatibilitaList()) {
- if(sb.length() > 0)
- sb.append(", ");
-
- if(PluginCostanti.FILTRO_RUOLO_VALORE_ENTRAMBI.equals(prop.getValore())) {
- sb.append(PluginCostanti.FILTRO_RUOLO_LABEL_ENTRAMBI);
- }
- else {
- sb.append(prop.getValore());
- }
- }
- return sb.toString();
- case SERVICE_HANDLER:
- // nome handler
- for (PluginProprietaCompatibilita prop : plugin.getPluginProprietaCompatibilitaList()) {
- if(sb.length() > 0)
- sb.append(", ");
-
- if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_INIT.equalsIgnoreCase(prop.getValore())) {
- sb.append(PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_INIT);
- }
- else if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_EXIT.equalsIgnoreCase(prop.getValore())) {
- sb.append(PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_EXIT);
- }
- else if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_INTEGRATION_MANAGER_REQUEST.equalsIgnoreCase(prop.getValore())) {
- sb.append(PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_INTEGRATION_MANAGER_REQUEST);
- }
- else if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_INTEGRATION_MANAGER_RESPONSE.equalsIgnoreCase(prop.getValore())) {
- sb.append(PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_INTEGRATION_MANAGER_RESPONSE);
- }
- else {
- sb.append(prop.getValore());
- }
- }
- return sb.toString();
- case MESSAGE_HANDLER:
- // message handler e ruolo messa ge handler
- String tipoMessaggio = null;
- String faseProcessamento = null;
- for (PluginProprietaCompatibilita prop : plugin.getPluginProprietaCompatibilitaList()) {
- if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_NOME.equalsIgnoreCase(prop.getNome())) {
- if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_PRE_IN.equalsIgnoreCase(prop.getValore())) {
- faseProcessamento =PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_PRE_IN_SHORT;
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_IN.equalsIgnoreCase(prop.getValore())) {
- faseProcessamento =PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_IN_SHORT;
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_IN_PROTOCOL_INFO.equalsIgnoreCase(prop.getValore())) {
- faseProcessamento =PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_IN_PROTOCOL_INFO_SHORT;
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_OUT.equalsIgnoreCase(prop.getValore())) {
- faseProcessamento =PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_OUT_SHORT;
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_POST_OUT.equalsIgnoreCase(prop.getValore())) {
- faseProcessamento =PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_POST_OUT_SHORT;
- }
- else {
- faseProcessamento =prop.getValore();
- }
- }
- else {
- if(PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORE_RICHIESTA.equals(prop.getValore())) {
- tipoMessaggio = PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_LABEL_RICHIESTA;
- }
- else {
- tipoMessaggio = PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_LABEL_RISPOSTA;
- }
- }
- }
- if(sb.length() > 0)
- sb.append(", ");
-
- sb.append(tipoMessaggio).append(" (").append(faseProcessamento).append(")");
- return sb.toString();
- case ALLARME:
- // una property con nome = Applicabilita
- for (PluginProprietaCompatibilita prop : plugin.getPluginProprietaCompatibilitaList()) {
- if(sb.length() > 0)
- sb.append(", ");
-
- if(PluginCostanti.FILTRO_APPLICABILITA_VALORE_IMPLEMENTAZIONE_API.equals(prop.getValore())) {
- sb.append(PluginCostanti.FILTRO_APPLICABILITA_LABEL_IMPLEMENTAZIONE_API);
- }
- else {
- sb.append(prop.getValore());
- }
- }
- return sb.toString();
- case BEHAVIOUR:
- case CONNETTORE:
- case RATE_LIMITING:
- case RICERCA:
- case STATISTICA:
- case TRANSAZIONE:
- case TOKEN_DYNAMIC_DISCOVERY:
- case TOKEN_VALIDAZIONE:
- case TOKEN_NEGOZIAZIONE:
- case ATTRIBUTE_AUTHORITY:
- return null;
- }
- }
-
- return null;
- }
-
- public static TipoPlugin getTipoPluginDefault() {
- return null;
- }
-
- public static List<PluginProprietaCompatibilita> getApplicabilitaClassePlugin(TipoPlugin tipoPlugin, String ruolo, String shTipo, String mhTipo, String mhRuolo, String applicabilita) {
- List<PluginProprietaCompatibilita> lista = new ArrayList<>();
-
- switch (tipoPlugin) {
- case AUTENTICAZIONE:
- case AUTORIZZAZIONE:
- case AUTORIZZAZIONE_CONTENUTI:
- case INTEGRAZIONE:
- PluginProprietaCompatibilita propRuolo = new PluginProprietaCompatibilita();
- propRuolo.setNome(PluginCostanti.FILTRO_RUOLO_NOME);
- propRuolo.setValore(ruolo);
-
- lista.add(propRuolo);
- break;
- case SERVICE_HANDLER:
- PluginProprietaCompatibilita propShTipo = new PluginProprietaCompatibilita();
-
- propShTipo.setNome(PluginCostanti.FILTRO_SERVICE_HANDLER_NOME);
- propShTipo.setValore(shTipo);
-
- lista.add(propShTipo);
- break;
- case MESSAGE_HANDLER:
- PluginProprietaCompatibilita propMhTipo = new PluginProprietaCompatibilita();
-
- propMhTipo.setNome(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_NOME);
- propMhTipo.setValore(mhTipo);
-
- lista.add(propMhTipo);
-
- PluginProprietaCompatibilita propMhRuolo = new PluginProprietaCompatibilita();
-
- propMhRuolo.setNome(PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_NOME);
- propMhRuolo.setValore(mhRuolo);
-
- lista.add(propMhRuolo);
- break;
- case ALLARME:
- PluginProprietaCompatibilita propApplicabilita = new PluginProprietaCompatibilita();
- propApplicabilita.setNome(PluginCostanti.FILTRO_APPLICABILITA_NOME);
- propApplicabilita.setValore(applicabilita);
-
- lista.add(propApplicabilita);
- break;
- case BEHAVIOUR:
- case CONNETTORE:
- case RATE_LIMITING:
- case RICERCA:
- case STATISTICA:
- case TRANSAZIONE:
- case TOKEN_DYNAMIC_DISCOVERY:
- case TOKEN_VALIDAZIONE:
- case TOKEN_NEGOZIAZIONE:
- case ATTRIBUTE_AUTHORITY:
- break;
- }
-
- return lista;
- }
-
- public static void addInfoClassePlugin(DataElement de, TipoPlugin tipoPlugin, String ruolo, String shTipo, String mhTipo, String mhRuolo,
- boolean integrationManagerEnabled) {
-
- String titolo = ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_CLASS_NAME;
- DataElementInfo info = new DataElementInfo(titolo);
-
- String infoSingola = DynamicHelperCostanti.PLUGIN_CLASSNAME_INFO_SINGOLA;
- String infoMultiplaAnd = DynamicHelperCostanti.PLUGIN_CLASSNAME_INFO_MULTIPLA_AND;
- String infoMultiplaOr = DynamicHelperCostanti.PLUGIN_CLASSNAME_INFO_MULTIPLA_OR;
-
- List<String> listBody = new ArrayList<>();
-
- switch (tipoPlugin) {
- case AUTENTICAZIONE:
-
- if(ruolo==null || StringUtils.isEmpty(ruolo) || !PluginCostanti.FILTRO_RUOLO_VALORI.contains(ruolo)) {
- ruolo = PluginCostanti.FILTRO_RUOLO_VALORI.get(0);
- }
-
- if(Filtri.FILTRO_RUOLO_VALORE_EROGAZIONE.equals(ruolo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.autenticazione.pa.IAutenticazionePortaApplicativa.class.getName());
- }
- else if(Filtri.FILTRO_RUOLO_VALORE_FRUIZIONE.equals(ruolo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.autenticazione.pd.IAutenticazionePortaDelegata.class.getName());
- }
- else {
- info.setHeaderBody(infoMultiplaAnd);
- listBody.add(org.openspcoop2.pdd.core.autenticazione.pa.IAutenticazionePortaApplicativa.class.getName());
- listBody.add(org.openspcoop2.pdd.core.autenticazione.pd.IAutenticazionePortaDelegata.class.getName());
- }
- break;
- case AUTORIZZAZIONE:
-
- if(ruolo==null || StringUtils.isEmpty(ruolo) || !PluginCostanti.FILTRO_RUOLO_VALORI.contains(ruolo)) {
- ruolo = PluginCostanti.FILTRO_RUOLO_VALORI.get(0);
- }
-
- if(Filtri.FILTRO_RUOLO_VALORE_EROGAZIONE.equals(ruolo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pa.IAutorizzazionePortaApplicativa.class.getName());
- }
- else if(Filtri.FILTRO_RUOLO_VALORE_FRUIZIONE.equals(ruolo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pd.IAutorizzazionePortaDelegata.class.getName());
- }
- else {
- info.setHeaderBody(infoMultiplaAnd);
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pa.IAutorizzazionePortaApplicativa.class.getName());
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pd.IAutorizzazionePortaDelegata.class.getName());
- }
- break;
- case AUTORIZZAZIONE_CONTENUTI:
-
- if(ruolo==null || StringUtils.isEmpty(ruolo) || !PluginCostanti.FILTRO_RUOLO_VALORI.contains(ruolo)) {
- ruolo = PluginCostanti.FILTRO_RUOLO_VALORI.get(0);
- }
-
- if(Filtri.FILTRO_RUOLO_VALORE_EROGAZIONE.equals(ruolo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pa.IAutorizzazioneContenutoPortaApplicativa.class.getName());
- }
- else if(Filtri.FILTRO_RUOLO_VALORE_FRUIZIONE.equals(ruolo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pd.IAutorizzazioneContenutoPortaDelegata.class.getName());
- }
- else {
- info.setHeaderBody(infoMultiplaAnd);
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pa.IAutorizzazioneContenutoPortaApplicativa.class.getName());
- listBody.add(org.openspcoop2.pdd.core.autorizzazione.pd.IAutorizzazioneContenutoPortaDelegata.class.getName());
- }
- break;
- case INTEGRAZIONE:
-
- if(ruolo==null || StringUtils.isEmpty(ruolo) || !PluginCostanti.FILTRO_RUOLO_VALORI.contains(ruolo)) {
- ruolo = PluginCostanti.FILTRO_RUOLO_VALORI.get(0);
- }
-
- if(Filtri.FILTRO_RUOLO_VALORE_EROGAZIONE.equals(ruolo)) {
- info.setHeaderBody(infoMultiplaOr);
- listBody.add(org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePA.class.getName());
- listBody.add(org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePASoap.class.getName());
- }
- else if(Filtri.FILTRO_RUOLO_VALORE_FRUIZIONE.equals(ruolo)) {
- info.setHeaderBody(infoMultiplaOr);
- listBody.add(org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePD.class.getName());
- listBody.add(org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePDSoap.class.getName());
- }
- else {
- info.setHeaderBody(infoMultiplaAnd);
- listBody.add(org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePA.class.getName() + "(o versione Soap)");
- listBody.add(org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePD.class.getName() + "(o versione Soap)");
- }
- break;
- case RATE_LIMITING:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.controllo_traffico.plugins.IRateLimiting.class.getName());
- break;
- case CONNETTORE:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.connettori.IConnettore.class.getName());
- break;
- case ALLARME:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.monitor.sdk.plugins.IAlarmProcessing.class.getName());
- break;
- case BEHAVIOUR:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.behaviour.IBehaviour.class.getName());
- break;
- case SERVICE_HANDLER:{
-
- List<String> values = integrationManagerEnabled ? PluginCostanti.FILTRO_SERVICE_HANDLER_VALORI_CON_INTEGRATION_MANAGER : PluginCostanti.FILTRO_SERVICE_HANDLER_VALORI_SENZA_INTEGRATION_MANAGER;
- if(shTipo==null || StringUtils.isEmpty(shTipo) || !values.contains(shTipo)) {
- shTipo = values.get(0);
- }
-
- if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_INIT.equals(shTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.InitHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_EXIT.equals(shTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.ExitHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_INTEGRATION_MANAGER_REQUEST.equals(shTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.IntegrationManagerRequestHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_SERVICE_HANDLER_VALORE_INTEGRATION_MANAGER_RESPONSE.equals(shTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.IntegrationManagerResponseHandler.class.getName());
- }
- break;
- }
- case MESSAGE_HANDLER:{
-
- if(mhRuolo==null || StringUtils.isEmpty(mhRuolo) || !PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORI.contains(mhRuolo)) {
- mhRuolo = PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORI.get(0);
- }
- boolean isRisposta = PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORE_RISPOSTA.equals(mhRuolo);
- List<String> values = isRisposta ? PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORI_RISPOSTA : PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORI_RICHIESTA;
- if(mhTipo==null || StringUtils.isEmpty(mhTipo) || !values.contains(mhTipo)) {
- mhTipo = values.get(0);
- }
-
- if(PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORE_RICHIESTA.equals(mhRuolo)) {
- if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_PRE_IN.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.PreInRequestHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_IN.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.InRequestHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_IN_PROTOCOL_INFO.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.InRequestProtocolHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_OUT.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.OutRequestHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_POST_OUT.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.PostOutRequestHandler.class.getName());
- }
- }
- else {
- if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_PRE_IN.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.PreInResponseHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_IN.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.InResponseHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_OUT.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.OutResponseHandler.class.getName());
- }
- else if(PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORE_POST_OUT.equals(mhTipo)) {
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.handlers.PostOutResponseHandler.class.getName());
- }
- }
- break;
- }
- case RICERCA:
- case STATISTICA:
- case TRANSAZIONE:
- break;
- case TOKEN_DYNAMIC_DISCOVERY:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.token.parser.IDynamicDiscoveryParser.class.getName());
- break;
- case TOKEN_VALIDAZIONE:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.token.parser.ITokenParser.class.getName());
- break;
- case TOKEN_NEGOZIAZIONE:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.token.parser.INegoziazioneTokenParser.class.getName());
- break;
- case ATTRIBUTE_AUTHORITY:
- info.setHeaderBody(infoSingola);
- listBody.add(org.openspcoop2.pdd.core.token.attribute_authority.IRetrieveAttributeAuthorityResponseParser.class.getName());
- break;
- }
-
- if(!listBody.isEmpty()) {
- info.setListBody(listBody);
- de.setInfo(info);
- }
-
- }
-
- public static List<DataElement> getSezioneDinamicaClassePlugin(List<DataElement> dati, TipoPlugin tipoPlugin, String ruolo, String shTipo, String mhTipo, String mhRuolo, String applicabilita,
- boolean integrationManagerEnabled) {
- switch (tipoPlugin) {
- case AUTENTICAZIONE:
- case AUTORIZZAZIONE:
- case AUTORIZZAZIONE_CONTENUTI:
- case INTEGRAZIONE:
- DataElement deRuolo = new DataElement();
- deRuolo.setLabel(ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_RUOLO);
- deRuolo.setLabels(PluginCostanti.FILTRO_RUOLO_LABELS);
- deRuolo.setValues(PluginCostanti.FILTRO_RUOLO_VALORI);
- deRuolo.setType(DataElementType.SELECT);
- deRuolo.setName(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_RUOLO);
- deRuolo.setSelected(ruolo);
- deRuolo.setPostBack(true); // serve per 'info' del className
- dati.add(deRuolo);
-
- break;
- case SERVICE_HANDLER:{
- DataElement deShTipo = new DataElement();
- deShTipo.setLabel(ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_SERVICE_HANDLER);
- List<String> values = integrationManagerEnabled ? PluginCostanti.FILTRO_SERVICE_HANDLER_VALORI_CON_INTEGRATION_MANAGER : PluginCostanti.FILTRO_SERVICE_HANDLER_VALORI_SENZA_INTEGRATION_MANAGER;
- List<String> labels = integrationManagerEnabled ? PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_CON_INTEGRATION_MANAGER : PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_SENZA_INTEGRATION_MANAGER;
- deShTipo.setLabels(labels);
- deShTipo.setValues(values);
- deShTipo.setType(DataElementType.SELECT);
- deShTipo.setName(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_SERVICE_HANDLER);
- deShTipo.setSelected(shTipo);
- deShTipo.setPostBack(true); // serve per 'info' del className
- dati.add(deShTipo);
- break;
- }
- case MESSAGE_HANDLER:{
-
- DataElement deMhRuolo = new DataElement();
-
- deMhRuolo.setLabel(ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_RUOLO_MESSAGE_HANDLER);
- deMhRuolo.setLabels(PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_LABELS);
- deMhRuolo.setValues(PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORI);
- deMhRuolo.setType(DataElementType.SELECT);
- deMhRuolo.setName(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_RUOLO_MESSAGE_HANDLER);
- deMhRuolo.setSelected(mhRuolo);
- deMhRuolo.setPostBack(true); // serve per 'info' del className
- dati.add(deMhRuolo);
-
- DataElement deMhTipo = new DataElement();
- deMhTipo.setLabel(ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_FASE_MESSAGE_HANDLER);
- boolean isRisposta = PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORE_RISPOSTA.equals(mhRuolo);
- List<String> values = isRisposta ? PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORI_RISPOSTA : PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORI_RICHIESTA;
- List<String> labels = isRisposta ? PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_RISPOSTA : PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_RICHIESTA;
- deMhTipo.setLabels(labels);
- deMhTipo.setValues(values);
- deMhTipo.setType(DataElementType.SELECT);
- deMhTipo.setName(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_FASE_MESSAGE_HANDLER);
- deMhTipo.setSelected(mhTipo);
- deMhTipo.setPostBack(true); // serve per 'info' del className
- dati.add(deMhTipo);
-
- break;
- }
- case ALLARME:
-
- DataElement deApplicabilita = new DataElement();
- deApplicabilita.setLabel(ConfigurazioneCostanti.LABEL_PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_APPLICABILITA);
- deApplicabilita.setLabels(PluginCostanti.FILTRO_APPLICABILITA_LABELS);
- deApplicabilita.setValues(PluginCostanti.FILTRO_APPLICABILITA_VALORI);
- deApplicabilita.setType(DataElementType.SELECT);
- deApplicabilita.setName(ConfigurazioneCostanti.PARAMETRO_CONFIGURAZIONE_PLUGINS_CLASSI_FILTRO_APPLICABILITA);
- deApplicabilita.setSelected(applicabilita);
- deApplicabilita.setPostBack(false); // non serve per 'info' del className, non cambia
- dati.add(deApplicabilita);
-
- break;
-
- case BEHAVIOUR:
- case CONNETTORE:
- case RATE_LIMITING:
- case RICERCA:
- case STATISTICA:
- case TRANSAZIONE:
- case TOKEN_DYNAMIC_DISCOVERY:
- case TOKEN_VALIDAZIONE:
- case TOKEN_NEGOZIAZIONE:
- case ATTRIBUTE_AUTHORITY:
- break;
- }
-
- return dati;
- }
-
- public static String getValoreProprieta(Plugin plugin, String nome) {
- if(plugin.sizePluginProprietaCompatibilitaList() > 0) {
- TipoPlugin tipoPlugin = TipoPlugin.toEnumConstant(plugin.getTipoPlugin());
-
- switch (tipoPlugin) {
- case AUTENTICAZIONE:
- case AUTORIZZAZIONE:
- case AUTORIZZAZIONE_CONTENUTI:
- case INTEGRAZIONE:
- case SERVICE_HANDLER:
- case MESSAGE_HANDLER:
- case ALLARME:
- // una property con nome = Ruolo
- for (PluginProprietaCompatibilita prop : plugin.getPluginProprietaCompatibilitaList()) {
- if(prop.getNome().equals(nome))
- return prop.getValore();
- }
- return null;
- case BEHAVIOUR:
- case CONNETTORE:
- case RATE_LIMITING:
- case RICERCA:
- case STATISTICA:
- case TRANSAZIONE:
- case TOKEN_DYNAMIC_DISCOVERY:
- case TOKEN_VALIDAZIONE:
- case TOKEN_NEGOZIAZIONE:
- case ATTRIBUTE_AUTHORITY:
- return null;
- }
- }
-
- return null;
- }
-
- public static void addFiltriSpecificiTipoPlugin(PageData pd, Logger log, ISearch ricerca, int idLista, String valoreTipoPlugin , int size,
- boolean integrationManagerEnabled) throws Exception {
- TipoPlugin tipoPlugin = TipoPlugin.toEnumConstant(valoreTipoPlugin);
-
- switch (tipoPlugin) {
- case AUTENTICAZIONE:
- case AUTORIZZAZIONE:
- case AUTORIZZAZIONE_CONTENUTI:
- case INTEGRAZIONE:
- String filtroRuolo = SearchUtils.getFilter(ricerca, idLista, PluginCostanti.FILTRO_RUOLO_NOME);
- addFilterTipoPlugin(pd, log, PluginCostanti.FILTRO_RUOLO_NOME, PluginCostanti.FILTRO_RUOLO_LABEL, filtroRuolo,
- PluginCostanti.FILTRO_RUOLO_VALORI_SENZA_ENTRAMBI, PluginCostanti.FILTRO_RUOLO_LABELS_SENZA_ENTRAMBI, false, size);
- break;
- case SERVICE_HANDLER:{
-
- List<String> values = integrationManagerEnabled ? PluginCostanti.FILTRO_SERVICE_HANDLER_VALORI_CON_INTEGRATION_MANAGER : PluginCostanti.FILTRO_SERVICE_HANDLER_VALORI_SENZA_INTEGRATION_MANAGER;
- List<String> labels = integrationManagerEnabled ? PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_CON_INTEGRATION_MANAGER : PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL_SENZA_INTEGRATION_MANAGER;
-
- String filtroShTipo = SearchUtils.getFilter(ricerca, idLista, PluginCostanti.FILTRO_SERVICE_HANDLER_NOME);
- addFilterTipoPlugin(pd, log, PluginCostanti.FILTRO_SERVICE_HANDLER_NOME, PluginCostanti.FILTRO_SERVICE_HANDLER_LABEL, filtroShTipo,
- values, labels, false, size);
- break;
- }
- case MESSAGE_HANDLER:{
- // message handler e ruolo
-
- String filtroMhRuolo = SearchUtils.getFilter(ricerca, idLista, PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_NOME);
- addFilterTipoPlugin(pd, log, PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_NOME, PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_LABEL, filtroMhRuolo,
- PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORI, PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_LABELS, true, size);
-
- boolean isRisposta = PluginCostanti.FILTRO_RUOLO_MESSAGE_HANDLER_VALORE_RISPOSTA.equals(filtroMhRuolo);
-
- List<String> values = isRisposta ? PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORI_RISPOSTA : PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_VALORI_RICHIESTA;
- List<String> labels = isRisposta ? PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_RISPOSTA : PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL_RICHIESTA;
-
- String filtroMhTipo = SearchUtils.getFilter(ricerca, idLista, PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_NOME);
- addFilterTipoPlugin(pd, log, PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_NOME, PluginCostanti.FILTRO_FASE_MESSAGE_HANDLER_LABEL, filtroMhTipo,
- values, labels, false, size);
-
- break;
- }
- case ALLARME:
- String filtroApplicabilita = SearchUtils.getFilter(ricerca, idLista, PluginCostanti.FILTRO_APPLICABILITA_NOME);
- addFilterTipoPlugin(pd, log, PluginCostanti.FILTRO_APPLICABILITA_NOME, PluginCostanti.FILTRO_APPLICABILITA_LABEL, filtroApplicabilita,
- PluginCostanti.FILTRO_APPLICABILITA_VALORI_SENZA_QUALSIASI, PluginCostanti.FILTRO_APPLICABILITA_LABELS_SENZA_QUALSIASI, false, size);
- break;
- case BEHAVIOUR:
- case CONNETTORE:
- case RATE_LIMITING:
- case RICERCA:
- case STATISTICA:
- case TRANSAZIONE:
- case TOKEN_DYNAMIC_DISCOVERY:
- case TOKEN_VALIDAZIONE:
- case TOKEN_NEGOZIAZIONE:
- case ATTRIBUTE_AUTHORITY:
- break;
- }
-
- }
-
- public static void addFilterTipoPlugin(PageData pd, Logger log, String nomeFiltro, String labelFiltro, String valoreFiltro, List<String> valuesFiltro, List<String> labelsFiltro, boolean postBack, int size) throws Exception{
- try {
-
- int length = 1;
- if(valuesFiltro!=null && !valuesFiltro.isEmpty()) {
- length+=valuesFiltro.size();
- }
- String [] values = new String[length];
- String [] labels = new String[length];
- labels[0] = CostantiControlStation.LABEL_PARAMETRO_RUOLO_QUALSIASI;
- values[0] = CostantiControlStation.DEFAULT_VALUE_PARAMETRO_RUOLO_QUALSIASI;
- if(valuesFiltro!=null && valuesFiltro.size()>0) {
- for (int i =0; i < valuesFiltro.size() ; i ++) {
- labels[i+1] = labelsFiltro.get(i);
- values[i+1] = valuesFiltro.get(i);
- }
- }
-
- pd.addFilter(nomeFiltro, labelFiltro, valoreFiltro, values, labels, postBack, size);
-
- } catch (Exception e) {
- log.error("Exception: " + e.getMessage(), e);
- throw new Exception(e);
- }
- }
- }