WFS authentication fails when trying to turn on visualization options
Geoserver published WFS layers added to an essentials site work fine with layer visualizations when the layer has no security. As soon as Geoserver security is enabled, Geocortex fails to authenticate and displays an error in the console "The remote server returned an error: (401) Unauthorized.". The Geocortex REST log also confirms this:
The username and password are configured against the WFS and present in the Configuration for the Site.xml file. So Geocortex Essentials REST does not seem to be including the authentication information. The exact place the error occurs is when Pick an attribute to symbolize is selected.
Is there a way to secure a Geoserver-based WFS layer which allows the layer visualizations to work, so that the layer is not open to the public?
<Event Timestamp="2018-02-24T10:59:46.5437153-05:00" Level="ERROR" Identity="Guest"><Message>Exception has been thrown by the target of an invocation.
The remote server returned an error: (401) Unauthorized.</Message></Event>
<Event Timestamp="2018-02-24T10:59:46.5457893-05:00" Level="DEBUG" Identity="Guest"><Message>WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.Net.WebClient.GetWebResponse(WebRequest request)
at Geocortex.Gis.Ows.WebServiceClient.b(Boolean A_0)
at Geocortex.Gis.Ows.WebServiceClient.OpenXmlReader(String nullNamespace, Boolean disposeClient)
at Geocortex.Gis.Ows.WebServiceCapability.OpenXmlReader(String relativeUriString, XElement content, String nullNamespace)
at Geocortex.Gis.Ows.WebFeatureService.PerformCount(XObject queryPayload, String nullNamespace)
at Geocortex.Gis.Services.Ows.WfsQueryFunctionality.Count(QueryFilter queryFilter)
at Geocortex.Essentials.Rest.Resources.ArcGisQueryOperation.PerformCount()
at Geocortex.Essentials.Rest.Resources.ArcGisQueryOperation.RepresentAsJson()
at Geocortex.Essentials.Rest.Resources.ResourceBase.WriteJson()
TargetInvocationException: Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at b.Invoke(RequestContext A_0, RestContext A_1)
at Geocortex.Essentials.Rest.EssentialsRestRequestDispatcher.a()
RestException: Exception has been thrown by the target of an invocation.
The remote server returned an error: (401) Unauthorized.
</Message></Event>
<Event Timestamp="2018-02-24T10:59:46.7056374-05:00" Level="ERROR" Identity="Guest"><Message>Exception has been thrown by the target of an invocation.
The remote server returned an error: (401) Unauthorized.</Message></Event>
<Event Timestamp="2018-02-24T10:59:46.7209446-05:00" Level="DEBUG" Identity="Guest"><Message>WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.Net.WebClient.GetWebResponse(WebRequest request)
at Geocortex.Gis.Ows.WebServiceClient.b(Boolean A_0)
at Geocortex.Gis.Ows.WebServiceClient.OpenXmlReader(String nullNamespace, Boolean disposeClient)
at Geocortex.Gis.Ows.WebServiceCapability.OpenXmlReader(String relativeUriString, XElement content, String nullNamespace)
at Geocortex.Gis.Ows.WebFeatureService.<PerformQuery>d__a.MoveNext()
at Geocortex.Gis.Services.Ows.WfsQueryContext.PerformQuery(DataSet dataSet, Int32 maxCount)
at Geocortex.Gis.Services.Ows.WfsQueryFunctionality.Query(QueryFilter queryFilter)
at Geocortex.Essentials.MapService.Query(QueryFilter queryFilter)
at Geocortex.Essentials.Rest.Resources.ArcGisQueryOperation.PerformQuery()
at Geocortex.Essentials.Rest.Resources.ArcGisQueryOperation.RepresentAsJson()
at Geocortex.Essentials.Rest.Resources.ResourceBase.WriteJson()
TargetInvocationException: Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at b.Invoke(RequestContext A_0, RestContext A_1)
at Geocortex.Essentials.Rest.EssentialsRestRequestDispatcher.a()
RestException: Exception has been thrown by the target of an invocation.
The remote server returned an error: (401) Unauthorized.
</Message></Event>
0
-
Hi,
I'm assuming this service using Basic Authentication. In Essentials Manager the Authentication methods for service connections are based around ESRI Authentication methods which are not suitable for WFS services unless actually published through ArcGIS Server.
I'd recommend opening a Support Ticket and asking for a copy of our modified ESRI Proxy that supports Basic Authentication. We don't have this up on our Code Gallery just yet.
Thanks,
Mike Ketler0
Du måste logga in om du vill lämna en kommentar.
Kommentarer
1 kommentar