anpr icon indicating copy to clipboard operation
anpr copied to clipboard

Chiarimenti su API ANPR e problemi con ambiente di test

Open saverios84 opened this issue 6 months ago • 6 comments

Buongiorno, sto lavorando a un progetto che prevede il monitoraggio delle richieste di cambio residenza, e ho necessità di interfacciarmi con i servizi ANPR.

API disponibili: esistono solo WebService SOAP o anche API REST? In caso affermativo, dove posso reperire la documentazione ufficiale anche per quest'ultime?

Ambiente di test: mi è stata configurata un'utenza su TEST COMUNI (SVILUPPO) - Comune di Napoli. Sto seguendo la documentazione nella sezione "Strumenti di Supporto" ed effettuando test sui servizi SOAP (con il tool tool-testconn), utilizzando il certificato di postazione generato e l’endpoint https://wspre.anpr.interno.it, ma ottengo errore “Rejected by policy”.

Supporto richiesto: Esiste un modo per verificare se la configurazione (certificato, endpoint, chiamata) è corretta?

Quali informazioni è utile fornire per ricevere supporto (es. log, struttura della request, ecc.)? Esistono altri canali ? @e-mattei posso chiedere a te?

Grazie in anticipo per ogni chiarimento che potrete fornire. Saverio

saverios84 avatar Jun 19 '25 16:06 saverios84

Buongiorno, purtroppo per la gestione delle richieste di cambio residenza non esistono API REST ma solo WS SOAP, probabilmente sta prendendo errore a causa dell'endpoint errato, quello corretto è https://wstest.anpr.interno.it/.

A disposizione, saluti.

e-mattei avatar Jun 23 '25 08:06 e-mattei

Buongiorno, prima di tutto grazie per le risposte.

Sempre con lo stesso tool, se uso il certificato presente nel pacchetto 888888-PC-0000.p12 e utilizzando la configurazione PRE e quindi https://wspre.anpr.interno.it ottengo "certificato scaduto" se invece uso
https://wstest.anpr.interno.it/ unable to find valid certification path to requested target

Al netto di ciò, con il certificato di postazione che mi hanno creato per TEST COMUNI (SVILUPPO) - Comune di Napoli posso accedere sempre a test o a pre? Provando con il certificato di postazione invece ottengo Rejected by policy” con https://wspre.anpr.interno.it/ e anche qui se invece uso
https://wstest.anpr.interno.it/ unable to find valid certification path to requested target. Cosa posso verificare? C'è qualche documentazione più aggiornata che posso consultare?

Saluti Saverio

saverios84 avatar Jun 23 '25 10:06 saverios84

Ciao @saverios84 , se non ricordo male il certificato 888888-PC-0000.p12 serviva per accedere ad un Ambiente di Test agganciato ad un Comune fittizio (FREE) con dati fittizi, che però è stato dismesso da circa 3 anni. Quindi, non funziona più. Saluti

Eduardo1977 avatar Jun 23 '25 11:06 Eduardo1977

Buongiorno, sta provando con il certificato 063049-PC-0232? Se è quello è scaduto

amollicone1982 avatar Jun 23 '25 12:06 amollicone1982

Buongiorno, @Eduardo1977 ok grazie, quindi conviene provare solo con il mio certificato di postazione..

@Eduardo1977 No è il certificato 063049-PC-0002 emesso il 7 giugno.

Grazie Saluti

saverios84 avatar Jun 23 '25 14:06 saverios84

Non vedo chiamate su wstest con 063049-PC-0002. Ne vedo sempre con 063049-PC-0232 (per esempio ce ne è una alle 16) che invoca il P000 Penso che per qualche motivo stiate puntando il certificato sbagliato

amollicone1982 avatar Jun 23 '25 14:06 amollicone1982

Salve, ho effettuate diverse chiamate di test (intorno alle 14:16) con il certificato 063049-PC-0002 anche direttamente dal server con indirizzo comunicato (e che dovrebbe essere autorizzato). Le chiamate le ho fatte verso : https://wstest.anpr.interno.it/ANPRTestConn/TestConn https://wspre.anpr.interno.it/ANPRTestConn/TestConn

