Skip to content

The document obtained from URL 'https://ec.europa.eu/tools/lotl/eu-lotl.xml' is not a valid XML! #157

Description

@svenzik

tomcat temp kaustas (var/cache/tomcat/temp/digidoc4jTSLCache/) oli vigane lotl xml fail,
sisuks html milles <title>Server temporarily unavailable</title> mis tekitatud 16.06.26 08:35
Samal ajal kui esimene viga allkirjastamisega.

org.digidoc4j.exceptions.TslDownloadException: Failed to download LoTL: https://ec.europa.eu/tools/lotl/eu-lotl.xml
        at org.digidoc4j.impl.asic.tsl.DefaultTSLRefreshCallback.lambda$validateDownloadState$2(DefaultTSLRefreshCallback.java:206)
        at java.base/java.util.Optional.map(Optional.java:260)
        at org.digidoc4j.impl.asic.tsl.DefaultTSLRefreshCallback.validateDownloadState(DefaultTSLRefreshCallback.java:206)
        at org.digidoc4j.impl.asic.tsl.DefaultTSLRefreshCallback.validateState(DefaultTSLRefreshCallback.java:176)
        at org.digidoc4j.impl.asic.tsl.DefaultTSLRefreshCallback.ensureLOTLState(DefaultTSLRefreshCallback.java:98)
        at org.digidoc4j.impl.asic.tsl.DefaultTSLRefreshCallback.ensureTSLState(DefaultTSLRefreshCallback.java:91)
        at org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource.refreshTsl(LazyTslCertificateSource.java:257)
        at org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource.initTsl(LazyTslCertificateSource.java:247)
        at org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource.refreshIfCacheExpired(LazyTslCertificateSource.java:233)
        at org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource.getCertificateSource(LazyTslCertificateSource.java:239)
        at org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource.addTSLCertificate(LazyTslCertificateSource.java:82)

Faili sisu:

https___ec_europa_eu_tools_lotl_eu_lotl_xml:

<!DOCTYPE html>
<html lang="en" class="no-js">
  <head>
    <meta charset="utf-8" />
    <title>Server temporarily unavailable</title>
...
            </span><span lang="en" class="ecl-u-sr-only">English</span>
            <div class="ecl-u-ml-m ecl-u-width-100">
              <div
                class="ecl-u-type-prolonged-m ecl-u-type-color-blue-100 ecl-u-type-bold" role="heading" aria-level="2" lang="en"
              >
                The server is temporarily unavailable
              </div>
              <p
                class="ecl-u-type-paragraph ecl-u-border-bottom ecl-u-border-color-grey-15 ecl-u-mt-s ecl-u-mb-none ecl-u-pb-m" lang="en"
              >
                We apologise for any inconvenience. Please try again later.
              </p>
            </div>
          </div>
...

Järgmised allkirjastamised ei laeta LoTL-it uuesti alla ning kasutatakse vigast faili (kataloogist digidoc4jTSLCache).
Selle tulemusena järgnevad allkirjastamised ebaõnnestuvad.

RIA vastus

Võimalik, et Digidoc4j on omale katkiselt xml-i alla tõmmanud ja enam ei suutnud seda parsida ega uuesti alla tõmmata. Hetkel EC XML iseenesest on töökorras ja kättesaadav. [https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo/tl-info]
Võib proovida kui nimetada katalogi /tmp/digidoc4jTSLCache ümber ja vaadata kas siis hakkab tööle? Selle tulemusel peaks Digidoc4j automaatselt tõmbama uuesti LOTLi alla.

Ajutine lahendus töötas.

Lõplik lahendus peaks olema digidoc4j hallata:

  1. Kui LoTL HTTP status pole 200 või sisuks pole XML, siis faili ei cachita või analüüsimiseks paigutatakse mujale katalogi kui cahcest digidoc4jTSLCache
  2. Informeerida võimalusel https://ec.europa.eu/tools/lotl/eu-lotl.xml teenuse omanikku, et vea puhul tagastati html.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions