Skip to content

Commit

Permalink
[GovWayCore]
Browse files Browse the repository at this point in the history
Durante l'operazione di ripulitura degli elementi "toccati" dalla firma WSSecurity,
se i messaggi dichiarano dei prefissi ('xsi' e 'xsd') all'interno del SOAP Body,
il gateway terminava con errore segnalando un 'java.lang.NullPointerException' simile al seguente:
Caused by: java.lang.NullPointerException
        at com.sun.xml.messaging.saaj.util.NamespaceContextIterator.findNext(NamespaceContextIterator.java:89)
        at com.sun.xml.messaging.saaj.util.NamespaceContextIterator.hasNext(NamespaceContextIterator.java:108)
        at com.sun.xml.messaging.saaj.soap.impl.ElementImpl$1.findNext(ElementImpl.java:617)
        at com.sun.xml.messaging.saaj.soap.impl.ElementImpl$1.hasNext(ElementImpl.java:627
        at org.openspcoop2.message.OpenSPCoop2Message_11_impl.cleanWSSDirtyElements(OpenSPCoop2Message_11_impl.java:494)
        ...
Il problema è stato risolto.
  • Loading branch information
andreapoli committed Dec 14, 2018
1 parent 1e9c49d commit b0e6ad4
Show file tree
Hide file tree
Showing 7 changed files with 78 additions and 21 deletions.
48 changes: 48 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,51 @@
2018-12-14 Andrea Poli <[email protected]>

* Rilasciata versione 3.0.1

2018-12-14 Andrea Poli <[email protected]>

* [GovWayCore]
Risolto Bug OP-795
Durante l'operazione di ripulitura degli elementi "toccati" dalla firma WSSecurity,
se i messaggi dichiarano dei prefissi ('xsi' e 'xsd') all'interno del SOAP Body,
il gateway terminava con errore segnalando un 'java.lang.NullPointerException' simile al seguente:
Caused by: java.lang.NullPointerException
at com.sun.xml.messaging.saaj.util.NamespaceContextIterator.findNext(NamespaceContextIterator.java:89)
at com.sun.xml.messaging.saaj.util.NamespaceContextIterator.hasNext(NamespaceContextIterator.java:108)
at com.sun.xml.messaging.saaj.soap.impl.ElementImpl$1.findNext(ElementImpl.java:617)
at com.sun.xml.messaging.saaj.soap.impl.ElementImpl$1.hasNext(ElementImpl.java:627
at org.openspcoop2.message.OpenSPCoop2Message_11_impl.cleanWSSDirtyElements(OpenSPCoop2Message_11_impl.java:494)
...
Il problema è stato risolto.

2018-12-14 Andrea Poli <[email protected]>

* [GovWayConsole]
Risolto Bug OP-799
(https://github.com/link-it/govway/issues/16)
Se tramite la 'modalità avanzata' della govwayConsole era stato ridefinito un connettore per un gruppo,
tornando alla 'modalità standard' la gestione dei connettori sui gruppi non era più utilizzabile,
e nello stesso tempo non era più possibile configurare il connettore globalmente sull'erogazione/fruizione.
Con il fix, nel caso uno dei gruppi possieda una ridefinizione del connettore,
la gestione dei connettori nei gruppi risulta abilitata anche con un utilizzo in 'modalità standard' della govwayConsole.

2018-12-14 Andrea Poli <[email protected]>

* [GovWayCore]
Aggiunta funzionalità OP-797
(https://github.com/link-it/govway/issues/17)
Estese le informazioni dinamiche utilizzabili nel connettore di tipo 'file':
- {header:NAME} permette di utilizzare informazioni, relative alla transazione in corso, inserite negli header http generati da GovWay.
Ad esempio per utilizzare il nome del mittente è possibile usare {header:GovWay-Sender}.
Un altro esempio valido nello scenario della fatturazione elettronica è quello di utilizzare il nome originale del file fattura
utilizzando la sintassi {header:GovWay-SDI-NomeFile}
- {query:NAME} permette di utilizzare informazioni, relative alla transazione in corso, inserite nei query parameter aggiunti all’endpoint da GovWay. Il valore 'NAME' indica il nome della proprietà da utilizzare.
Ad esempio per utilizzare il nome del mittente è possibile usare {query:govway_sender}.
- {property:NAME} permette di utilizzare informazioni, relative alla transazione in corso,
specifiche della sezione relativa al profilo utilizzato all’interno della traccia (es. sezione ’Informazioni Fatturazione Elettronica’).
Il valore 'NAME' indica il nome della proprietà da utilizzare.
Un esempio valido nello scenario della fatturazione elettronica è quello di utilizzare l’identificativo sdi: {property:IdentificativoSdI}

2018-11-26 Andrea Poli <[email protected]>

* [GovWayCore, GovWayConsole, GovWayMonitor]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -636,17 +636,20 @@ public void cleanWSSDirtyElements(String actor, boolean mustUnderstand, List<Ref
elementToClean.removeAttributeNS(WSS4JConstants.WSU_NS, "Id");
}
}


List<String> prefixesToRemoveContent = new ArrayList<String>();
Iterator<?> prefixes = elementToClean.getNamespacePrefixes();
while(prefixes.hasNext()){
String prefix = (String) prefixes.next();
String namespace = elementToClean.getNamespaceURI(prefix);
if(namespace.equals(WSS4JConstants.WSU_NS)) {
if(removeIdRefSignature){
elementToClean.removeNamespaceDeclaration(prefix);
prefixesToRemoveContent.add(prefix);
}
}
}
for(int y=0; y<prefixesToRemoveContent.size(); y++)
elementToClean.removeNamespaceDeclaration(prefixesToRemoveContent.get(y));
}
break;

Expand Down Expand Up @@ -682,17 +685,20 @@ public void cleanWSSDirtyElements(String actor, boolean mustUnderstand, List<Ref
elementToClean.removeAttributeNS(WSS4JConstants.WSU_NS, "Id");
}
}


prefixesToRemoveContent = new ArrayList<String>();
prefixesContent = elementToClean.getNamespacePrefixes();
while(prefixesContent.hasNext()){
String prefix = (String) prefixesContent.next();
String namespace = elementToClean.getNamespaceURI(prefix);
if(namespace.equals(WSS4JConstants.WSU_NS)) {
if(removeIdRefEncContent){
elementToClean.removeNamespaceDeclaration(prefix);
prefixesToRemoveContent.add(prefix);
}
}
}
for(int y=0; y<prefixesToRemoveContent.size(); y++)
elementToClean.removeNamespaceDeclaration(prefixesToRemoveContent.get(y));
break;

case ElementReference.TYPE_ENCRYPT_ELEMENT:
Expand Down Expand Up @@ -736,17 +742,20 @@ public void cleanWSSDirtyElements(String actor, boolean mustUnderstand, List<Ref
childToClean.removeAttributeNS(WSS4JConstants.WSU_NS, "Id");
}
}