In entrambi i casi ricevo 500

Esiste una modalità per debuggare le diverse chiamate per distinguere i vari problemi? es :

  • Ip non autorizzato
  • payload errrato
  • certificato non valido

Grazie ancora per il supporto Saverio

saverios84 avatar Jun 27 '25 12:06 saverios84

Salve @saverios84

Come diceva anche @amollicone1982 continuiamo a vedere solo un certo numero di chiamate con il certificato 063049-PC-0232, ad esempio :

IDP=063049-PC-0232,IDA=12345,IDS=063049,IDE=,CF=LFFXXXXXXXXXXX,MSG=certificate has expired

In test comuni non ci sono problemi di ip non autorizzati.

Riuscite a fornirci il payload completo di richiesta risposta del server? (un pò come fosse l'output di una curl?)

Grazie in anticipo.

Saluti

Assistenza ANPR

mttfranci avatar Jul 01 '25 16:07 mttfranci

@saverios84 se può esservi di aiuto, ho effettuato un fork del progetto che originariamente era stato messo a disposizione per l'ambiente di free test ora dimesso.

anpr-client-example

E' stato riadattato per essere usato in test comuni.

Se volete provarlo potete :

  • Aggiungere il vostro certificato client di postazione nella cartella keystore/TEST
  • Creare un file src/main/resources/config/TEST_Keystore.properties con seguendo l'esempio di src/main/resources/config/Example_TEST_Keystore.properties come indicato nel README.md
  • Lanciare una build con maven + java 8 o da un IDE lanciare la junit : it.sogei.ws.client.ConnessioneTestComuniTest

Il progetto è un pò datato ma da una idea dei passaggi necessari per l'integrazione software , dovreste avere un output di questo tipo (lo ho appena provato con un certificato funzionante) :

log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [it.interno.anpr] additivity to [false].
log4j: Level value for it.interno.anpr is  [DEBUG].
log4j: it.interno.anpr level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n].
log4j: Adding appender named [console] to category [it.interno.anpr].
log4j: Level value for root is  [INFO].
log4j: root level set to INFO
log4j: Adding appender named [console] to category [root].
2025-07-02 15:57:35 INFO  BusApplicationContext:510 - Refreshing org.apache.cxf.bus.spring.BusApplicationContext@23fe1d71: startup date [Wed Jul 02 15:57:35 CEST 2025]; root of context hierarchy
2025-07-02 15:57:35 INFO  BusApplicationContext:449 - Loaded configuration file cxf.xml.
2025-07-02 15:57:35 INFO  ControlledValidationXmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [META-INF/cxf/cxf.xml]
2025-07-02 15:57:36 INFO  ControlledValidationXmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [cxf.xml]
2025-07-02 15:57:36 INFO  ReflectionServiceFactoryBean:390 - Creating Service {http://sogei.it/ANPR/TestConn}TestConn from WSDL: file:/omnia/workspace/git/fork/anpr-client-example/target/classes/wsdl/testConnettivita.wsdl
2025-07-02 15:57:36 DEBUG ConfigHandler:65 - Key: (URL_WS):https://wstest.anpr.interno.it
2025-07-02 15:57:36 INFO  RequestHandler:58 - ENDPOINT=https://wstest.anpr.interno.it/ANPRTestConn/TestConn
2025-07-02 15:57:36 DEBUG ConfigHandler:65 - Key: (org.apache.ws.security.crypto.merlin.keystore.alias):XXXXXX-PC-0001
2025-07-02 15:57:36 INFO  TestConnHandler:40 - testConnessione invoke...
2025-07-02 15:57:37 DEBUG ConfigHandler:65 - Key: (org.apache.ws.security.crypto.merlin.keystore.alias):XXXXXX-PC-0001
2025-07-02 15:57:37 DEBUG ConfigHandler:65 - Key: (ID_OPERATORE):XXXXXXXXXXXXXXX
2025-07-02 15:57:55 DEBUG ConfigHandler:65 - Key: (ID_SEDE):XXXXXX
2025-07-02 15:57:55 DEBUG ConfigHandler:65 - Key: (ID_POSTAZIONE):XXXXXX-PC-0001
2025-07-02 15:57:55 DEBUG ConfigHandler:65 - Key: (ID_POSTAZIONE):XXXXXX-PC-0001
2025-07-02 15:57:55 DEBUG ConfigHandler:65 - Key: (PATH_KEYSTORE_POSTAZIONE):keystore/TEST/XXXXXX-PC-0001.p12
2025-07-02 15:57:55 DEBUG ConfigHandler:65 - Key: (PASS_KEYSTORE_POSTAZIONE):XXXXXX
2025-07-02 15:57:56 DEBUG ConfigHandler:65 - Key: (ID_APPLICAZIONE):12345
2025-07-02 15:57:56 DEBUG ConfigHandler:65 - Key: (org.apache.ws.security.crypto.merlin.keystore.alias):XXXXXX-PC-0001
2025-07-02 15:57:56 DEBUG ConfigHandler:65 - Key: (org.apache.ws.security.crypto.merlin.keystore.password):9DE46429
2025-07-02 15:57:56 DEBUG ConfigHandler:65 - Key: (org.apache.ws.security.crypto.merlin.keystore.password):9DE46429
2025-07-02 15:57:56 INFO  AnprPortTypeTestConn:273 - Outbound Message
---------------------------
ID: 1
Address: https://wstest.anpr.interno.it/ANPRTestConn/TestConn
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], SOAPAction=[""]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header>XXXXXXXX</soap:Header><soap:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="_8db5c37d-889b-4a96-9414-e1cfd6ab6541"><ns2:RichiestaConnessione xmlns:ns2="http://sogei.it/ANPR/connessione"><testataRichiesta><idOperazioneComune>1</idOperazioneComune><codMittente>aaaaaa</codMittente><codDestinatario>giusep</codDestinatario><operazioneRichiesta>OP01</operazioneRichiesta><dataOraRichiesta>2017-03-23T17:22:44.868+01:00</dataOraRichiesta><tipoOperazione>C</tipoOperazione><protocolloComune>111</protocolloComune><dataProtocolloComune>2017-03-23+01:00</dataProtocolloComune><tipoInvio>TEST</tipoInvio><dataDecorrenza>2017-03-23+01:00</dataDecorrenza><dataDefinizionePratica>2017-03-23+01:00</dataDefinizionePratica><nomeApplicativo>ANPRAPP</nomeApplicativo><versioneApplicativo>1</versioneApplicativo><fornitoreApplicativo>Sogei</fornitoreApplicativo></testataRichiesta></ns2:RichiestaConnessione></soap:Body></soap:Envelope>
--------------------------------------
2025-07-02 15:57:57 INFO  AnprPortTypeTestConn:273 - Inbound Message
----------------------------
ID: 1
Response-Code: 200
Encoding: ISO-8859-1
Content-Type: text/xml
Headers: {connection=[Keep-Alive], Content-Language=[en-US], content-type=[text/xml], Date=[Wed, 02 Jul 2025 13:57:57 GMT], transfer-encoding=[chunked], X-Backside-Transport=[OK OK], X-Global-Transaction-ID=[fa4f83f368653ae57e9b393f], X-Powered-By=[Servlet/3.0]}
Payload: <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><a:RispostaConnessione xmlns:a="http://sogei.it/ANPR/connessione"><testataRisposta><idOperazioneComune>1</idOperazioneComune><codMittente>aaaaaa</codMittente><codDestinatario>giusep</codDestinatario><operazioneRichiesta>OP01</operazioneRichiesta><dataOraRichiesta>2017-03-23T17:22:44.868+01:00</dataOraRichiesta><protocolloComune>111</protocolloComune><dataProtocolloComune>2017-03-23+01:00</dataProtocolloComune><dataDecorrenza>2017-03-23+01:00</dataDecorrenza><idOperazioneANPR>000000000000000000000000000200</idOperazioneANPR><esitoOperazione>0000</esitoOperazione></testataRisposta></a:RispostaConnessione></soapenv:Body></soapenv:Envelope>
--------------------------------------
Esecuzione InInterceptor...
Messaggio di Risposta: 
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <a:RispostaConnessione xmlns:a="http://sogei.it/ANPR/connessione">
            <testataRisposta>
                <idOperazioneComune>1</idOperazioneComune>
                <codMittente>aaaaaa</codMittente>
                <codDestinatario>giusep</codDestinatario>
                <operazioneRichiesta>OP01</operazioneRichiesta>
                <dataOraRichiesta>2017-03-23T17:22:44.868+01:00</dataOraRichiesta>
                <protocolloComune>111</protocolloComune>
                <dataProtocolloComune>2017-03-23+01:00</dataProtocolloComune>
                <dataDecorrenza>2017-03-23+01:00</dataDecorrenza>
                <idOperazioneANPR>000000000000000000000000000200</idOperazioneANPR>
                <esitoOperazione>0000</esitoOperazione>
            </testataRisposta>
        </a:RispostaConnessione>
    </soapenv:Body>
