<div dir="ltr">Hello,<div><br></div><div>you should pass through GeoNode proxies in order to authenticate on GeoServer correctly.</div><div><br></div><div>Currently there exist several methods.</div><div><br></div><div>This is for anonymous/public (no auth) requests -> <a href="http://geonode/gs/ows">http://geonode/gs/ows</a></div><div><br></div><div>Those are for protected requests -> </div><div>   <a href="http://geonode/gs/wms">http://geonode/gs/wms</a></div><div>   <a href="http://geonode/gs/wfs">http://geonode/gs/wfs</a> </div><div>   <a href="http://geonode/gs/wcs">http://geonode/gs/wcs</a> <br></div><div> <br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">Il giorno gio 25 ott 2018 alle ore 11:47 John, Steffen <<a href="mailto:s.john@atenekom.eu">s.john@atenekom.eu</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="text-align:left;direction:ltr">
<div>Hi!</div>
<div><br>
</div>
<div>I'm using GeoNode 2.10rc4 together with GeoServer 2.14 and I seem to have an Authentication Issue.</div>
<div><br>
</div>
<div>I need to send a GetCapabilities-Request to geonode/geoserver/ows? from an external app, which uses basis authentication. I'm using the credentials of the Geoserver Admin User but GeoServer doesn't seem to check the Basic Authentication and does not include
 layers in the Capabilities which are not accessible by everyone.</div>
