public void setProxyBaseUrl(String proxyBaseUrl) { getSettings().setProxyBaseUrl(proxyBaseUrl); }
@Before public void setup() { GeoServerInfo gi = getGeoServer().getGlobal(); gi.getSettings().setProxyBaseUrl(null); getGeoServer().save(gi); }
@Test public void testProxyBase() { GeoServerInfo gi = getGeoServer().getGlobal(); gi.getSettings().setProxyBaseUrl("http://geoserver.org/"); getGeoServer().save(gi); String url = buildURL(BASEURL, "test", null, URLType.SERVICE); assertEquals("http://geoserver.org/test", url); } }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Logging.getLogger("org.geoserver.ows").setLevel(Level.OFF); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); }
@Before public void resetServiceConfiguration() throws Exception { GeoServerInfo gs = getGeoServer().getGlobal(); gs.getSettings().setProxyBaseUrl(null); getGeoServer().save(gs); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); // add org.geoserver.catalog.testReader.CustomFormat coverage String styleName = "temperature"; testData.addStyle(styleName, "../temperature.sld", getClass(), getCatalog()); Map propertyMap = new HashMap(); propertyMap.put(LayerProperty.STYLE, "temperature"); testData.addRasterLayer( WATTEMP, "custwatertemp.zip", null, propertyMap, SystemTestData.class, getCatalog()); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); WMSInfo wms = getGeoServer().getService(WMSInfo.class); wms.getSRS().add("EPSG:4326"); getGeoServer().save(wms); Map<String, String> namespaces = new HashMap<String, String>(); namespaces.put("xlink", "http://www.w3.org/1999/xlink"); namespaces.put("", "http://www.opengis.net/wms"); namespaces.put("wms", "http://www.opengis.net/wms"); getTestData().registerNamespaces(namespaces); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(namespaces)); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); // add org.geoserver.catalog.testReader.CustomFormat coverage String styleName = "temperature"; testData.addStyle(styleName, "../temperature.sld", getClass(), getCatalog()); Map propertyMap = new HashMap(); propertyMap.put(LayerProperty.STYLE, "temperature"); testData.addRasterLayer( WATTEMP, "watertempDynamicDims.zip", null, propertyMap, SystemTestData.class, getCatalog()); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); WMSInfo wms = getGeoServer().getService(WMSInfo.class); wms.getSRS().add("EPSG:4326"); getGeoServer().save(wms); Map<String, String> namespaces = new HashMap<String, String>(); namespaces.put("xlink", "http://www.w3.org/1999/xlink"); namespaces.put("", "http://www.opengis.net/wms"); namespaces.put("wms", "http://www.opengis.net/wms"); getTestData().registerNamespaces(namespaces); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(namespaces)); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Catalog cat = getCatalog(); CoverageStoreInfo csi = cat.getCoverageStoreByName(SystemTestData.WORLD.getLocalPart()); csi.setEnabled(false); cat.save(csi); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); }
/** See https://osgeo-org.atlassian.net/browse/GEOS-3965 */ @Test public void testProxyBaseURL() throws Exception { GeoServer gs = getGeoServer(); try { GeoServerInfo info = gs.getGlobal(); info.getSettings().setProxyBaseUrl("http://myhost:9999/gs"); gs.save(info); final String requestUrl = "wms/kml?layers=" + getLayerId(MockData.BRIDGES) + "&styles=Bridge&mode=download"; Document dom = getAsDOM(requestUrl); // make sure we are using the proxy base URL XMLAssert.assertXpathEvaluatesTo( "http://myhost:9999/gs/styles/bridge.png", "//kml:Style/kml:IconStyle/kml:Icon/kml:href", dom); } finally { GeoServerInfo info = gs.getGlobal(); info.getSettings().setProxyBaseUrl(null); gs.save(info); } }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Map<String, String> namespaces = new HashMap<String, String>(); namespaces.put("xlink", "http://www.w3.org/1999/xlink"); namespaces.put("xsi", "http://www.w3.org/2001/XMLSchema-instance"); namespaces.put("wms", "http://www.opengis.net/wms"); namespaces.put("ows", "http://www.opengis.net/ows"); namespaces.put("ogc", "http://www.opengis.net/ogc"); NamespaceContext ctx = new SimpleNamespaceContext(namespaces); XMLUnit.setXpathNamespaceContext(ctx); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); LayerInfo layer = getCatalog().getLayerByName(MockData.POINTS.getLocalPart()); MetadataLinkInfo mdlink = getCatalog().getFactory().createMetadataLink(); mdlink.setMetadataType("FGDC"); mdlink.setContent("http://geoserver.org"); mdlink.setType("text/xml"); ResourceInfo resource = layer.getResource(); resource.getMetadataLinks().add(mdlink); getCatalog().save(resource); Catalog catalog = getCatalog(); DataStoreInfo info = catalog.getDataStoreByName(MockData.SF_PREFIX); info.setEnabled(false); catalog.save(info); }
@Test public void testWorkspacesWithProxyHeaders() throws Exception { GeoServerInfo ginfo = getGeoServer().getGlobal(); SettingsInfo settings = getGeoServer().getGlobal().getSettings(); ginfo.setUseHeadersProxyURL(true); settings.setProxyBaseUrl( "${X-Forwarded-Proto}://${X-Forwarded-Host}/${X-Forwarded-Path} ${X-Forwarded-Proto}://${X-Forwarded-Host}"); ginfo.setSettings(settings); getGeoServer().save(ginfo); assertEquals( 200, getAsServletResponse(RestBaseController.ROOT_PATH + "/workspaces.xml").getStatus()); Document dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces.xml"); assertEquals(0, dom.getElementsByTagName("workspace").getLength()); super.login(); dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces.xml"); assertEquals( getCatalog().getWorkspaces().size(), dom.getElementsByTagName("workspace").getLength()); assertEquals( 200, getAsServletResponse(RestBaseController.ROOT_PATH + "/workspaces.xml").getStatus()); dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces.xml"); assertEquals( getCatalog().getWorkspaces().size(), dom.getElementsByTagName("workspace").getLength()); }
@Test public void testGetProxyBaseURL() { SettingsInfo settings = new SettingsInfoImpl(); settings.setProxyBaseUrl("https://foo.com/geoserver"); GeoServerInfo info = new GeoServerInfoImpl(); info.setSettings(settings); GeoServer gs = new GeoServerImpl(); gs.setGlobal(info); TestWfsPost servlet = new TestWfsPost() { @Override protected GeoServer getGeoServer() { return gs; } }; assertEquals("https://foo.com/geoserver", servlet.getProxyBaseURL()); }
@Test public void testOpenLayersProxy() throws Exception { NamespaceContext oldContext = XMLUnit.getXpathNamespaceContext(); try { Map<String, String> namespaces = new HashMap<String, String>(); namespaces.put("xhtml", "http://www.w3.org/1999/xhtml"); registerNamespaces(namespaces); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(namespaces)); // setup a proxy base url GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("http://www.geoserver.org:1234/gs"); getGeoServer().save(global); Document dom = getAsDOM( "wms?LAYERS=sf:indexed&STYLES=&FORMAT=application/openlayers&SERVICE=WMS&VERSION=1.1.1" + "&REQUEST=GetMap&SRS=EPSG:4326&BBOX=100,78,104,80&WIDTH=300&HEIGHT=150"); assertXpathEvaluatesTo( "http://www.geoserver.org:1234/gs/openlayers/OpenLayers.js", "//xhtml:script[contains(@src, 'OpenLayers.js')]/@src", dom); } finally { XMLUnit.setXpathNamespaceContext(oldContext); } }
@Override protected void setUpInternal(SystemTestData dataDirectory) throws Exception { DataStoreInfo di = getCatalog().getDataStoreByName(CiteTestData.CITE_PREFIX); di.setEnabled(false); getCatalog().save(di); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Catalog catalog = getCatalog(); DataStoreInfo info = catalog.getDataStoreByName(MockData.SF_PREFIX); info.setEnabled(false); catalog.save(info); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); // add a workspace qualified style WorkspaceInfo ws = catalog.getWorkspaceByName(MockData.CITE_PREFIX); testData.addStyle(ws, "Lakes", "Lakes.sld", SystemTestData.class, catalog); testData.addStyle(ws, "tiger_roads", "tiger_roads.sld", SystemTestData.class, catalog); StyleInfo lakesStyle = catalog.getStyleByName(ws, "Lakes"); LayerInfo lakesLayer = catalog.getLayerByName(MockData.LAKES.getLocalPart()); lakesLayer.setDefaultStyle(lakesStyle); StyleInfo tigerRoadsStyle = catalog.getStyleByName(ws, "tiger_roads"); lakesLayer.getStyles().add(tigerRoadsStyle); catalog.save(lakesLayer); setupOpaqueGroup(catalog); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Catalog catalog = getCatalog(); DataStoreInfo info = catalog.getDataStoreByName(MockData.SF_PREFIX); info.setEnabled(false); catalog.save(info); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); // add a workspace qualified style WorkspaceInfo ws = catalog.getWorkspaceByName(MockData.CITE_PREFIX); testData.addStyle(ws, "Lakes", "Lakes.sld", SystemTestData.class, catalog); StyleInfo lakesStyle = catalog.getStyleByName(ws, "Lakes"); LayerInfo lakesLayer = catalog.getLayerByName(MockData.LAKES.getLocalPart()); lakesLayer.setDefaultStyle(lakesStyle); catalog.save(lakesLayer); setupOpaqueGroup(catalog); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); testData.addRasterLayer(SF_RAIN, "rain.zip", "asc", getCatalog()); testData.addRasterLayer(GS_RAIN, "rain.zip", "asc", getCatalog()); testData.addRasterLayer( NO_RANGE, "norange.tiff", null, null, DescribeCoverageTest.class, getCatalog()); // the GUI builds the dimension without range, let's do the same here CoverageInfo noRange = getCatalog().getCoverageByName(getLayerId(NO_RANGE)); CoverageDimensionInfo cdi = noRange.getDimensions().get(0); cdi.setRange(null); getCatalog().save(noRange); GeoServerInfo global = getGeoServer().getGlobal(); global.getSettings().setProxyBaseUrl("src/test/resources/geoserver"); getGeoServer().save(global); }
@Test public void testRequestUrlWithProxyBase() throws Exception { // setup a proxy base url GeoServerInfo gs = getGeoServer().getGlobal(); gs.getSettings().setProxyBaseUrl("https://www.geoserver.org/geoserver"); getGeoServer().save(gs); // check it has been honored MockHttpServletResponse response = getAsServletResponse( "wfs?service=WFS&version=1.0.0" + "&request=GetFeature&typeName=" + getLayerId(SystemTestData.BASIC_POLYGONS) + "&outputFormat=SHAPE-ZIP"); assertEquals("application/zip", response.getContentType()); checkShapefileIntegrity(new String[] {"BasicPolygons"}, getBinaryInputStream(response)); assertEquals( "https://www.geoserver.org/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=cite:BasicPolygons&outputFormat=SHAPE-ZIP", getRequest(getBinaryInputStream(response))); }