gdi-by / downloadclient

GDI-BY DownloadClient
Apache License 2.0
2 stars 0 forks source link

Fehlerhaftes WFS-Request-Building #78

Closed JuergenWeichand closed 5 years ago

JuergenWeichand commented 7 years ago

[LDBV] Von folgendem WFS können keine Daten abgerufen werden. http://demo.deegree.org/inspire-workspace/services/wfs?SERVICE=WFS&REQUEST=GetCapabilities

Fehler 1

Fehlermeldung: Bad-Request 400.

Ursache ist folgende fehlerhafte Anfrage, die an den Server geschickt wird. http://demo.deegree.org/inspire-workspace/services/wfs??service=wfs&request=GetFeature&version=2.0.0&typeNames=ad:Address&namespaces=xmlns(ad,urn:x-inspire:specification:gmlas:Addresses:3.0)&srsName=urn:ogc:def:crs:EPSG::4326&resultType=hits Die Anfrage enthält ??.

Vermutung: In den Capabilities steht am Ende der Get-URL ein ?. Dies ist zulässig und wird vom DownloadClient nicht korrekt berücksichtigt.

  <ows:Operation name="GetFeature">
      <ows:DCP>
        <ows:HTTP>
          <ows:Get xlink:href="http://demo.deegree.org/inspire-workspace/services/wfs?"/>
          <ows:Post xlink:href="http://demo.deegree.org/inspire-workspace/services/wfs"/>
        </ows:HTTP>
      </ows:DCP>
    </ows:Operation>

Fehler 2

Weiterhin wird bei GetFeature-Anfragen auf Grundlage von StoredQueries ein fehlerhafter namespaces-Parameter erzeugt. Der Parameter namespaces wird bei dieser Anfrage (StoredQueries) nicht benötigt. http://demo.deegree.org/inspire-workspace/services/wfs??service=wfs&request=GetFeature&version=2.0.0&STOREDQUERY_ID=urn:ogc:def:query:OGC-WFS::GetFeatureById&namespaces=xmlns(urn,)&ID=1&resultType=hits Die Anfrage enthält namespaces=xmlns(urn,).

gdi-by commented 7 years ago

Deutet auf alten Bug "#59 Kein Download über WFS bei Vendor Specific Parameter möglich", der eigentlich behoben sein sollte. [https://github.com/gdi-by/downloadclient-test/issues/59]

dmth commented 7 years ago

Hallo, den Fehler 1 haben wir mit dem heutigen PR behoben.

Zu Fehler 2: Hier müssen wir fachlich klären warum der Parameter überhaupt gesetzt wird. Hat es aktuell negative Auswirkungen wenn er bestehen bleibt?

JuergenWeichand commented 7 years ago

zu Fehler 2:

Der gültige WFS-Request-Parameter namespaces hat einen ungültigen Wert. Es ist davon auszugehen, dass strenge WFS-Implementierungen diesen Request als fehlerhaft ablehnen.

Vermutlich reicht es aus, wenn an folgender Stelle sichergestellt wird, dass queryType != "STOREDQUERY_ID" ist.

https://github.com/gdi-by/downloadclient/blob/a21dc2146a1f7ac79599bafcb5574f6d38fc9f77/src/main/java/de/bayern/gdi/processor/DownloadStepConverter.java#L246

s-l-teichmann commented 7 years ago

Aktuell draufgeschaut. Z.Z. wird hier ein anderer Code-Pfad (POST) in der Applikation benutzt, als dies beim Anlegen den Falls der Fall war. Man sollte sich noch einmal anschauen, ob der generierte POST-Request-Body standardkonform ist. Ich sehe z.B. aktuell keine Namespace-Elemente im generierten XML.

gdi-by commented 6 years ago

Wird mit neuem PR nach Umstellung auf XML DOM API nachgetestet.

gdi-by commented 6 years ago

nach PR 107 geprüft: keine NameSpace-Elemente im Post-Request vorhanden.

gdi-by commented 5 years ago

Behoben