<div><br>
</div>
<div>I included the GeoServer Log of this request at the end of this mail. Do you have any idea what is wrong or need to be changed in GeoServer?</div>
<div><br>
</div>
<div>thanks for your help.</div>
<div><br>
</div>
<div><br>
</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/web/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/gwc/rest/web/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_security_check'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_security_check/'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_oauth2_geonode_login'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_oauth2_geonode_login/'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_security_logout'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_security_logout/'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_oauth2_geonode_logout'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/j_spring_oauth2_geonode_logout/'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/rest/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/gwc/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/geofence/rest/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/geofence/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Checking match of request : 'Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities'; against '/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Request matched by universal pattern '/**'</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security.IncludeQueryStringAntPathRequestMatcher] - Matched Path: /wms, QueryString: SERVICE=WMS&request=GetCapabilities with /**</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security] - Inspecting the http request looking for the Custom Session ID.</div>
<div>2018-10-25 09:32:11,938 DEBUG [org.geoserver.security] - Found 2 cookies!</div>
<div>2018-10-25 09:32:11,974 DEBUG [org.geoserver.security] - preAuthenticatedPrincipal = null, trying to authenticate</div>
<div>2018-10-25 09:32:11,975 DEBUG [org.geoserver.monitor.OpenSessionInViewFilter] - Using SessionFactory 'hibSessionFactory' for OpenSessionInViewFilter</div>
<div>2018-10-25 09:32:11,975 DEBUG [org.geoserver.monitor.OpenSessionInViewFilter] - Opening single Hibernate Session in OpenSessionInViewFilter</div>
<div>2018-10-25 09:32:11,975 DEBUG [org.geoserver.monitor] - Testing /wms for monitor filtering</div>
<div>2018-10-25 09:32:11,994 DEBUG [org.geoserver.gwc.controller.GwcWmtsRestUrlHandlerMapping] - Looking up handler method for path /wms</div>
<div>2018-10-25 09:32:11,994 DEBUG [org.geoserver.gwc.controller.GwcWmtsRestUrlHandlerMapping] - Did not find handler method for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 TRACE [org.geoserver.ows.OWSHandlerMapping] - No handler mapping found for [/wms]</div>
<div>2018-10-25 09:32:11,994 DEBUG [org.geoserver.ows.OWSHandlerMapping] - Mapping [/wms] to HandlerExecutionChain with handler [<a href="mailto:org.geoserver.ows.Dispatcher@7a6b2128" target="_blank">org.geoserver.ows.Dispatcher@7a6b2128</a>] and 1 interceptor</div>
<div>2018-10-25 09:32:11,998 INFO [org.geoserver.wms] - </div>
<div>Request: getServiceInfo</div>
<div>2018-10-25 09:32:11,999 INFO [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] starting, processing through flow controllers</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] checking flow controller BasicOWSController(wfs.getfeature.=application/msexcel,<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@59ed6e35" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@59ed6e35</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] passed flow controller BasicOWSController(wfs.getfeature.=application/msexcel,<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@59ed6e35" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@59ed6e35</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] checking flow controller
<a href="mailto:org.geoserver.flow.controller.UserConcurrentFlowController@34ca61af" target="_blank">
org.geoserver.flow.controller.UserConcurrentFlowController@34ca61af</a></div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - UserFlowController(6,GS_CFLOW_-7151e4b2:166875a40f3:-7ff8) queue size 1</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - UserFlowController(6,GS_CFLOW_-7151e4b2:166875a40f3:-7ff8) total queues 1</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] passed flow controller
<a href="mailto:org.geoserver.flow.controller.UserConcurrentFlowController@34ca61af" target="_blank">
org.geoserver.flow.controller.UserConcurrentFlowController@34ca61af</a></div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] checking flow controller BasicOWSController(wms.getmap,<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@8d6e42f" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@8d6e42f</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] passed flow controller BasicOWSController(wms.getmap,<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@8d6e42f" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@8d6e42f</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] checking flow controller BasicOWSController(gwc,<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@2b97e67c" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@2b97e67c</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] passed flow controller BasicOWSController(gwc,<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@2b97e67c" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@2b97e67c</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] checking flow controller GlobalFlowController(<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@1939b9fd" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@1939b9fd</a>)</div>
<div>2018-10-25 09:32:11,999 DEBUG [org.geoserver.flow] - Request [WMS 1.3.0 GetCapabilities] passed flow controller GlobalFlowController(<a href="mailto:org.geoserver.flow.controller.SimpleThreadBlocker@1939b9fd" target="_blank">org.geoserver.flow.controller.SimpleThreadBlocker@1939b9fd</a>)</div>
<div>2018-10-25 09:32:11,999 INFO [org.geoserver.flow] - Request control-flow performed, running requests: 1, blocked requests: 0</div>
<div>2018-10-25 09:32:12,000 INFO [org.geoserver.wms] - </div>
<div>Request: getCapabilities</div>
<div>BaseUrl = <a href="http://geonode:80/geoserver/" target="_blank">http://geonode:80/geoserver/</a></div>
<div>Get = false</div>
<div>Namespace = null</div>
<div>RawKvp = {REQUEST=GetCapabilities, SERVICE=WMS}</div>
<div>Request = GetCapabilities</div>
<div>RequestCharset = null</div>
<div>UpdateSequence = null</div>
<div>Version = 1.3.0</div>
<div>2018-10-25 09:32:12,007 DEBUG [org.geoserver.wms.capabilities] - producing a capabilities document for GetCapabilities [service: WMS, version: 1.3.0]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting access limits for Layer layer2</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting access limits for Resource layer2</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - ResourceInfo filter: RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:"WMS"+ req:"GETCAPABILITIES"+ ws:"geonode"+ layer:"layer2"+]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence.cache] - Request for RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:"WMS"+ req:"GETCAPABILITIES"+ ws:"geonode"+ layer:"layer2"+]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Returning mode HIDE for resource FeatureTypeInfoImpl[layer2]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Returning VectorAccessLimits [readAttributes=null, writeAttributes=null, writeFilter=Filter.EXCLUDE, readFilter=Filter.EXCLUDE, mode=HIDE] for layer geonode:layer2 and user null</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting access limits for workspace geonode</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting admin auth for Workspace geonode</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - AdminAuth filter: RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:ANY req:ANY ws:"geonode"+ layer:ANY]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence.cache] - AdminAuth Request for RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:ANY req:ANY ws:"geonode"+ layer:ANY]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Admin auth for User: Workspace:geonode: false</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting access limits for Layer layer1</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting access limits for Resource layer1</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - ResourceInfo filter: RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:"WMS"+ req:"GETCAPABILITIES"+ ws:"geonode"+ layer:"layer1"+]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence.cache] - Request for RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:"WMS"+ req:"GETCAPABILITIES"+ ws:"geonode"+ layer:"layer1"+]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Returning mode HIDE for resource FeatureTypeInfoImpl[layer1]</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Returning VectorAccessLimits [readAttributes=null, writeAttributes=null, writeFilter=Filter.EXCLUDE, readFilter=Filter.EXCLUDE, mode=HIDE] for layer geonode:layer1 and user null</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting access limits for workspace geonode</div>
<div>2018-10-25 09:32:12,009 DEBUG [org.geoserver.geofence] - Getting admin auth for Workspace geonode</div>
<div>2018-10-25 09:32:12,010 DEBUG [org.geoserver.geofence] - AdminAuth filter: RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:ANY req:ANY ws:"geonode"+ layer:ANY]</div>
<div>2018-10-25 09:32:12,010 DEBUG [org.geoserver.geofence.cache] - AdminAuth Request for RuleFilter[user:DEFAULT role:ANY inst:name+:default-gs ip:"172.20.0.5"+ serv:ANY req:ANY ws:"geonode"+ layer:ANY]</div>
<div>2018-10-25 09:32:12,010 DEBUG [org.geoserver.geofence] - Admin auth for User: Workspace:geonode: false</div>
<div>2018-10-25 09:32:12,010 DEBUG [org.geoserver.wms.capabilities] - Collecting summarized latlonbbox and common SRS...</div>
<div>2018-10-25 09:32:12,010 DEBUG [org.geoserver.wms.capabilities] - Summarized LatLonBBox is Env[0.0 : -1.0, 0.0 : -1.0]</div>
<div>2018-10-25 09:32:12,018 DEBUG [org.geoserver.filters] - Compressing output for mimetype: text/xml</div>
<div>2018-10-25 09:32:12,023 INFO [org.geoserver.flow] - releasing flow controllers for [WMS 1.3.0 GetCapabilities]</div>
<div>2018-10-25 09:32:12,023 INFO [org.geoserver.flow] - Request completed, running requests: 0, blocked requests: 0</div>
<div>2018-10-25 09:32:12,024 DEBUG [org.geoserver.monitor.OpenSessionInViewFilter] - Closing single Hibernate Session in OpenSessionInViewFilter</div>
<div>2018-10-25 09:32:12,024 DEBUG [org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1] - SecurityContextHolder now cleared, as request processing completed</div>
<div>2018-10-25 09:32:48,595 DEBUG [org.geoserver.wps] - Removing statuses matching [[[ NOT [ completionTime IS NULL ] ] AND [ completionTime Before 2018-10-25T09:12Z ]] AND [[ NOT [ lastUpdated IS NULL ] ] AND [ lastUpdated Before 2018-10-25T09:12Z ]]]</div>
<div></div>
<div></div>
</div>

_______________________________________________<br>
geonode-users mailing list<br>
<a href="mailto:geonode-users@lists.osgeo.org" target="_blank">geonode-users@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/geonode-users" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/geonode-users</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><span><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;font-size:11pt;white-space:pre-wrap">==</span><br></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">GeoServer Professional Services from the experts! Visit <a href="http://goo.gl/it488V" target="_blank">http://goo.gl/it488V</a> for more information.</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">==</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">Ing. Alessio Fabiani</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">@alfa7691</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">Founder/Technical Lead</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">GeoSolutions S.A.S.</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">Via di Montramito 3/A - </span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">55054  Massarosa (LU) - </span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">Italy</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">phone: +39 0584 962313</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">fax:     +39 0584 1660272</span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">mob:   +39 331 6233686</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><a href="http://www.geo-solutions.it" target="_blank">http://www.geo-solutions.it</a></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><a href="http://twitter.com/geosolutions_it" target="_blank">http://twitter.com/geosolutions_it</a></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#222222;background-color:#ffffff;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">-------------------------------------------------------</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap">This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap"><br></span></p></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div>