package org.geoserver.security.decorators; import java.io.IOException; import org.geoserver.catalog.WMSStoreInfo; import org.geoserver.security.AccessLevel; import org.geoserver.security.SecureCatalogImpl; import org.geoserver.security.WrapperPolicy; import org.geotools.data.wms.WebMapServer; import org.opengis.util.ProgressListener; public class SecuredWMSStoreInfo extends DecoratingWMSStoreInfo { WrapperPolicy policy; public SecuredWMSStoreInfo(WMSStoreInfo delegate, WrapperPolicy policy) { super(delegate); this.policy = policy; } @Override public WebMapServer getWebMapServer(ProgressListener listener) throws IOException { WebMapServer wms = super.getWebMapServer(null); if (wms == null) return null; else if(policy.level == AccessLevel.METADATA) throw SecureCatalogImpl.unauthorizedAccess(this.getName()); else return (WebMapServer) SecuredObjects.secure(wms, policy); } }