/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.security.decorators; import java.io.IOException; import java.util.logging.Level; import org.geotools.data.ResourceInfo; import org.geotools.data.ServiceInfo; import org.geotools.data.ows.GetCapabilitiesRequest; import org.geotools.data.ows.GetCapabilitiesResponse; import org.geotools.data.ows.Layer; import org.geotools.data.ows.WMSCapabilities; import org.geotools.data.wms.WebMapServer; import org.geotools.data.wms.request.DescribeLayerRequest; import org.geotools.data.wms.request.GetFeatureInfoRequest; import org.geotools.data.wms.request.GetLegendGraphicRequest; import org.geotools.data.wms.request.GetMapRequest; import org.geotools.data.wms.request.GetStylesRequest; import org.geotools.data.wms.request.PutStylesRequest; import org.geotools.data.wms.response.DescribeLayerResponse; import org.geotools.data.wms.response.GetFeatureInfoResponse; import org.geotools.data.wms.response.GetLegendGraphicResponse; import org.geotools.data.wms.response.GetMapResponse; import org.geotools.data.wms.response.GetStylesResponse; import org.geotools.data.wms.response.PutStylesResponse; import org.geotools.geometry.GeneralEnvelope; import org.geotools.ows.ServiceException; import org.opengis.referencing.crs.CoordinateReferenceSystem; /** * Applies security around the web map server * @author Andrea Aime - GeoSolutions * */ public class SecuredWebMapServer extends WebMapServer { WebMapServer delegate; public SecuredWebMapServer(WebMapServer delegate) throws IOException, ServiceException { super(delegate.getCapabilities()); this.delegate = delegate; } public GetFeatureInfoRequest createGetFeatureInfoRequest(GetMapRequest getMapRequest) { return new SecuredGetFeatureInfoRequest(delegate.createGetFeatureInfoRequest(getMapRequest), getMapRequest); } public GetMapRequest createGetMapRequest() { return new SecuredGetMapRequest(delegate.createGetMapRequest()); } // ------------------------------------------------------------------------------------------- // // Purely delegated methods // // ------------------------------------------------------------------------------------------- public GetStylesResponse issueRequest(GetStylesRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public PutStylesResponse issueRequest(PutStylesRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public GetLegendGraphicResponse issueRequest(GetLegendGraphicRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public DescribeLayerResponse issueRequest(DescribeLayerRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public GetCapabilitiesResponse issueRequest(GetCapabilitiesRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public GetFeatureInfoResponse issueRequest(GetFeatureInfoRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public GetMapResponse issueRequest(GetMapRequest request) throws IOException, ServiceException { return delegate.issueRequest(request); } public DescribeLayerRequest createDescribeLayerRequest() throws UnsupportedOperationException { return delegate.createDescribeLayerRequest(); } public GetLegendGraphicRequest createGetLegendGraphicRequest() throws UnsupportedOperationException { return delegate.createGetLegendGraphicRequest(); } public GetStylesRequest createGetStylesRequest() throws UnsupportedOperationException { return delegate.createGetStylesRequest(); } public PutStylesRequest createPutStylesRequest() throws UnsupportedOperationException { return delegate.createPutStylesRequest(); } public boolean equals(Object obj) { return delegate.equals(obj); } public WMSCapabilities getCapabilities() { return delegate.getCapabilities(); } public GeneralEnvelope getEnvelope(Layer layer, CoordinateReferenceSystem crs) { return delegate.getEnvelope(layer, crs); } public ServiceInfo getInfo() { return delegate.getInfo(); } public ResourceInfo getInfo(Layer resource) { return delegate.getInfo(resource); } public int hashCode() { return delegate.hashCode(); } public void setLoggingLevel(Level newLevel) { delegate.setLoggingLevel(newLevel); } public String toString() { return "SecuredWebMapServer " + delegate.toString(); } }