Hello,

I'm getting some odd behavior when setting layer permissions, particularly when setting permissions for "Anyone" to "No Permissions".

I've got GeoServer running inside Tomcat, with GeoNode/WorldMap running under Apache/mod_wsgi.

After GeoServer has been running for some amount of time, if I set permissions for "Anyone" to "No Permissions", the layer no longer appears on the map for any user including the layer owner, and the tomcat log contains the following error:

org.geoserver.wfs.WFSException: Could not find type: {http://geonode.org/}<layername> at org.geoserver.wfs.DescribeFeatureType.run(DescribeFeatureType.java:138) at org.geoserver.wfs.DefaultWebFeatureService.describeFeatureType(DefaultWebFeatureService.java:98)
    at sun.reflect.GeneratedMethodAccessor373.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at org.geoserver.ows.util.EMFLogger.invoke(EMFLogger.java:51)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy18.describeFeatureType(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor372.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:599)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:230) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)


I suspect some error must occur at some point, possibly during a file upload?, that somehow confuses GeoServer's security checks until it is restarted. If I just restart Tomcat, the layer security then behaves as expected: the layer does not appear on the map for unauthorized users, but does appear for all registered users.

However, some tiles appear as blanks with the error code 'LayerNotDefined Could not find layer geonode:<layername>'
This appears in the tomcat log:

31 Jan 16:09:44 WARN [geonode.security] - Error connecting to the GeoNode server for authentication purposes
java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
.............
followed immediately by:
31 Jan 16:09:45 ERROR [geoserver.ows] -
org.vfny.geoserver.wms.WmsException: Could not find layer geonode:<layername> at org.geoserver.wms.kvp.GetMapKvpRequestReader.parseLayers(GetMapKvpRequestReader.java:1099) at org.geoserver.wms.kvp.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:179) at org.geoserver.wms.kvp.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:71)
    at org.geoserver.ows.Dispatcher.parseRequestKVP(Dispatcher.java:1120)
    at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:457)

So it seems that security checks is are being made for each tile, and some of these checks are timing out.

Reply via email to