Hi, good news. While simplifying my application in order to show you only the layers and the getFeaureInfo button, I noticed that the getfeatureinfo request was not switching the URL. Although both the local and remote layers are visible the featurinfo queries always the same url. In my case I inserted on every switch of the region also the changed specified featureInfo.url. And now it works. But I don't know how tell the featureInfo two or more urls without my switch of the region (via combobox). It doesn't recognise the changed url without specifying. At least for me I found a solution. Thank you for being so patient. Have a nice weekend Lucia
Dipl.-Geogr. Lucia Morper-Busch | Researcher University of Salzburg | Centre for Geoinformatics - Z_GIS Schillerstr.30 | Techno-Z, Block 15, 3rd floor | 5020 Salzburg, Austria Phone +43 (0)662 8044 5298 | Fax +43 (0)662 8044 5260 > Z_GIS...experts for the spatial view -----Ursprüngliche Nachricht----- Von: [email protected] [mailto:[email protected]] Im Auftrag von Andreas Hocevar Gesendet: Freitag, 15. Juli 2011 15:15 An: Morper-Busch, Lucia Cc: [email protected] Betreff: Re: [OpenLayers-Users] OpenLayers.ProxyHost = '/geoserver/rest/proxy?url='; Hi, Ext.data.HttpProxy has nothing to do with proxying requests to the same origin. I cannot comment on your observation that you were able to reach GeoServer instances on remote origins without setting a proxy. I also cannot comment on why no GetFeatureInfo request is fired for your remote WMS. At this point, it would be best if you provided some code, preferably as a minimal example, that shows what you've implemented. Andreas. On Fri, Jul 15, 2011 at 2:59 PM, Morper-Busch, Lucia <[email protected]> wrote: > Hello Andreas, > I changed the document rest.properties: > /**;GET=IS_AUTHENTICATED_ANONYMOUSLY > > Now for credentials I don't get prompted anymore, great! > > But the problem with only getting feature information for the first host > remains. > In the Firebug console there is no fired request displayed - nothing. > Without proxy there was at least an error: No subject found. > With proxy the request on the second host is not even launched. > > By the way I made some trials with GeoExt and I noticed that using the Geoext > WMSCapabilitiesStore you get the WMS layers without proxy from several > geoservers alternately. > I read in the documentation that the store is pre-configured with a built-in > Ext.data.HttpProxy. > > Why I can't take this solution for the getfeatureinfo request? > > Thanks for answer > Lucia > > > Dipl.-Geogr. Lucia Morper-Busch | Researcher > University of Salzburg | Centre for Geoinformatics - Z_GIS > Schillerstr.30 | Techno-Z, Block 15, 3rd floor | 5020 Salzburg, Austria > Phone +43 (0)662 8044 5298 | Fax +43 (0)662 8044 5260 >> Z_GIS...experts for the spatial view > > -----Ursprüngliche Nachricht----- > Von: Andreas Hocevar [mailto:[email protected]] > Gesendet: Donnerstag, 14. Juli 2011 16:06 > An: Morper-Busch, Lucia > Cc: [email protected] > Betreff: Re: [OpenLayers-Users] OpenLayers.ProxyHost = > '/geoserver/rest/proxy?url='; > > Hi, > > see replies inline. > > On Thu, Jul 14, 2011 at 3:46 PM, Morper-Busch, Lucia > <[email protected]> wrote: >> Hello Andreas, >> thank you for responding. >> >> Yes I get prompted for credentials. >> >> http://myhost:8080/geoserver/rest/proxy >> The following message appears: >> http://myhost:8080 verlangt einen Benutzernamen und ein Passwort. Ausgabe >> der Website: "GeoServer Realm" >> >> I don't want to give everybody full access to my geoserver. > > You don't need to. Although this question would be better suited for > the goeserver-users list, here's the answer: you can configure > separate security settings for every REST endpoint in > security/rest.properties in your GeoServer's data_dir, e.g. > > /rest/proxy;POST,PUT,DELETE=IS_AUTHENTICATED_ANONYMOUSLY > >> And what about the restriction of requesting only one host at the same time? > > There is no restriction like this. I'm just saying that when accessing > resources that require HTTP Basic Auth through a simple proxy like > this, the Authenticate headers will be sent with all subsequent > requests, even if they go to a different target server. Once > authenticated, this makes it (1) impossible to access target servers > with different credentials, and (2) may expose your credentials to > target servers that are not supposed to see them. > >> What's in your opinion the best solution for getting feature information of >> local and remote WMS layers? > > If you need to process feature information on the client, and your WMS > is GeoServer with WFS enabled as well, use WFS GetFeature instead of > WMS GetFeatureInfo, and use the Script protocol (see > http://openlayers.org/dev/examples/cross-origin.html). If you are > happy with the html or plain text output, use an IFrame and set its > url to the WMS GetFeatureInfo request you want. > > Andreas. > >> >> Greetings from Salzburg >> >> Lucia >> >> >> Dipl.-Geogr. Lucia Morper-Busch | Researcher >> University of Salzburg | Centre for Geoinformatics - Z_GIS >> Schillerstr.30 | Techno-Z, Block 15, 3rd floor | 5020 Salzburg, Austria >> Phone +43 (0)662 8044 5298 | Fax +43 (0)662 8044 5260 >>> Z_GIS...experts for the spatial view >> >> >> -----Ursprüngliche Nachricht----- >> Von: [email protected] [mailto:[email protected]] Im Auftrag >> von Andreas Hocevar >> Gesendet: Donnerstag, 14. Juli 2011 15:17 >> An: Morper-Busch, Lucia >> Cc: [email protected] >> Betreff: Re: [OpenLayers-Users] OpenLayers.ProxyHost = >> '/geoserver/rest/proxy?url='; >> >> Hi, >> >> do you get prompted for credentials when you access >> http://serverhost:8080/geoserver/rest/proxy ? If this happens, you >> have to change the GeoServer security settings to allow unauthorized >> access to the proxy. >> >> Other than that, you should not be using a proxy like this to access >> sites that require authentication. Because the authentication headers >> may be sent to other hosts that you access through the same proxy. >> >> Andreas. >> >> On Wed, Jul 13, 2011 at 4:55 PM, Morper-Busch, Lucia >> <[email protected]> wrote: >>> Hello! >>> I want to query local and remote feature information for WMS layers. >>> I have a server on which stays a javascript/html map viewer with ExtJs and >>> Openlayers, in the back runs a Geoserver 2.0.2. >>> I installed the Geoserver Proxy Extension on my server to access also a >>> remote server. >>> On my server the html file is in the C:\Program Files\GeoServer >>> 2.0.2\webapps\geoserver folder. >>> I added two hosts (without port) to the permitted hostnames: the server >>> localhost (but with the server address not 'localhost') and a remote server >>> host (IP address) where another geoserver is running. >>> When I try to access the html map viewer from another PC the getfeatureinfo >>> request requires an authentification (the geoserver username and password). >>> And only the first host on that I try to ask the feature information gives >>> me an reply, the other host is not responding. But when I begin with the >>> other host it's the other way round. Like random. >>> When I insert the url in the browser address box >>> (http://serverhost:8080/geoserver/rest/proxy?url=getfeatureinfo-request) I >>> have to authentificate! >>> On the server the getfeatureinfo request works without authentification, >>> but that's not intended. >>> Without proxyhost I get only the feature information for the layers that >>> are local. >>> I tried also OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url="; But the >>> response is only the plain text of the cgi file. >>> Who's familiar with proxy and local/remote WMS layers? >>> Thank you for suggestions >>> Lucia >>> >>> Dipl.-Geogr. Lucia Morper-Busch | Researcher >>> University of Salzburg | Centre for Geoinformatics - Z_GIS >>> Schillerstr.30 | Techno-Z, Block 15, 3rd floor | 5020 Salzburg, Austria >>> Phone +43 (0)662 8044 5298 | Fax +43 (0)662 8044 5260 >>>> Z_GIS...experts for the spatial view >>> >>> -----Ursprüngliche Nachricht----- >>> Von: [email protected] >>> [mailto:[email protected]] Im Auftrag von Bryan >>> Hempen >>> Gesendet: Samstag, 09. Juli 2011 23:42 >>> An: [email protected] >>> Betreff: [OpenLayers-Users] WFS getFeature with Filter resulting in >>> InternalServer Error >>> >>> Hey! >>> >>> I am trying to use the example at >>> http://openlayers.org/dev/examples/wfs-spatial-filter.html with my own >>> WFS (UMN Mapserver) but I am having a hard time getting some problems >>> fixed. When I load my test page for the first time OpenLayers sends the >>> following request: >>> >>> <wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WFS" >>> version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wfs >>> http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"> >>> <wfs:Query typeName="omega"> >>> <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> >>> <ogc:BBOX> >>> <ogc:PropertyName>the_geom</ogc:PropertyName> >>> <gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"> >>> <gml:coordinates decimal="." cs="," ts=" ">135.45,-47.425 >>> 157.95,-36.175</gml:coordinates> >>> </gml:Box> >>> </ogc:BBOX> >>> </ogc:Filter> >>> </wfs:Query> >>> </wfs:GetFeature> >>> >>> I get a valid response and the data is properly displayed on the map. >>> When, however, I try to use a spatial filter in the request, like this... >>> >>> <wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WFS" >>> version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wfs >>> http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"> >>> <wfs:Query xmlns:ms="http://mapserver.gis.umn.edu/mapserver" >>> typeName="ms:omega"> >>> <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> >>> <ogc:And> >>> <ogc:Intersects> >>> <ogc:PropertyName>the_geom</ogc:PropertyName> >>> <gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"> >>> <gml:outerBoundaryIs> >>> <gml:LinearRing> >>> <gml:coordinates decimal="." cs="," ts=" >>> ">142.28349609375,-40.5255859375 142.2615234375,-43.49189453125 >>> 148.1501953125,-44.15107421875 149.40263671875,-39.44892578125 >>> 142.28349609375,-40.5255859375</gml:coordinates> >>> </gml:LinearRing> >>> </gml:outerBoundaryIs> >>> </gml:Polygon> >>> </ogc:Intersects> >>> <ogc:BBOX> >>> <ogc:PropertyName>the_geom</ogc:PropertyName> >>> <gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"> >>> <gml:coordinates decimal="." cs="," ts=" ">135.45,-47.425 >>> 157.95,-36.175</gml:coordinates> >>> </gml:Box> >>> </ogc:BBOX> >>> </ogc:And> >>> </ogc:Filter> >>> </wfs:Query> >>> </wfs:GetFeature> >>> >>> ... one of the two following things will happen: >>> >>> 1. I get a "Internal Server Error The server encountered an internal >>> error or misconfiguration and was unable to complete your request." The >>> logfile says "Premature end of script headers: mapserv.exe, referer: >>> http://localhost/". >>> >>> 2. This is the response: >>> >>> <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" >>> xmlns:ms="http://mapserver.gis.umn.edu/mapserver" >>> xmlns:gml="http://www.opengis.net/gml" >>> xmlns:ogc="http://www.opengis.net/ogc" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xsi:schemaLocation="http://www.opengis.net/wfs >>> http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd >>> http://mapserver.gis.umn.edu/mapserver >>> http://localhost/cgi-bin/mapserv.exe?map=E:/ms4w/Apache/htdocs/mapservertest/wfs.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=ms:omega&OUTPUTFORMAT=XMLSCHEMA"> >>> >>> <gml:boundedBy> >>> <gml:Box srsName="EPSG:4326"> >>> <gml:coordinates>-1.000000,-1.000000 -1.000000,-1.000000</gml:coordinates> >>> </gml:Box> >>> </gml:boundedBy> >>> </wfs:FeatureCollection> >>> >>> Which one of the two possibilities happens appears to be random. I am >>> using the proxy.cgi and when I run http://localhost/cgi-bin/proxy.cgi I >>> see the OpenLayers website. Any ideas? >>> >>> This is how my wfs-spatial-filter.js looks like: >>> >>> OpenLayers.ProxyHost= "/cgi-bin/proxy.cgi?url="; >>> >>> ..... >>> >>> var layer = new OpenLayers.Layer.Vector("WFS", { >>> strategies: [new OpenLayers.Strategy.BBOX()], >>> protocol: new OpenLayers.Protocol.WFS({ >>> url: >>> "http://localhost/cgi-bin/mapserv.exe?map=E:/ms4w/Apache/htdocs/mapservertest/wfs.map", >>> featureType: "omega", >>> featurePrefix: "ms" >>> }) >>> }); >>> >>> .... >>> >>> The rest of the file looks exactly like in the example at >>> http://openlayers.org/dev/examples/wfs-spatial-filter.js >>> >>> Thanks for your help! >>> >>> Bryan >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.osgeo.org/mailman/listinfo/openlayers-users >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.osgeo.org/mailman/listinfo/openlayers-users >>> >> >> >> >> -- >> Andreas Hocevar >> OpenGeo - http://opengeo.org/ >> Expert service straight from the developers. >> > > > > -- > Andreas Hocevar > OpenGeo - http://opengeo.org/ > Expert service straight from the developers. > > _______________________________________________ > Users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/openlayers-users > -- Andreas Hocevar OpenGeo - http://opengeo.org/ Expert service straight from the developers. _______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
