public Set<String> layerFormats(String layerName) { TileLayer layer; try { layer = layers.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw Throwables.propagate(e); } return layer.getMimeTypes() .stream() .map(MimeType::getFileExtension) .collect(Collectors.toSet()); }
public Set<String> layerFormats(String layerName) { TileLayer layer; try { layer = layers.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw Throwables.propagate(e); } return layer.getMimeTypes() .stream() .map(MimeType::getFileExtension) .collect(Collectors.toSet()); }
public Set<String> layerGridsets(String layerName) { TileLayer layer; try { layer = layers.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw Throwables.propagate(e); } return layer.getGridSubsets(); }
public String layerId(String layerName) { TileLayer layer; try { layer = layers.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw Throwables.propagate(e); } return layer.getId(); }
public String layerId(String layerName) { TileLayer layer; try { layer = layers.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw Throwables.propagate(e); } return layer.getId(); }
public Set<String> layerGridsets(String layerName) { TileLayer layer; try { layer = layers.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw Throwables.propagate(e); } return layer.getGridSubsets(); }
/** * @param layerName * @return the tile layer named {@code layerName} * @throws IllegalArgumentException if no {@link TileLayer} named {@code layeName} is found */ public TileLayer getTileLayerByName(String layerName) throws IllegalArgumentException { TileLayer tileLayer; try { tileLayer = tld.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw new IllegalArgumentException(e.getMessage(), Throwables.getRootCause(e)); } return tileLayer; }
@Bean public TileLayerDispatcher tileLayerDispatcher() throws GeoWebCacheException { TileLayerDispatcher tileLayerDispatcher = mock(TileLayerDispatcher.class); TileLayer tileLayer = mock(TileLayer.class); when(tileLayer.getBlobStoreId()).thenReturn("mbtiles-store"); when(tileLayerDispatcher.getTileLayer("europe")).thenReturn(tileLayer); return tileLayerDispatcher; }
private PagePyramid newPagePyramid(final TileSet tileSet) { final String layerName = tileSet.getLayerName(); final TileLayer tileLayer; try { tileLayer = tld.getTileLayer(layerName); } catch (GeoWebCacheException e) { throw new IllegalArgumentException(e); } final String gridsetId = tileSet.getGridsetId(); final GridSubset gridSubset = tileLayer.getGridSubset(gridsetId); return newPagePyramid(gridSubset); }
@Before public void setup() throws Exception { layers = mock(TileLayerDispatcher.class); bsa = mock(BlobStoreAggregator.class); defaultStorageFinder = mock(DefaultStorageFinder.class); configuration = mock(XMLConfiguration.class); configs = new LinkedList<>(); when(bsa.getBlobStores()).thenReturn(configs); when(defaultStorageFinder.getDefaultPath()) .thenReturn(tmpFolder.getRoot().getAbsolutePath()); defaultLayer = mock(TileLayer.class); when(layers.getTileLayer(eq(DEFAULT_LAYER))).thenReturn(defaultLayer); when(layers.getTileLayer((String) argThat(new NotEq<>(DEFAULT_LAYER)))) .thenThrow(new GeoWebCacheException("layer not found")); }
@Before public void before() throws Exception { S3BlobStoreInfo config = getConfiguration(); TileLayerDispatcher layers = mock(TileLayerDispatcher.class); LockProvider lockProvider = new NoOpLockProvider(); TileLayer layer = mock(TileLayer.class); when(layers.getTileLayer(eq(DEFAULT_LAYER))).thenReturn(layer); when(layer.getName()).thenReturn(DEFAULT_LAYER); when(layer.getId()).thenReturn(DEFAULT_LAYER); blobStore = new S3BlobStore(config, layers, lockProvider); }
public void testTruncateLayerFully() throws Exception { when(tld.getTileLayer(eq(tileLayerGroup.getName()))).thenThrow( new GeoWebCacheException("fake")); mediator.truncate(tileLayerGroup.getName()); verify(storageBroker, never()).deleteByGridSetId(anyString(), anyString()); mediator.truncate(tileLayer.getName()); verify(storageBroker, times(tileLayer.getGridSubsets().size())).deleteByGridSetId( anyString(), anyString()); }
@Test public void testProxyDefaultWhitelistLimitedWhenSecure() throws Exception { SecurityDispatcher secDisp = mock(SecurityDispatcher.class); when(secDisp.isSecurityEnabled()).thenReturn(true); GeoWebCacheDispatcher gwcd = mock(GeoWebCacheDispatcher.class); when(gwcd.getServletPrefix()).thenReturn(null); service = new WMSService(sb, tld, mock(RuntimeStats.class), new NullURLMangler(), gwcd); service.setSecurityDispatcher(secDisp); String layerName = "mockLayer"; TestLayer tileLayer = mock(TestLayer.class); when(tld.getTileLayer(layerName)).thenReturn(tileLayer); testProxyRequestPrevented(secDisp, layerName, tileLayer, "TROZ"); }
@Test public void testProxyRequest() throws Exception { SecurityDispatcher secDisp = mock(SecurityDispatcher.class); when(secDisp.isSecurityEnabled()).thenReturn(false); GeoWebCacheDispatcher gwcd = mock(GeoWebCacheDispatcher.class); when(gwcd.getServletPrefix()).thenReturn(null); service = new WMSService(sb, tld, mock(RuntimeStats.class), new NullURLMangler(), gwcd); service.setSecurityDispatcher(secDisp); String layerName = "mockLayer"; TestLayer tileLayer = mock(TestLayer.class); when(tld.getTileLayer(layerName)).thenReturn(tileLayer); testProxyRequestAllowed(secDisp, layerName, tileLayer, "TROZ"); }
@Test public void testProxyRequestSecuredDefaultAllowGetLegendGraphic() throws Exception { SecurityDispatcher secDisp = mock(SecurityDispatcher.class); when(secDisp.isSecurityEnabled()).thenReturn(true); GeoWebCacheDispatcher gwcd = mock(GeoWebCacheDispatcher.class); when(gwcd.getServletPrefix()).thenReturn(null); service = new WMSService(sb, tld, mock(RuntimeStats.class), new NullURLMangler(), gwcd); service.setSecurityDispatcher(secDisp); String layerName = "mockLayer"; TestLayer tileLayer = mock(TestLayer.class); when(tld.getTileLayer(layerName)).thenReturn(tileLayer); testProxyRequestAllowed(secDisp, layerName, tileLayer, "GetLegendGraphic"); }
static class CustomLayerImplementation { private String name; private String title; private boolean isAuthorized; private List<String> formats; public CustomLayerImplementation( String name, String title, boolean isAuthorized, List<String> formats) { this.name = name; this.title = title; this.isAuthorized = isAuthorized; this.formats = formats; } }
@Test public void testProxyRequestDefaultWhitelistRestrictedByFilter() throws Exception { SecurityDispatcher secDisp = mock(SecurityDispatcher.class); when(secDisp.isSecurityEnabled()).thenReturn(true); GeoWebCacheDispatcher gwcd = mock(GeoWebCacheDispatcher.class); when(gwcd.getServletPrefix()).thenReturn(null); String layerName = "mockLayer"; TestLayer tileLayer = mock(TestLayer.class); when(tld.getTileLayer(layerName)).thenReturn(tileLayer); service = new WMSService(sb, tld, mock(RuntimeStats.class), new NullURLMangler(), gwcd); service.setSecurityDispatcher(secDisp); doThrow(new SecurityException()).when(secDisp).checkSecurity(Mockito.any()); testProxyRequestPrevented(secDisp, layerName, tileLayer, "GetLegendGraphic"); }
@Test public void testProxyRequestWhitelistWithSecurityFiltersAppliesFilters() throws Exception { whitelistProperty.setValue("troz"); SecurityDispatcher secDisp = mock(SecurityDispatcher.class); when(secDisp.isSecurityEnabled()).thenReturn(true); GeoWebCacheDispatcher gwcd = mock(GeoWebCacheDispatcher.class); when(gwcd.getServletPrefix()).thenReturn(null); service = new WMSService(sb, tld, mock(RuntimeStats.class), new NullURLMangler(), gwcd); service.setSecurityDispatcher(secDisp); String layerName = "mockLayer"; TestLayer tileLayer = mock(TestLayer.class); when(tld.getTileLayer(layerName)).thenReturn(tileLayer); doThrow(new SecurityException()).when(secDisp).checkSecurity(Mockito.any()); testProxyRequestPrevented(secDisp, layerName, tileLayer, "TROZ"); }
@Test public void testRemoveLayer() { String layerToRemove = GWCConfigIntegrationTestData.LAYER_TOPP_STATES; tileLayerDispatcher.removeLayer(layerToRemove); assertFalse(tileLayerDispatcher.getLayerNames().contains(layerToRemove)); try { tileLayerDispatcher.getTileLayer(layerToRemove); fail("Expected exception when trying to get removed layer"); } catch (GeoWebCacheException e) { } }
@Test public void testModifyLayer() throws GeoWebCacheException { String modifiedLayerName = GWCConfigIntegrationTestData.LAYER_TOPP_STATES; TileLayer layer = tileLayerDispatcher.getTileLayer(modifiedLayerName); layer.removeGridSubset(GWCConfigIntegrationTestData.GRIDSET_EPSG2163); boolean advertised = !layer.isAdvertised(); layer.setAdvertised(advertised); tileLayerDispatcher.modify(layer); TileLayer modifiedLayer = tileLayerDispatcher.getTileLayer(modifiedLayerName); assertEquals(layer, modifiedLayer); assertEquals(advertised, modifiedLayer.isAdvertised()); assertNull(modifiedLayer.getGridSubset(GWCConfigIntegrationTestData.GRIDSET_EPSG2163)); }