prefixesToRemoveElement = new ArrayList<String>();
prefixesElement = childToClean.getNamespacePrefixes();
while(prefixesElement.hasNext()){
String prefix = (String) prefixesElement.next();
String namespace = childToClean.getNamespaceURI(prefix);
if(namespace.equals(WSS4JConstants.WSU_NS)) {
if(removeIdRefEncElement){
childToClean.removeNamespaceDeclaration(prefix);
prefixesToRemoveElement.add(prefix);
}
}
}
for(int y=0; y<prefixesToRemoveElement.size(); y++)
childToClean.removeNamespaceDeclaration(prefixesToRemoveElement.get(y));
}
}
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,63 +13,63 @@ openspcoop2.password=123456
# Invio Ricevi File (XML) [Destinatario: PA]
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.2/IT01234567890_12001.xml
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=FPA12
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=FPA12

# Invio Ricevi File (XML) [Destinatario: Privato]
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.2/IT01234567890_12011.xml
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=FPR12
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=FPR12

# Invio Ricevi File (ZIP) [Destinatario: PA]
openspcoop2.contentType = application/zip
file=sdiFiles/esempiFatture/1.2/IT01234567890_12006.zip
openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=FPA12&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890
openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=FPA12&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890

# Invio Ricevi File (ZIP) [Destinatario: Privato]
#openspcoop2.contentType = application/zip
#file=sdiFiles/esempiFatture/1.2/IT01234567890_12016.zip
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=FPR12&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=FPR12&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890

