X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.geo%2Fsrc%2Forg%2Fargeo%2Fapp%2Fgeo%2Fhttp%2FWfsHttpHandler.java;h=8c143dbf01510d7eb10a56b588ec50b82ac819ea;hb=e9978679e86dcd297270432e4ed953b782f1e7c6;hp=c9a1e85c8c5867708b773a2b3d1345b6cad92090;hpb=6e13b9416a5fd1f5477eb7233f86d3eacbb88c55;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java b/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java index c9a1e85..8c143db 100644 --- a/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/http/WfsHttpHandler.java @@ -34,8 +34,11 @@ import org.argeo.app.geo.GeoJson; import org.argeo.app.geo.GeoUtils; import org.argeo.app.geo.GpxUtils; import org.argeo.app.geo.JTS; +import org.argeo.app.geo.acr.GeoEntityUtils; import org.argeo.cms.acr.json.AcrJsonUtils; +import org.argeo.cms.auth.RemoteAuthUtils; import org.argeo.cms.http.HttpHeader; +import org.argeo.cms.http.RemoteAuthHttpExchange; import org.argeo.cms.http.server.HttpServerUtils; import org.argeo.cms.util.LangUtils; import org.geotools.api.feature.GeometryAttribute; @@ -57,7 +60,6 @@ import org.geotools.wfs.GML.Version; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Envelope; import org.locationtech.jts.geom.Geometry; -import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.Polygon; import com.sun.net.httpserver.HttpExchange; @@ -200,7 +202,10 @@ public class WfsHttpHandler implements HttpHandler { if (featureAdapter == null) throw new IllegalStateException("No feature adapter found for " + typeName); // f.isContentClass(typeName); - featureAdapter.addConstraintsForFeature((AndFilter) search.getWhere(), typeName); + RemoteAuthUtils.doAs(() -> { + featureAdapter.addConstraintsForFeature((AndFilter) search.getWhere(), typeName); + return null; + }, new RemoteAuthHttpExchange(exchange)); } if (bbox != null) { @@ -356,12 +361,7 @@ public class WfsHttpHandler implements HttpHandler { protected Geometry getDefaultGeometry(Content content) { if (content.hasContentClass(EntityType.geopoint)) { - double latitude = content.get(WGS84PosName.lat, Double.class).get(); - double longitude = content.get(WGS84PosName.lon, Double.class).get(); - - Coordinate coordinate = new Coordinate(longitude, latitude); - Point the_geom = JTS.GEOMETRY_FACTORY.createPoint(coordinate); - return the_geom; + return GeoEntityUtils.toPoint(content); } return null; }