if (!canSecure(clazz)) throw new IllegalArgumentException( "Don't know how to wrap objects of class " + object.getClass());
@Test public void testFilterOnStructured() throws Exception { final Filter securityFilter = ECQL.toFilter("A > 10"); final Filter requestFilter = ECQL.toFilter("B < 10"); DefaultSecureDataFactory factory = new DefaultSecureDataFactory(); // create the mocks we need Format format = setupFormat(); StructuredGridCoverage2DReader reader = createNiceMock(StructuredGridCoverage2DReader.class); expect(reader.getFormat()).andReturn(format).anyTimes(); setupReadAssertion(reader, requestFilter, securityFilter); CoverageAccessLimits accessLimits = new CoverageAccessLimits(CatalogMode.HIDE, securityFilter, null, null); Object securedObject = factory.secure(reader, WrapperPolicy.readOnlyHide(accessLimits)); assertTrue(securedObject instanceof SecuredStructuredGridCoverage2DReader); SecuredStructuredGridCoverage2DReader secured = (SecuredStructuredGridCoverage2DReader) securedObject; final ParameterValue pv = ImageMosaicFormat.FILTER.createValue(); pv.setValue(requestFilter); secured.read(new GeneralParameterValue[] {pv}); }
@Before public void setup() throws SchemaException { GeoServerExtensionsHelper.singleton( "secureDataFactory", new DefaultSecureDataFactory(), SecuredObjectFactory.class); this.lastVisitor = null; SimpleFeatureType originalSchema = DataUtilities.createType( "BasicPolygons", "the_geom:MultiPolygon:srid=4326,ID:String,value:int"); collection = new ListFeatureCollection(originalSchema) { public void accepts(FeatureVisitor visitor, ProgressListener progress) throws IOException { lastVisitor = visitor; }; }; }