ErroriCooperazione.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.protocol.sdk.constants;
- /**
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public enum ErroriCooperazione {
- MITTENTE_SCONOSCIUTO("Il Mittente non risulta registrato nel Registro dei Servizi",
- CodiceErroreCooperazione.MITTENTE_SCONOSCIUTO),
- MITTENTE_NON_VALIDO("Il Mittente presente nella busta non è valido",
- CodiceErroreCooperazione.MITTENTE_NON_VALIDO),
-
- TIPO_MITTENTE_NON_VALIDO("Il Tipo del mittente presente nella busta non è valido",
- CodiceErroreCooperazione.TIPO_MITTENTE_NON_VALIDO),
-
- DESTINATARIO_SCONOSCIUTO("Il Destinatario non risulta registrato nel Registro dei Servizi",
- CodiceErroreCooperazione.DESTINATARIO_SCONOSCIUTO),
- DESTINATARIO_NON_VALIDO("Il Destinatario presente nella busta non è valido",
- CodiceErroreCooperazione.DESTINATARIO_NON_VALIDO),
-
- TIPO_DESTINATARIO_NON_VALIDO("Il Tipo del destinatario presente nella busta non è valido",
- CodiceErroreCooperazione.TIPO_DESTINATARIO_NON_VALIDO),
-
- SERVIZIO_SCONOSCIUTO("Il Servizio non risulta registrato nel Registro dei Servizi",
- CodiceErroreCooperazione.SERVIZIO_SCONOSCIUTO),
- SERVIZIO_NON_VALIDO("Il Servizio presente nella busta non è valido",
- CodiceErroreCooperazione.SERVIZIO_NON_VALIDO),
-
- TIPO_SERVIZIO_NON_VALIDO("Il Tipo del servizio presente nella busta non è valido",
- CodiceErroreCooperazione.TIPO_SERVIZIO_NON_VALIDO),
-
- VERSIONE_SERVIZIO_NON_VALIDO("La versione del servizio presente nella busta non è valido",
- CodiceErroreCooperazione.VERSIONE_SERVIZIO_NON_VALIDO),
-
- AZIONE_NON_VALIDA("L'azione presente nella busta non è valida",
- CodiceErroreCooperazione.AZIONE_NON_VALIDA),
-
- IDENTIFICATIVO_MESSAGGIO_GIA_PROCESSATO("La busta presenta un identificativo già processato in precedenza",
- CodiceErroreCooperazione.IDENTIFICATIVO_MESSAGGIO_GIA_PROCESSATO),
-
- RIFERIMENTO_MESSAGGIO_NON_PRESENTE("La busta non contiene un RiferimentoMessaggio alla precedente busta a cui è correlata logicamente come richiede il profilo",
- CodiceErroreCooperazione.RIFERIMENTO_MESSAGGIO_NON_PRESENTE),
- RIFERIMENTO_MESSAGGIO_NON_VALIDO("IdentificativoBusta presente nel RiferimentoMessaggio non è valido",
- CodiceErroreCooperazione.RIFERIMENTO_MESSAGGIO_NON_VALIDO),
-
- MESSAGGIO_SCADUTO("Messaggio scaduto",
- CodiceErroreCooperazione.MESSAGGIO_SCADUTO),
-
- PROFILO_COLLABORAZIONE_SCONOSCIUTO("Busta con profilo di collaborazione sconosciuto",
- CodiceErroreCooperazione.PROFILO_COLLABORAZIONE_SCONOSCIUTO),
- PROFILO_COLLABORAZIONE_NON_VALIDO("Busta con profilo di collaborazione non valido rispetto al tipo di cooperazione in corso",
- CodiceErroreCooperazione.PROFILO_COLLABORAZIONE_NON_VALIDO),
-
- COLLABORAZIONE_NON_VALIDA("La collaborazione presente nella busta non è valida",
- CodiceErroreCooperazione.COLLABORAZIONE_NON_VALIDA),
-
- COLLABORAZIONE_SCONOSCIUTA("La collaborazione presente nella busta non appartiene a nessuna sessione valida",
- CodiceErroreCooperazione.COLLABORAZIONE_SCONOSCIUTA),
-
- PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_NON_PRESENTE("La busta non contiene una richiesta di 'conferma ricezione', nonostante il servizio indicato richieda, tramite la definizione dell'accordo nel registro, una consegna affidabile",
- CodiceErroreCooperazione.PROFILO_TRASMISSIONE_CONFERMA_RICEZIONE_NON_PRESENTE),
-
- CONSEGNA_IN_ORDINE_NON_GESTIBILE("La busta non contiene una richiesta di 'consegna in ordine', nonostante il servizio indicato richieda, tramite la definizione dell'accordo nel registro, un ordinamento",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_NON_GESTIBILE),
-
- CONSEGNA_IN_ORDINE_FUORI_SEQUENZA("Riscontrato numero di sequenza diverso da 1, in una busta capostipite di una sequenza",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_FUORI_SEQUENZA),
-
- CONSEGNA_IN_ORDINE_TIPO_MITTENTE_NON_VALIDO("Il tipo di mittente non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_TIPO_MITTENTE_NON_VALIDO),
-
- CONSEGNA_IN_ORDINE_MITTENTE_NON_VALIDO("Il nome del mittente non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_MITTENTE_NON_VALIDO),
-
- CONSEGNA_IN_ORDINE_TIPO_DESTINATARIO_NON_VALIDO("Il tipo di destinatario non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_TIPO_DESTINATARIO_NON_VALIDO),
-
- CONSEGNA_IN_ORDINE_DESTINATARIO_NON_VALIDO("Il nome del destinatario non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_DESTINATARIO_NON_VALIDO),
-
- CONSEGNA_IN_ORDINE_TIPO_SERVIZIO_NON_VALIDO("Il tipo di servizio non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_TIPO_SERVIZIO_NON_VALIDO),
-
- CONSEGNA_IN_ORDINE_SERVIZIO_NON_VALIDO("Il nome del servizio non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_SERVIZIO_NON_VALIDO),
-
- CONSEGNA_IN_ORDINE_AZIONE_NON_VALIDA("Il nome dell'azione non rispetta quello atteso nella gestione della collaborazione con consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_AZIONE_NON_VALIDA),
-
- CONSEGNA_IN_ORDINE_COLLABORAZIONE_IN_BUSTA_NON_CAPOSTIPITE_SCONOSCIUTA("Busta non capostipite che richiede funzionalità di consegna in ordine presenta una collaborazione non registrata per le funzioni di consegna in ordine",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_COLLABORAZIONE_IN_BUSTA_NON_CAPOSTIPITE_SCONOSCIUTA),
-
- CONSEGNA_IN_ORDINE_NON_SUPPORTATA("Funzionalità di consegna in ordine non supportata",
- CodiceErroreCooperazione.CONSEGNA_IN_ORDINE_NON_SUPPORTATA),
-
- MESSAGE_SECURITY("E' occorso un errore durante la gestione della Sicurezza sul Messaggio",
- null),
-
- AUTENTICAZIONE_FALLITA_CREDENZIALI_NON_FORNITE(CostantiProtocollo.PREFISSO_AUTENTICAZIONE_FALLITA+CostantiProtocollo.CREDENZIALI_NON_FORNITE,
- CodiceErroreCooperazione.MITTENTE_NON_VALORIZZATO),
-
- AUTENTICAZIONE_FALLITA_CREDENZIALI_FORNITE_NON_CORRETTE(CostantiProtocollo.PREFISSO_AUTENTICAZIONE_FALLITA+CostantiProtocollo.CREDENZIALI_FORNITE_NON_CORRETTE,
- CodiceErroreCooperazione.MITTENTE_SCONOSCIUTO),
-
- AUTORIZZAZIONE_FALLITA("Il Mittente non è autorizzato a fruire del servizio richiesto",
- null),
-
- ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO("E' occorso un errore durante il processamento del messaggio",
- CodiceErroreCooperazione.ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO),
-
- ERRORE_GENERICO_PROTOCOLLO_NON_CORRETTO("E' stato rilevata una violazione per quanto concerne le informazioni richieste del protocollo in gestione",
- CodiceErroreCooperazione.FORMATO_NON_CORRETTO),
-
- TOKEN_NON_PRESENTE("Token non presente",
- CodiceErroreCooperazione.SICUREZZA_TOKEN_NON_PRESENTE),
-
- TOKEN_NON_VALIDO("Token non valido",
- CodiceErroreCooperazione.SICUREZZA_TOKEN_NON_VALIDO),
-
- TOKEN_AUTORIZZAZIONE_FALLITA("La richiesta presenta un token non sufficiente per fruire del servizio richiesto",
- CodiceErroreCooperazione.SICUREZZA_TOKEN_AUTORIZZAZIONE_FALLITA),
-
- TOKEN_PRESENTE_PIU_VOLTE("Token presente più volte",
- CodiceErroreCooperazione.SICUREZZA_TOKEN_PRESENTE_PIU_VOLTE);
-
- private final String descrizione;
- private final CodiceErroreCooperazione codiceErrore;
- ErroriCooperazione(String descrizione,CodiceErroreCooperazione codiceErrore){
- this.descrizione = descrizione;
- this.codiceErrore = codiceErrore;
- }
-
- @Override
- public String toString(){
- return this.newErroreCooperazione().toString();
- }
-
- private ErroreCooperazione newErroreCooperazione(){
- return newErroreCooperazione(this.descrizione, this.codiceErrore);
- }
- private ErroreCooperazione newErroreCooperazione(String descrizioneParam){
- return newErroreCooperazione(descrizioneParam, this.codiceErrore);
- }
- @SuppressWarnings("unused")
- private ErroreCooperazione newErroreCooperazione(CodiceErroreCooperazione codiceParam){
- return newErroreCooperazione(this.descrizione, codiceParam);
- }
- private ErroreCooperazione newErroreCooperazione(String descrizioneParam,CodiceErroreCooperazione codiceParam){
- String newDescrizione = new String(descrizioneParam);
- return new ErroreCooperazione(newDescrizione, codiceParam);
- }
-
- public ErroreCooperazione getErroreCooperazione() {
- return getErroreCooperazione(null);
- }
- public ErroreCooperazione getErroreCooperazione(String descrizione) {
- if(this.equals(MESSAGE_SECURITY) ||
- this.equals(AUTORIZZAZIONE_FALLITA)){
- throw new RuntimeException("Il metodo non può essere utilizzato con il messaggio "+this.name());
- }
- if(descrizione!=null){
- return newErroreCooperazione(descrizione);
- }
- else{
- return newErroreCooperazione();
- }
- }
-
- public ErroreCooperazione getErroreProfiloCollaborazioneSconosciuto(String profiloCollaborazione) {
- if(this.equals(PROFILO_COLLABORAZIONE_SCONOSCIUTO)){
- if(profiloCollaborazione==null){
- return newErroreCooperazione("Busta senza Profilo di Collaborazione");
- }else{
- return newErroreCooperazione("Busta con profilo di collaborazione non gestito ["+profiloCollaborazione+"]");
- }
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+PROFILO_COLLABORAZIONE_SCONOSCIUTO.name());
- }
- }
-
- public ErroreCooperazione getErroreProfiloCollaborazioneNonValido(String descrizione) {
- if(this.equals(PROFILO_COLLABORAZIONE_NON_VALIDO)){
- return newErroreCooperazione(descrizione);
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+PROFILO_COLLABORAZIONE_NON_VALIDO.name());
- }
- }
-
- public ErroreCooperazione getErroreMessageSecurity(String descrizione,CodiceErroreCooperazione codiceErrore) {
- if(this.equals(MESSAGE_SECURITY)){
- if(CodiceErroreCooperazione.isEccezioneMessageSecurity(codiceErrore)==false &&
- CodiceErroreCooperazione.isEccezioneSicurezzaAutorizzazione(codiceErrore)==false &&
- CodiceErroreCooperazione.isEccezioneSicurezzaToken(codiceErrore)==false){ //messageSecurity internamente possiede anche un engine di autorizzazione
- throw new RuntimeException("Il metodo può essere utilizzato solo con codici associati alla sicurezza, relativamente ad errori di messageSecurity, token o erroreAutorizzazione, codice fornito: "+codiceErrore);
- }
- return newErroreCooperazione(descrizione, codiceErrore);
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+MESSAGE_SECURITY.name());
- }
- }
-
- public ErroreCooperazione getErroreAutorizzazione(String descrizione,CodiceErroreCooperazione codiceErrore) {
- if(this.equals(AUTORIZZAZIONE_FALLITA)){
- if(CodiceErroreCooperazione.isEccezioneSicurezzaAutorizzazione(codiceErrore)==false){
- throw new RuntimeException("Il metodo può essere utilizzato solo con codici associati alla sicurezza, relativamente a fallimenti di autorizzazione, codice fornito: "+codiceErrore);
- }
- return newErroreCooperazione(descrizione, codiceErrore);
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+AUTORIZZAZIONE_FALLITA.name());
- }
- }
-
- public ErroreCooperazione getErroreProcessamento(String descrizione) {
- if(this.equals(ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO)){
- return newErroreCooperazione(descrizione);
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+ERRORE_GENERICO_PROCESSAMENTO_MESSAGGIO.name());
- }
- }
-
- public ErroreCooperazione getErroreGestioneProtocollo(String descrizione) {
- if(this.equals(ERRORE_GENERICO_PROTOCOLLO_NON_CORRETTO)){
- return newErroreCooperazione(descrizione);
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+ERRORE_GENERICO_PROTOCOLLO_NON_CORRETTO.name());
- }
- }
-
- public ErroreCooperazione getErroreCredenzialiForniteNonCorrette(String errore) {
- if(this.equals(AUTENTICAZIONE_FALLITA_CREDENZIALI_FORNITE_NON_CORRETTE)){
- return newErroreCooperazione(CostantiProtocollo.PREFISSO_AUTENTICAZIONE_FALLITA+CostantiProtocollo.CREDENZIALI_FORNITE_NON_CORRETTE+": "+errore, CodiceErroreCooperazione.MITTENTE_SCONOSCIUTO);
- }else{
- throw new RuntimeException("Il metodo può essere utilizzato solo con il messaggio "+AUTENTICAZIONE_FALLITA_CREDENZIALI_FORNITE_NON_CORRETTE.name());
- }
- }
- }