package org.geoserver.ows;
import java.util.Collections;
import org.geoserver.catalog.ResourceInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.security.DataAccessManager;
import org.geoserver.security.ResourceAccessManager;
import org.geoserver.security.DataAccessManagerAdapter;
import org.geoserver.security.CatalogFilterAccessManager;
import org.geoserver.security.SecureCatalogImpl;
import org.geoserver.security.impl.AbstractAuthorizationTest;
public class LocalWorkspaceSecureCatalogTest extends AbstractAuthorizationTest {
@Override
protected void setUp() throws Exception {
super.setUp();
populateCatalog();
}
public void testAccessToLayer() throws Exception {
DataAccessManager def = buildLegacyAccessManager("wideOpen.properties");
ResourceAccessManager defAsResourceManager = new DataAccessManagerAdapter(def);
CatalogFilterAccessManager mgr = new CatalogFilterAccessManager();
mgr.setCatalogFilters(Collections.singletonList(new LocalWorkspaceCatalogFilter()));
mgr.setDelegate(defAsResourceManager);
SecureCatalogImpl sc = new SecureCatalogImpl(catalog, mgr) {};
assertNotNull(sc.getLayerByName("topp:states"));
WorkspaceInfo ws = sc.getWorkspaceByName("nurc");
LocalWorkspace.set(ws);
assertNull(sc.getWorkspaceByName("topp"));
assertNull(sc.getResourceByName("topp:states", ResourceInfo.class));
assertNull(sc.getLayerByName("topp:states"));
}
@Override
protected void tearDown() throws Exception {
LocalWorkspace.remove();
}
}