# Invio Ricevi File (XADES realizzati a mano) [Destinatario: PA]
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.2/IT01234567890_13001.xml
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=FPA12
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=FPA12

# Invio Ricevi File (XADES realizzati a mano) [Destinatario: Privato]
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.2/IT01234567890_13011.xml
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=FPR12
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=FPR12


# --- Formato Fattura 1.1 ---

# Invio Ricevi File (XML)
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.1/IT01234567890_11001.xml
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=SDI11
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=SDI11

# Invio Ricevi File (ZIP)
#openspcoop2.contentType = application/zip
#file=sdiFiles/esempiFatture/1.1/IT01234567890_11006.zip
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=SDI11&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=SDI11&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890


# --- Formato Fattura 1.0 ---

# Invio Ricevi File (XML)
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.0/IT01234567890_11111.xml
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=SDI10
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=SDI10

# Invio Ricevi File (P7M)
#openspcoop2.contentType = text/xml
#file=sdiFiles/esempiFatture/1.0/IT01234567890_11111.xml.p7m
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=SDI10&TipoFile=P7M&IdPaese=IT&IdCodice=01234567890
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=SDI10&TipoFile=P7M&IdPaese=IT&IdCodice=01234567890

# Invio Ricevi File (ZIP)
#openspcoop2.contentType = application/zip
#file=sdiFiles/esempiFatture/1.0/IT01234567890_66666.zip
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/1?Versione=SDI10&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890
#openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviFile/v1?Versione=SDI10&TipoFile=ZIP&IdPaese=IT&IdCodice=01234567890



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ file=sdiFiles/esempiMessaggi/IT01234567890_11111_EC_001.xml
# firma XADES (!!costruite a mano, non verificabili!!)
#file=sdiFiles/esempiMessaggi/IT01234567890_11112_EC_001.xml
#file=sdiFiles/esempiMessaggi.namespaceSenzaGov/IT01234567890_11112_EC_001.xml
openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviNotifica/1?NomeFile=IT01234567890_11111.xml&IdentificativoSdI=345
openspcoop2.PD = ENTE/CentroServiziFatturaPA/SdIRiceviNotifica/v1?NomeFile=IT01234567890_11111.xml&IdentificativoSdI=345
openspcoop2.saveResponseIn=scartoEsitoCommittente.xml


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ mtom=true
# PdD
# -- SDICOOP --
pdd=https://localhost:8444/govway/sdi/in
pa=ENTE/RicezioneFatture/1
pa=ENTE/RicezioneFatture/v1
# -- SPCOOP --
#pdd=https://localhost:8444/govway/spcoop/in
#pa=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ mtom=true
# PdD
# -- SDICOOP --
pdd=https://localhost:8444/govway/sdi/in/
pa=ENTE/TrasmissioneFatture/1
pa=ENTE/TrasmissioneFatture/v1
# -- SPCOOP --
#pdd=https://localhost:8444/govway/spcoop/in
#pa=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
mtom=true

# Busta (se scommentato aggiunge una busta eGov)
busta=spcoopFiles/riceviFile.xml
#busta=spcoopFiles/riceviFile.xml

# Endpoint
endpoint=http://localhost:8888/ricevi_file
Expand Down

0 comments on commit b0e6ad4

Please sign in to comment.