We're updating the issue view to help you get more done. 

GetFeatureInfo fails on pre-genalized data store when the user is anonymous

Description

The error looks as follows:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: SecureFeatureSources has been fed with unexpected AccessLimits class class org.geoserver.security.WorkspaceAccessLimits at org.geoserver.security.decorators.SecuredFeatureSource.getReadQuery(SecuredFeatureSource.java:128) at org.geoserver.security.decorators.SecuredFeatureSource.getFeatures(SecuredFeatureSource.java:83) at org.geoserver.security.decorators.SecuredSimpleFeatureSource.getFeatures(SecuredSimpleFeatureSource.java:46) at org.geotools.data.gen.PreGeneralizedFeatureSource.getFeatures(PreGeneralizedFeatureSource.java:222) at org.geoserver.feature.retype.RetypingFeatureSource.getFeatures(RetypingFeatureSource.java:182) at org.vfny.geoserver.global.GeoServerFeatureSource.getFeatures(GeoServerFeatureSource.java:459)

This happens because the pre-generalized store picks a DataStore via the Repository interface, and then grabs the feature sources out of it, instead of asking the Catalog directly like the rest of the code does.

The ReadOnlyDataStore in turn fails to build an appropriate policy type for the returned secured feature source, causing the error above.

Environment

None

Status

Assignee

Andrea Aime

Reporter

Andrea Aime

Triage

None

Fix versions

Affects versions

None

Components

Priority

Medium