</soapenv:Envelope>

Saluti

NB: Nota abbiamo aggiunto anche un esempio dell'operazione elenco richieste dei cittadini P001.

mttfranci avatar Jul 02 '25 14:07 mttfranci

Ciao @mttfranci , intanto grazie.

Effettuo dei test e aggiorno.

Saluti

saverios84 avatar Jul 02 '25 15:07 saverios84

Con il fork del client che mi hai rigirato sono riuscito ad avere delle response con 200,
quindi credo che questa volta ci siamo.
Grazie.


Una domanda: sto provando il servizio di consultazione 3002, cercando di replicare la stessa chiamata che faccio dal portale https://dptest.anpr.interno.it/combas al quale accedo con lo stesso certificato, ma non ottengo lo stesso risultato.

Dettaglio: dal portale eseguo una consultazione con nome/cognome/ricerca nazionale ed ottengo un elenco di persone.

Se popolo la seguente richiesta con il client:

<ns2:Richiesta3002 xmlns:ns2="http://sogei.it/ANPR/3000consultazione">
    <testataRichiesta>
        <idOperazioneComune>0</idOperazioneComune>
        <codMittente>063049</codMittente>
        <codDestinatario>ANPR06</codDestinatario>
        <operazioneRichiesta>3002</operazioneRichiesta>
        <dataOraRichiesta>2025-07-03T11:12:11.543+02:00</dataOraRichiesta>
        <tipoOperazione>C</tipoOperazione>
        <tipoInvio>TEST</tipoInvio>
    </testataRichiesta>
    <criteriRicerca>
        <cognome>XXX</cognome>
        <nome>XXXXX</nome>
        <ricercaNazionale>S</ricercaNazionale>
        <italiaEstero>italia</italiaEstero>
    </criteriRicerca>
    <datiRichiesta>
        <schedaAnagraficaRichiesta>1</schedaAnagraficaRichiesta>
        <dataRiferimentoRichiesta>2025-07-03+02:00</dataRiferimentoRichiesta>
        <datiAnagraficiRichiesti>2</datiAnagraficiRichiesti>
    </datiRichiesta>
</ns2:Richiesta3002>

Utilizzando lo stesso certificato:

ID_OPERATORE=#cfoperatore
ID_SEDE=063049
ID_POSTAZIONE=063049-PC-0002
ID_APPLICAZIONE=12345
ID_TRANSAZIONE=99999

URL_WS=https://wstest.anpr.interno.it

Ottengo:

<errore>
    <codiceErroreAnomalia>EN122</codiceErroreAnomalia>
    <tipoErroreAnomalia>E</tipoErroreAnomalia>
    <testoErroreAnomalia>La richiesta effettuata non produce alcun risultato</testoErroreAnomalia>
</errore>

Domanda: c'è qualche differenza tra i due ambienti o è qualche parametro che manca?

Nel frattempo procedo anche con qualche test sulla parte P001.

Grazie ancora.

saverios84 avatar Jul 03 '25 13:07 saverios84

Ciao @mttfranci , ho fatto qualche test anche su P001 e P002 e vanno a buon fine!

Grazie! Saverio

saverios84 avatar Jul 04 '25 05:07 saverios84

Ci fa piacere.

Saluti

Assistenza ANPR

mttfranci avatar Jul 06 '25 21:07 mttfranci