geoserver/geoserver — pull request #341 by NielsCharlier (2013-09-29 21:33:21+00:00)
Title: GEOS-4217 Support Data Security with GWC requests

The patch was particularly written with the GeoFence security plugin for GeoServer in mind, but works as well with the default security in GeoServer.

This option can be turned on and turned off using the GeoServer web administration (in "Caching Defaults"). The default is turned off, in which case everything works
as before the patch.

When turned on, the GWC dispatcher will do a data security check before calling GeoWebCache. It will do this by trying to access the requested layer(s) using the GeoServer webcache,
just like WFS and WMS requests retrieve the layers from the catalog and fail if they have been protected (the security is in the catalog).

When doing a WMS-C request, the check does something more, it will also check if the requested bounding box is accessible. It will do that by getting the "reading filter"
of the layer from the catalog (which may give a limited view on the data), however only the use boundaries in the filter are supported.

When using GeoServer regular security, layer security is totally separate from service security. However, in geofence (and possibly other tools) it is possible
to make particular combinations. In this case the WMS-C service inherits all security rules from the regular WMS service; while all other GWC services will get their security
from rules associated with the GWC service itself.