public MemoryDataAccessRuleDAO(Catalog rawCatalog, Properties props) throws ConfigurationException { super(rawCatalog, null); loadRules(props); }
private SecureTreeNode buildTree(String propertyFile) throws Exception { Properties props = new Properties(); props.load(getClass().getResourceAsStream(propertyFile)); return new DefaultResourceAccessManager( new MemoryDataAccessRuleDAO(catalog, props), catalog) .root; }
protected DefaultResourceAccessManager buildAccessManager(String propertyFile) throws Exception { Properties props = new Properties(); props.load(getClass().getResourceAsStream(propertyFile)); return new DefaultResourceAccessManager( new MemoryDataAccessRuleDAO(catalog, props), catalog); }
protected ResourceAccessManager buildManager(String... theRules) throws Exception { Properties props = new Properties(); props.load(new StringReader(Stream.of(theRules).collect(Collectors.joining("\n")))); DefaultResourceAccessManager manager = new DefaultResourceAccessManager( new MemoryDataAccessRuleDAO(catalog, props), catalog); sc = new SecureCatalogImpl(catalog, manager) { @Override protected boolean isAdmin(Authentication authentication) { return false; } }; GeoServerExtensionsHelper.singleton("secureCatalog", sc, SecureCatalogImpl.class); return manager; }
@Before public void setUp() throws Exception { // make a nice little catalog that does always tell us stuff is there Catalog catalog = createNiceMock(Catalog.class); expect(catalog.getWorkspaceByName((String) anyObject())) .andReturn(new WorkspaceInfoImpl()) .anyTimes(); expect(catalog.getLayerByName((String) anyObject())) .andReturn(new LayerInfoImpl()) .anyTimes(); replay(catalog); // prepare some base rules props = new Properties(); props.put("mode", "CHALLENGE"); props.put("topp.states.w", "ROLE_TSW"); props.put("topp.*.w", "ROLE_TW"); props.put("*.*.r", "*"); props.put("group.r", "ROLE_GROUP"); dao = new MemoryDataAccessRuleDAO(catalog, props); }