When trying to delete a granule from an ImageMosaic on a Secured GeoServer, the operation doesn't succeed returning this message:
"Coverage exists, but is no structured grid coverage".
The problem is that the DefaultSecurityFactory wraps the reader with a SecuredGridCoverage2DReader which implements standard GridCoverage2DReader.
Granules management can only be performed on StructuredGridCoverage2DReader so the Factory should wrap that interface with a Secured*Structured*GridCoverage2DReader implementing it.
When doing that, it should also take care of checking the wrapping policies and filters for operations like read, harvest, granules removal, coverage removal and so on.