phax / peppol-commons

Java library with shared Peppol components - identifier handling, codelists, SBDH handler, SMP Client, SML Client
Apache License 2.0
29 stars 8 forks source link

0196:<snip> Endpoint not selected #43

Closed ri4a closed 1 year ago

ri4a commented 1 year ago

Hi Philip,

The SMP logs the following:

[2023-08-10T16:57:25,571] [smc-discovery-service] [INFO ] [qtp131953431-26] Performing SMP query at '/iso6523-actorid-upis%3A%3A0196%3A/services/busdox-docid-qns%3A%3Aurn%3Aoasis%3Anames%3Aspecification%3Aubl%3Aschema%3Axsd%3AInvoice-2%3A%3AInvoice%23%23urn%3Acen.eu%3Aen16931%3A2017%23compliant%23urn%3Afdc%3Apeppol.eu%3A2017%3Apoacc%3Abilling%3A3.0%3A%3A2.1' -- com.helger.smpclient.httpclient.AbstractGenericSMPClient.executeRequest(AbstractGenericSMPClient.java:318)

which with curl is

$ curl http://b-a0bce7088e2d349c92b03cf2b308df89.iso6523-actorid-upis.edelivery.tech.ec.europa.eu//iso6523-actorid-upis%3A%3A0196%3A<snip>/services/busdox-docid-qns%3A%3Aurn%3Aoasis%3Anames%3Aspecification%3Aubl%3Aschema%3Axsd%3AInvoice-2%3A%3AInvoice%23%23urn%3Acen.eu%3Aen16931%3A2017%23compliant%23urn%3Afdc%3Apeppol.eu%3A2017%3Apoacc%3Abilling%3A3.0%3A%3A2.1

The result is

