geoserver / geofence

Advanced Authorization Manager for GeoServer
GNU General Public License v2.0
94 stars 55 forks source link

Geoserver grouped layers preview #249

Open eliud-kinyanjui opened 9 months ago

eliud-kinyanjui commented 9 months ago

Unable to preview grouped layers.

Geoserver error

com.google.common.util.concurrent.UncheckedExecutionException: org.geoserver.geofence.services.exception.BadRequestServiceEx: You can filter either by user or role org.geoserver.geofence.services.exception.BadRequestServiceEx: You can filter either by user or role You can filter either by user or role Geofence Error log ------------------------------------------------------ 14:32:10,167 INFO RuleReaderServiceImpl:119 - Requesting access for RuleFilter[user:"anonymous"+ role:"ROLE_ANONYMOUS"+ inst:name+:gcp_cloud_gs ip:DEFAULT serv:"WMS"+ req:"GETMAP"+ ws:"demo"+ layer:"kericho_cadastral_boundaries"+] 14:32:10,168 WARN RemoteInvocationTraceInterceptor:88 - Processing of HttpInvokerServiceExporter remote call resulted in fatal exception: org.geoserver.geofence.services.RuleReaderService.getAccessInfo org.geoserver.geofence.services.exception.BadRequestServiceEx: You can filter either by user or role at org.geoserver.geofence.services.RuleReaderServiceImpl.validateUserRoles(RuleReaderServiceImpl.java:537) at org.geoserver.geofence.services.RuleReaderServiceImpl.getRules(RuleReaderServiceImpl.java:478) at org.geoserver.geofence.services.RuleReaderServiceImpl.getAccessInfo(RuleReaderServiceImpl.java:120) at jdk.internal.reflect.GeneratedMethodAccessor70.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:78) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy81.getAccessInfo(Unknown Source) at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:212) at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:39) at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78) at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114) at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:74) at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870) at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844) at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.geoserver.geofence.gui.AuthenticationFilter.doFilter(AuthenticationFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:829)
etj commented 9 months ago

The exception reports: "You can filter either by user or role". It seems the filter is setting both user and role indeed: RuleFilter[user:"anonymous"+ role:"ROLE_ANONYMOUS"+ inst:name+:gcp_cloud_gs ip:DEFAULT serv:"WMS"+ req:"GETMAP"+ ws:"demo"+ layer:"kericho_cadastral_boundaries"+] This is not error in GeoFence per se.

Are you using GeoFence as a standalone instance or embedded in GeoServer? Are you querying GeoFence on your own or is it a GeoServer request? If this error is related to GeoServer, please create an issue on https://osgeo-org.atlassian.net/jira/software/c/projects/GEOS/issues

eliud-kinyanjui commented 9 months ago

The Geofence is a standalone instance and the request is coming from GeoServer.

etj commented 8 months ago

Hi @eliud-kinyanjui ,

pls make sure you are using the right version of GeoFence. You can find the compatibility matrix in the README file in the main GeoFence github page.

I guess you need at least 3.5.1 bc of the implementation of #222

eliud-kinyanjui commented 8 months ago

Thanks, will counter check and revert.