Hi Vera,

To allow CORS in Tomcat add the following to the bottom of the web.xml file in 
the $TOMCAT_HOME/conf directory
     <filter>
         <filter-name>CorsFilter</filter-name>
         <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
         <init-param>
             <param-name>cors.allowed.origins</param-name>
             <param-value>*</param-value>
         </init-param>
     </filter>
     <filter-mapping>
         <filter-name>CorsFilter</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

Hope this helps.

Graham

From: Vera Green [mailto:vera.green...@gmail.com]
Sent: Tuesday, 16 April 2019 7:25 AM
To: Eric Plassot <e.plas...@laposte.net>
Cc: GeoServer Mailing List List <geoserver-users@lists.sourceforge.net>
Subject: Re: [Geoserver-users] Authenticate WFS-T

I managed to get the authentication to work as well.  Perhaps you could share 
how you did it for future reference.
From leaflet I used ajax as per one of the links I provided:

//this option uses the leaflet.wms.js plugin: 
https://github.com/heigeo/leaflet.wms

                var options_l = {'transparent': true,'tiled': true,'format': 
'image/png'};
                var source_l = 
L.WMS.source("https://your_server:8080/geoserver/wms?";, options_l);

                var  myLayer  = source_l.getLayer(' myLayer  ');// Get the layer
                // myLayer  .addTo(map);  //Optionally add the layer to the map
                layerControl.addOverlay( myLayer, " My Layer "); //Optionally 
add the layer to the layer control - object must exist.

// Assuming myLayer **WITHOUT** user:pass in the url
// The result is that when the request is first made a login window is 
initiated allowing the user to authenticate into GeoServer.
                /*
                $.ajax({
                    url:  myLayer.url,
                    data:  myLayer.params,
                    method: 'GET',
                    error: function(jqXHR, textStatus, errorThrown){
                        // Handle not authorised here
                        alert("Could not authorise!");
                    },
                    success: function(){
                        alert("Authorised!");
                        // Yuppieeeeee!
                        //map.addLayer(myLayer);    // The browser will set up 
the
                                                  // authentication in the 
request for you
                    }

                });  */

I am not certain exactly how this functions because after the initial login the 
credentials seam to be saved somewhere even when the page is reloaded and even 
when the browser is re-started.  I would like to understand where the 
credentials are stored.

Now I am trying to enable CORES on tomcat as the next issue is a "No 
'Access-Control-Allow-Origin' header is present on the requested resource." 
error.
https://server.boundlessgeo.com/docs/latest/sysadmin/cors/index.html

Cheers,
Vera

On Mon, Apr 15, 2019 at 2:56 PM Eric Plassot 
<e.plas...@laposte.net<mailto:e.plas...@laposte.net>> wrote:

hello
I finally managed to authenticate myself
now it's the content of the query that does not pass :
org.geoserver.wfs.WFSException: Error performing insert: Error inserting 
features
Yet I try to replicate the examples
Le 15/04/2019 à 00:05, Vera Green a écrit :
I have the same problem with leaflet and WMS. Same setup with data in 
postgreSQL, basic authentication and the Catalog Mode set to Challenge which I 
have read is required.
This related post suggest the authentication should be "handled automatically" 
but this does not occur:
https://gis.stackexchange.com/questions/227553/geoserver-rest-authentication-form
 
<https://gis.stackexchange.com/questions/227553/geoserver-rest-authentication-form>
this post suggests using the fetch API although personally I was not able to 
implement this:
https://gis.stackexchange.com/questions/284954/how-to-authenticate-wfs-requests-being-made-to-geoserver-through-openlayers-appl/285069
This post is also related:
https://stackoverflow.com/questions/51758817/how-to-authorize-accessing-the-geoserver-layers
And then there is also this post:
https://gis.stackexchange.com/questions/86790/authentication-in-geoserver-2-4-x-from-a-web-application/97448#97448
Despite of this I am still unable to establish the link between GeoServer and 
Leaflet receiving the 401 error.  Note that if I am already logged into 
GeoSever then the WMS layer works fine, therefore I am confident that 
establishing JavaScript or ajax based method to authenticate the user into 
GeoServer at the beginning of the session is the solution.  However I am still 
unsure about how to do this.
Vera
On Sun, Apr 14, 2019, 1:36 PM Eric Plassot via Geoserver-users 
<geoserver-users@lists.sourceforge.net<mailto:geoserver-users@lists.sourceforge.net>>
 wrote:

Hello
I have a layer cite: administration that is linked to a POSTGRESQL database and 
I can not configure a wfs-t authentication. My query in openlayers always gives 
error 401 and in geoserver log 'Failed login'
The request is
<wfs: Transaction service = "WFS" version = "1.1.0" xmlns: wfs = 
"http://www.opengis.net/wfs";<http://www.opengis.net/wfs> xmlns: cite = 
"http://www.opengeospatial.net/cite";<http://www.opengeospatial.net/cite> xmlns: 
gml = "http://www.opengis.net/gml";<http://www.opengis.net/gml> xmlns: xsi = 
"http://www.w3.org/2001/XMLSchema-instance";<http://www.w3.org/2001/XMLSchema-instance>
 xsi: schemaLocation = "http: //www.opengis .net / wfs 
http://schemas.opengis.net/wfs/1.1.0/WFS-transaction.xsd 
http://www.opengeospatial.net/cite http://ip_adress:8080/geoserver/wfs/ 
DescribeFeatureType? Typename = cite: administration "> <wfs: Insert> <cite: 
administration> <cite: geom> <gml: MultiSurface xmlns =" 
http://www.opengis.net/gml "srsName =" EPSG: 2154 " <gml: surfaceMember> <gml: 
Polygon srsName = "EPSG: 2154"> <gml: exterior> <gml: LinearRing srsName = 
"EPSG: 2154"> <gml: posList srsDimension = "2"> 793236.2285561005 
5401066.196149358 793193.2327276901 5400993.3421067735 793272.0584131093 
5400974.232849702 793300.7222987162 5401037.532263751 793236.2285561005 
5401066.196149358 </ gml: posList> </ gml: LinearRing> </ gml: exterior> </ 
gml: Polygon> </ gml: surfaceMember> </ gml: MultiSurface> < / cite: geom> </ 
cite: Body> </ wfs: insert> </ wfs: Transaction>

 and in openlayers I try:
var headers = new Headers ({
     'Authorization': 'Basic' + btoa (username + ':' + password),
     'Content-Type': 'application / x-www-form-urlencoded'
   })
fetch ( 'http: // ip_adress: 8080 / geoserver / wfs', {
        method: 'POST',
headers: headers,
        body: request
      }). then (function (response) {
        return response.text ();
      }). then (function (text) {
        var result = text;
console.log ( 'result -------------------------------------------- ------ ', 
result)
 });

I set up a user group
I tried to put a data access rule for this layer - cite.administration.w - but
it does not memorize. Even with reading the geoserver manual 2.15 I can not do 
it.
Can you help me please ?
_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net<mailto:Geoserver-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geoserver-users

________________________________

CONFIDENTIALITY NOTICE AND DISCLAIMER
The information in this transmission may be confidential and/or protected by 
legal professional privilege, and is intended only for the person or persons to 
whom it is addressed. If you are not such a person, you are warned that any 
disclosure, copying or dissemination of the information is unauthorised. If you 
have received the transmission in error, please immediately contact this office 
by telephone, fax or email, to inform us of the error and to enable 
arrangements to be made for the destruction of the transmission, or its return 
at our cost. No liability is accepted for any unauthorised use of the 
information contained in this transmission.
_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to