<?xml version="1.0" encoding="utf-8"?>
<SignedServiceMetadata
    xmlns:xsd=http://www.w3.org/2001/XMLSchema
    xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
    xmlns=http://busdox.org/serviceMetadata/publishing/1.0/>
    <ServiceMetadata>
        <ServiceInformation>
            <ParticipantIdentifier scheme="iso6523-actorid-upis"
                xmlns=http://busdox.org/transport/identifiers/1.0/>0196:<snip>
            </ParticipantIdentifier>
            <DocumentIdentifier scheme="busdox-docid-qns"
                xmlns=http://busdox.org/transport/identifiers/1.0/>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1
            </DocumentIdentifier>
            <ProcessList>
                <Process>
                    <ProcessIdentifier scheme="cenbii-procid-ubl"
                        xmlns=http://busdox.org/transport/identifiers/1.0/>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
                    </ProcessIdentifier>
                    <ServiceEndpointList>
                        <Endpoint transportProfile="busdox-transport-as2-ver1p0">
                            <EndpointReference
                                xmlns=http://www.w3.org/2005/08/addressing>
                                <Address>[https://endpoint.sendill.is/as210ep/opas2endpoint</Address](https://endpoint.sendill.is/as210ep/opas2endpoint%3c/Address)>
                            </EndpointReference>
                            <RequireBusinessLevelSignature>false</RequireBusinessLevelSignature>
                            <MinimumAuthenticationLevel>1</MinimumAuthenticationLevel>
                            <Certificate>MIIFsTCCA5mgAwIBAgIQEya3SdsericU/zq5pFFVizANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQT3BlblBFUFBPTCBBSVNCTDEkMCIGA1UEAxMbUEVQUE9MIEFDQ0VTUyBQT0lOVCBDQSAtIEcyMB4XDTIyMDcyMjAwMDAwMFoXDTI0MDcxMTIzNTk1OVowWzELMAkGA1UEBhMCSVMxGTAXBgNVBAoMEFVuaW1hemUgU29mdHdhcmUxHTAbBgNVBAsMFFBFUFBPTCBQUk9EVUNUSU9OIEFQMRIwEAYDVQQDDAlQU0UwMDAwNjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBCuu1xs+oqNZM9WnSyzg/zbzb7fM9dWu6ULLFvUA7SrldYgenG1HW/xizn8ixF5+7hWi8RpVvqrIJCTmOv4XPtvVCqmwCebmLfvZKvRcLNVTqkgTncNfQLbeAACjLsVKQoEneCmVOlPXZSS4msSzL+bqnKytr6fuxpjKSHNH49qjUnTb4y9ny+DzZgQueAv6M+m5dnd7xxFqYkDg+xDerjo96nA8kTPpTNbfbjZJ2WZATXkoEQk1iWEMJ9SyIeFABPPJ6TV83TgoXggSwKlNmEnYtJQQcVHrwGc2HOPepNJIbHWAYHCDHJoefB8D2HfZvY+9EG2rmB4dln3KmjwtvAgMBAAGjggF8MIIBeDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIDqDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjAdBgNVHQ4EFgQUBMuOXV1trYDQN3OS5PeXcBaP3wAwXQYDVR0fBFYwVDBSoFCgToZMaHR0cDovL3BraS1jcmwuc3ltYXV0aC5jb20vY2FfN2JlZGNiY2M0ZjcyNGVmZTMwZDUwMDZkZGE2ODFiYTAvTGF0ZXN0Q1JMLmNybDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9wa2ktb2NzcC5zeW1hdXRoLmNvbTAfBgNVHSMEGDAWgBSHJd9bI6bEO/mf3xulIJHd5PQ8gTAtBgpghkgBhvhFARADBB8wHQYTYIZIAYb4RQEQAQIDAQGBstf0NhYGOTU3NjA4MDkGCmCGSAGG+EUBEAUEKzApAgEAFiRhSFIwY0hNNkx5OXdhMmt0Y21FdWMzbHRZWFYwYUM1amIyMD0wDQYJKoZIhvcNAQELBQADggIBACO5FEcLFDxZ9c5V0XwvzS5qTA3LSKCPzyPVSL22PdYy4Jz4RUF1S3BUN+0VZplp+ymb5BwfB71a11L0KhAHvOQn9X80i4qwBcpOBnktRa0EbBRUF0cK77Pw6XygtHcGyQCoyH7bS7pzxJ9AlZFzS82LfEXN3obhqg/REroB6h9ogEBAkpntA9qNy+lma3rMmawx/zqgXMQX50r9CaL+piucRJIC5B7CuJpZF4rBHwPgMFzWhkFtusepYT28+ECv7eIcF41K6LQiv1iDcPCZyiJ3ra1NVcvAxFS53N1EAIhhUQkrF4Yykz1XTLULw3tIuRbmfr9ammggqXImi1Hl5seDpGesPBaEq2upXd54bvPnX2CRi3FyS8VI33xVQDScPQo7v7QhtKqt7zodM+c4hhrRUOzA3mCGv+rvTa8wEwUB1MhflbvReFfNosMlvp2PdGVz8S383G8LxUbofs16cKYby8j/HBL6cvA4U+3arTHSEVMh8aLU5thWttDRVd0AiykdynXVdzjLqU9yKt9WXGRnGCVBFt5mX3eHzHCMX3HQKxMhjTDFAOT7j2jNnD8e3i0BobRcFFB9CEs5d0pc/2BqRdGnpY0vxWBbdikec7Kmi4YBqBUIpmIPQv44iMrM4+LBySfcboH4hpfgW4UQs1yjnZGkNw15AaxTQtzCfNtp</Certificate>
                            <ServiceDescription>Unimaze PEPPOL AS2 Access Point</ServiceDescription>
                            <TechnicalContactUrl>[peppol@unimaze.com</TechnicalContactUrl](mailto:peppol@unimaze.com%3c/TechnicalContactUrl)>
                            <TechnicalInformationUrl>[http://www.unimaze.com</TechnicalInformationUrl](http://www.unimaze.com%3C/TechnicalInformationUrl)>
                        </Endpoint>
                    </ServiceEndpointList>
                </Process>
                <Process>
                    <ProcessIdentifier scheme="cenbii-procid-ubl"
                        xmlns=http://busdox.org/transport/identifiers/1.0/>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
                    </ProcessIdentifier>
                    <ServiceEndpointList>
                        <Endpoint transportProfile="peppol-transport-as4-v2_0">
                            <EndpointReference
                                xmlns=http://www.w3.org/2005/08/addressing>
                                <Address>[https://as4embep.sendill.is/msh/receive</Address](https://as4embep.sendill.is/msh/receive%3c/Address)>
                            </EndpointReference>
                            <RequireBusinessLevelSignature>false</RequireBusinessLevelSignature>
                            <MinimumAuthenticationLevel>1</MinimumAuthenticationLevel>
                            <Certificate>MIIFsTCCA5mgAwIBAgIQEya3SdsericU/zq5pFFVizANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQT3BlblBFUFBPTCBBSVNCTDEkMCIGA1UEAxMbUEVQUE9MIEFDQ0VTUyBQT0lOVCBDQSAtIEcyMB4XDTIyMDcyMjAwMDAwMFoXDTI0MDcxMTIzNTk1OVowWzELMAkGA1UEBhMCSVMxGTAXBgNVBAoMEFVuaW1hemUgU29mdHdhcmUxHTAbBgNVBAsMFFBFUFBPTCBQUk9EVUNUSU9OIEFQMRIwEAYDVQQDDAlQU0UwMDAwNjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBCuu1xs+oqNZM9WnSyzg/zbzb7fM9dWu6ULLFvUA7SrldYgenG1HW/xizn8ixF5+7hWi8RpVvqrIJCTmOv4XPtvVCqmwCebmLfvZKvRcLNVTqkgTncNfQLbeAACjLsVKQoEneCmVOlPXZSS4msSzL+bqnKytr6fuxpjKSHNH49qjUnTb4y9ny+DzZgQueAv6M+m5dnd7xxFqYkDg+xDerjo96nA8kTPpTNbfbjZJ2WZATXkoEQk1iWEMJ9SyIeFABPPJ6TV83TgoXggSwKlNmEnYtJQQcVHrwGc2HOPepNJIbHWAYHCDHJoefB8D2HfZvY+9EG2rmB4dln3KmjwtvAgMBAAGjggF8MIIBeDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIDqDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjAdBgNVHQ4EFgQUBMuOXV1trYDQN3OS5PeXcBaP3wAwXQYDVR0fBFYwVDBSoFCgToZMaHR0cDovL3BraS1jcmwuc3ltYXV0aC5jb20vY2FfN2JlZGNiY2M0ZjcyNGVmZTMwZDUwMDZkZGE2ODFiYTAvTGF0ZXN0Q1JMLmNybDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9wa2ktb2NzcC5zeW1hdXRoLmNvbTAfBgNVHSMEGDAWgBSHJd9bI6bEO/mf3xulIJHd5PQ8gTAtBgpghkgBhvhFARADBB8wHQYTYIZIAYb4RQEQAQIDAQGBstf0NhYGOTU3NjA4MDkGCmCGSAGG+EUBEAUEKzApAgEAFiRhSFIwY0hNNkx5OXdhMmt0Y21FdWMzbHRZWFYwYUM1amIyMD0wDQYJKoZIhvcNAQELBQADggIBACO5FEcLFDxZ9c5V0XwvzS5qTA3LSKCPzyPVSL22PdYy4Jz4RUF1S3BUN+0VZplp+ymb5BwfB71a11L0KhAHvOQn9X80i4qwBcpOBnktRa0EbBRUF0cK77Pw6XygtHcGyQCoyH7bS7pzxJ9AlZFzS82LfEXN3obhqg/REroB6h9ogEBAkpntA9qNy+lma3rMmawx/zqgXMQX50r9CaL+piucRJIC5B7CuJpZF4rBHwPgMFzWhkFtusepYT28+ECv7eIcF41K6LQiv1iDcPCZyiJ3ra1NVcvAxFS53N1EAIhhUQkrF4Yykz1XTLULw3tIuRbmfr9ammggqXImi1Hl5seDpGesPBaEq2upXd54bvPnX2CRi3FyS8VI33xVQDScPQo7v7QhtKqt7zodM+c4hhrRUOzA3mCGv+rvTa8wEwUB1MhflbvReFfNosMlvp2PdGVz8S383G8LxUbofs16cKYby8j/HBL6cvA4U+3arTHSEVMh8aLU5thWttDRVd0AiykdynXVdzjLqU9yKt9WXGRnGCVBFt5mX3eHzHCMX3HQKxMhjTDFAOT7j2jNnD8e3i0BobRcFFB9CEs5d0pc/2BqRdGnpY0vxWBbdikec7Kmi4YBqBUIpmIPQv44iMrM4+LBySfcboH4hpfgW4UQs1yjnZGkNw15AaxTQtzCfNtp</Certificate>
                            <ServiceDescription>Unimaze PEPPOL AS4 Pilot Access Point</ServiceDescription>
                            <TechnicalContactUrl>[peppol@unimaze.com</TechnicalContactUrl](mailto:peppol@unimaze.com%3c/TechnicalContactUrl)>
                            <TechnicalInformationUrl>[http://www.unimaze.com</TechnicalInformationUrl](http://www.unimaze.com%3C/TechnicalInformationUrl)>
                        </Endpoint>
                    </ServiceEndpointList>
                </Process>
            </ProcessList>
        </ServiceInformation>
    </ServiceMetadata>
    <Signature
        xmlns=http://www.w3.org/2000/09/xmldsig#>
        <SignedInfo>
            <CanonicalizationMethod Algorithm=http://www.w3.org/TR/2001/REC-xml-c14n-20010315 />
            <SignatureMethod Algorithm=http://www.w3.org/2000/09/xmldsig#rsa-sha1 />
            <Reference URI="">
                <Transforms>
                    <Transform Algorithm=http://www.w3.org/2000/09/xmldsig#enveloped-signature />
                </Transforms>
                <DigestMethod Algorithm=http://www.w3.org/2000/09/xmldsig#sha1 />
                <DigestValue>JXy/PXcClYLn6o0GYamVe9rtauE=</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>tz/ur7VedckMljy2Hhp65P2qQNAVuKuTjFBi1n+zt3N5TyC9sLWmoN6togtFCKEs3p35Fx3saHAIgnOqGcBQws1m4Hze4jdo5tYaCsXJOo2dSIHKNGHPNleUn7tEsUu3xW3Bhs4SUHiRdCz/J38eE6QVmvlNwtQD6ZK5HjhqmiVJ7G3T43jvZXx6AxODkmn3y0szJ5IEdzN81eu+yzBpj8iYpZRl0l8ilFBvRDZgmHAyoO99yT0KXtEQeoRG+kbJ/uQ9+afACOQGgXsw0p2l8FtDO8SmJxrJbnJvbpLhNJIuiBqto1cR0LnXdTgCADC4F2fZD8tbWVUzdhmI6eJzHw==</SignatureValue>
        <KeyInfo>
            <X509Data>
                <X509Certificate>MIIFwDCCA6igAwIBAgIQBFhve9i9fl0CZc2hRhOxFjANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQT3BlblBFUFBPTCBBSVNCTDEyMDAGA1UEAxMpUEVQUE9MIFNFUlZJQ0UgTUVUQURBVEEgUFVCTElTSEVSIENBIC0gRzIwHhcNMjIwNzIyMDAwMDAwWhcNMjQwNzExMjM1OTU5WjBcMQswCQYDVQQGEwJJUzEZMBcGA1UECgwQVW5pbWF6ZSBTb2Z0d2FyZTEeMBwGA1UECwwVUEVQUE9MIFBST0RVQ1RJT04gU01QMRIwEAYDVQQDDAlQU0UwMDAwNjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnU8xQ+zHeHlO68+Cun6Oq2CF1/qPUJdTdjbT2HgE+EtE+xJkhfxz4IinkvWrzsANzpohsJB/AmO5ifUzU12gT2CaI2jR/fl7CfgD3cM3W8BBcjbNfyVqF8jKAuP3n3BqKB+gtpPzDXoI1X+GQ287JQJZFySMHOXmtGoLmOOmn+IUDVQW2hvhR9UARHEkasAdpiGyIv/hqS4E3ZewpS4fHAOdvvNbbq9E4uVTl7tggn5fqz8hSoJwUBwF/+dxFhdO7+YrrlM0WRQGvSn89+PYLETob7Fovu24peua4u4mADBZAyBPpFGFkptFbbQI7AQkIpGKOG5xbfRp8fILzmxklAgMBAAGjggF8MIIBeDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIDqDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjAdBgNVHQ4EFgQUMeyUisFohsCzJKNsn2S/lfkjQCkwXQYDVR0fBFYwVDBSoFCgToZMaHR0cDovL3BraS1jcmwuc3ltYXV0aC5jb20vY2FfYjViMzY0YjA3M2U2ZGRjZGIzMzM1MDE4M2EzZWUzZTEvTGF0ZXN0Q1JMLmNybDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9wa2ktb2NzcC5zeW1hdXRoLmNvbTAfBgNVHSMEGDAWgBQqN3YVyu6QH6+ZpWNslTs2p6NEcDAtBgpghkgBhvhFARADBB8wHQYTYIZIAYb4RQEQAQIDAQGBstiEUhYGOTU3NjA4MDkGCmCGSAGG+EUBEAUEKzApAgEAFiRhSFIwY0hNNkx5OXdhMmt0Y21FdWMzbHRZWFYwYUM1amIyMD0wDQYJKoZIhvcNAQELBQADggIBAHqL/H7jKVdJxQiNE2mprPmKLnW7UQlN5lyMWGbumegytVCCsdeD/UsKgwRh99fWfoOnaBLgZNO8aBOhwDP1fhfALeYThT7SLYzImTox1DPQDBttg24jyN6u8w1PauLRRPimhDUZpu8eN/FOyRTHsfTRVVxRMI1GlLtDXw84u15jt/l35TDd5WLC+mEEmxOT1V6KhLzzjHIuId6FOyx4Ww9Sy9u4YBwoszIpdtGeUdr82jKqHcw87m5ayUjEEJ82yoEsD2M99+bHm3cmiI9HMbdmIvNxz2fNAficLnJg/qLDBZMLCH99K3NB/oqp+mMoMVabvpapS/6h/rrhJ1F1txkYzSa852nvh7A2Vra09qXISN3FD0RQzBQwzWn3GRrrelviAglQR7K4mWvF2F6E/PihNWpTzW85+dCFc1BxaHJRq1ytJoUXciqhx+AMPBTv4jjbV6i4TawBRKkczlUSmm8Bd3J95XJWpO+qyNQ4iRK4EfAJwBRoG7Qkkvw2T8y7bQRM05FrZSBmrdSR4MsWIaei/FwQPiSeCWehOZhNdJ61izUnKH+XO2lt+O6bf8qmRjdkhDEXG41UE5fF4eX5jNOHixMhjnqz0X1iFq41bTC9fMTFe7nrwVv1rH+y4ZpCzBkgFogHaZr5bqSRe6kgy5bTRcMlZLlzUchdgxkg7S35</X509Certificate>
            </X509Data>
        </KeyInfo>
    </Signature>
</SignedServiceMetadata>

However, the next log entry is

[2023-08-10T16:57:26,131] [smc-discovery-service] [WARN ] [qtp131953431-26] Found 0 endpoints for process [PeppolProcessIdentifier@0x1183233d: scheme=cenbii-procid-ubl; value=urn:fdc:peppol.eu:2017:poacc:billing:01:1.0] and transport profile 'peppol-transport-as4-v2_0' valid at 2023-08-10T16:57:26.129852 -- com.helger.smpclient.peppol.SMPClientReadOnly.getEndpointAt(SMPClientReadOnly.java:809)

Why would the second process entry not be selected?

Thanks!

phax commented 1 year ago

The ProcessIdentifier with the value urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 is contained twice. In that case, both <Endpoint> elements should be children of one <ServiceEndpointList> element.

The correct XML layout is like this:

<ProcessList>
    <Process>
        <ProcessIdentifier scheme="cenbii-procid-ubl" xmlns="http://busdox.org/transport/identifiers/1.0/">urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ProcessIdentifier>
        <ServiceEndpointList>
            <Endpoint transportProfile="busdox-transport-as2-ver1p0">
                <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
                    <Address>...</Address>
                </EndpointReference>
                <RequireBusinessLevelSignature>false</RequireBusinessLevelSignature>
                <MinimumAuthenticationLevel>1</MinimumAuthenticationLevel>
                <Certificate>...</Certificate>
                <ServiceDescription>...</ServiceDescription>
                <TechnicalContactUrl>...</TechnicalContactUrl>
                <TechnicalInformationUrl>...</TechnicalInformationUrl>
            </Endpoint>
            <Endpoint transportProfile="peppol-transport-as4-v2_0">
                <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
                    <Address>...</Address>
                </EndpointReference>
                <RequireBusinessLevelSignature>false</RequireBusinessLevelSignature>
                <MinimumAuthenticationLevel>1</MinimumAuthenticationLevel>
                <Certificate>...</Certificate>
                <ServiceDescription>...</ServiceDescription>
                <TechnicalContactUrl>...</TechnicalContactUrl>
                <TechnicalInformationUrl>...</TechnicalInformationUrl>
            </Endpoint>
        </ServiceEndpointList>
    </Process>
</ProcessList>
ri4a commented 1 year ago

Thanks Philip! I would never have spotted that ;). We are in contact with the SMP provider.