public void removeAllRules() throws NotFoundServiceEx { List<ShortRule> list = ruleAdminService.getAll(); for (ShortRule item : list) { LOGGER.warn("Removing " + item); boolean ret = ruleAdminService.delete(item.getId()); if ( !ret ) { LOGGER.error("Could not remove " + item); } } long count = ruleAdminService.getCountAll(); if ( count > 0 ) { LOGGER.error("Items not removed"); } }
@RequestMapping(value = "/rules/id/{id}", method = RequestMethod.POST) public @ResponseStatus(HttpStatus.OK) void update( @PathVariable("id") Long id, @RequestBody JaxbRule rule) { if (rule.getPriority() != null) { ShortRule priorityRule = adminService.getRuleByPriority(rule.getPriority().longValue()); if (priorityRule != null && priorityRule.getId() != id) { adminService.shift(rule.getPriority().longValue(), 1); } } Rule theRule = adminService.get(id); adminService.update(rule.toRule(theRule)); if (rule.getLimits() != null) { adminService.setLimits(id, rule.getLimits().toRuleLimits(theRule.getRuleLimits())); } if (rule.getLayerDetails() != null) { adminService.setDetails( id, rule.getLayerDetails().toLayerDetails(theRule.getLayerDetails())); } }
@RequestMapping( value = "/rules", method = RequestMethod.POST, consumes = { MediaType.TEXT_XML_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE, MediaTypeExtensions.TEXT_JSON_VALUE } ) @ResponseStatus(HttpStatus.CREATED) public ResponseEntity<Long> insert(@RequestBody(required = true) JaxbRule rule) { long priority = rule.getPriority() == null ? 0 : rule.getPriority().longValue(); if (adminService.getRuleByPriority(priority) != null) { adminService.shift(priority, 1); } Long id = adminService.insert(rule.toRule()); if (rule.getLimits() != null && rule.getAccess().equals("LIMIT")) { adminService.setLimits(id, rule.getLimits().toRuleLimits(null)); } if (rule.getLayerDetails() != null && !rule.getAccess().equals("LIMIT")) { adminService.setDetails(id, rule.getLayerDetails().toLayerDetails(null)); } return new ResponseEntity<Long>(id, HttpStatus.CREATED); }
@Override public Response move(String rulesIds, Integer targetPriority) throws BadRequestRestEx, InternalErrorRestEx { try { List<Rule> rules = findRules(rulesIds); if (!rules.isEmpty()) { // shift priorities of rules with a priority equal or lower than the target priority ruleAdminService.shift(targetPriority, rules.size()); // update moved rules priority long priority = targetPriority; for (Rule rule : rules) { rule.setPriority(priority); ruleAdminService.update(rule); priority++; } } return Response.status(Status.OK).entity("OK\n").build(); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }
@Before public void initGeoFenceControllers() { controller = (RulesRestController) applicationContext.getBean("rulesRestController"); adminService = (RuleAdminService) applicationContext.getBean("ruleAdminService"); if (adminService.getCountAll() > 0) { for (ShortRule r : adminService.getAll()) { adminService.delete(r.getId()); } } Rule citeRule = new Rule(0, "cite", null, null, null, "wms", null, "cite", null, GrantType.ALLOW); Rule sfRule = new Rule(1, "cite", null, null, null, "wms", null, "sf", null, GrantType.ALLOW); adminService.insert(citeRule); adminService.insert(sfRule); }
if (ruleModel.getId() == -1) { // REQUEST FOR INSERT rule.setId(null); geofenceRemoteService.getRuleAdminService().insert(rule); } else { // REQUEST FOR UPDATE long ruleId = ruleModel.getId(); rule.setId(ruleId); try { geofenceRemoteService.getRuleAdminService().update(rule); Rule loaded = geofenceRemoteService.getRuleAdminService().get(ruleId); if (!loaded.getAccess().name().equalsIgnoreCase(ruleModel.getGrant())) { geofenceRemoteService.getRuleAdminService().setDetails(ruleId, null); geofenceRemoteService.getRuleAdminService().setLimits(ruleId, null);
@RequestMapping( value = "/rules/id/{id}", method = RequestMethod.GET, produces = {"application/xml", "application/json"} ) public JaxbRule get(@PathVariable("id") Long id) { return new JaxbRule(adminService.get(id)); }
public void saveAllRules(List<RuleModel> rules) throws ApplicationException { for (ShortRule rule : geofenceRemoteService.getRuleAdminService() .getAll()) { try { geofenceRemoteService.getRuleAdminService() .delete(rule.getId()); } catch (NotFoundServiceEx e) { logger.error(e.getMessage(), e); throw new ApplicationException(e.getMessage(), e); } } for (RuleModel localRule : rules) { IPAddressRange addressRange = validateSourceRange(localRule.getSourceIPRange()); Rule rule = new Rule( localRule.getPriority(), "*".equals(localRule.getUsername()) ? null : localRule.getUsername(), "*".equals(localRule.getRolename()) ? null : localRule.getRolename(), getInstance(localRule.getInstance()), addressRange, "*".equals(localRule.getService()) ? null : localRule.getService(), "*".equals(localRule.getRequest()) ? null : localRule.getRequest(), "*".equals(localRule.getWorkspace()) ? null : localRule.getWorkspace(), "*".equals(localRule.getLayer()) ? null : localRule.getLayer(), getAccessType(localRule.getGrant())); geofenceRemoteService.getRuleAdminService().insert(rule); } }
public void save(ShortRule rule) { if (rule.getId() == null) { shiftIfNecessary(rule.getPriority(), rule); // local int i = 0; while (i < rules.size() && rules.get(i).getPriority() < rule.getPriority()) { i++; } rules.add(i, rule); // db Rule bigRule = new Rule(); syncRule(rule, bigRule); rule.setId(adminService().insert(bigRule)); } else { // db Rule bigRule = adminService().get(rule.getId()); if (bigRule.getPriority() != rule.getPriority()) { shiftIfNecessary(rule.getPriority(), rule); } syncRule(rule, bigRule); adminService().update(bigRule); } }
Rule old = ruleAdminService.get(id); boolean isRuleUpdated = false; boolean isDetailUpdated = false; if(LOGGER.isDebugEnabled()) LOGGER.debug("Updating rule " + rule); ruleAdminService.update(old); } else { if(LOGGER.isDebugEnabled()) if(LOGGER.isDebugEnabled()) LOGGER.debug("Updating details " + detailsOld); ruleAdminService.setDetails(id, detailsOld); } else { if(LOGGER.isDebugEnabled())
@Override @Transactional(propagation = Propagation.REQUIRED, value = "geofenceTransactionManager") public Response insert(RESTInputRule inputRule) throws NotFoundRestEx, BadRequestRestEx, InternalErrorRestEx { if (inputRule.getPosition() == null || inputRule.getPosition().getPosition() == null) { throw new BadRequestRestEx("Bad position: " + inputRule.getPosition()); } if (inputRule.getGrant() == null) { throw new BadRequestRestEx("Missing grant type"); } Rule rule = fromInput(inputRule); InsertPosition position = inputRule.getPosition().getPosition() == RulePosition.fixedPriority ? InsertPosition.FIXED : inputRule.getPosition().getPosition() == RulePosition.offsetFromBottom ? InsertPosition.FROM_END : inputRule.getPosition().getPosition() == RulePosition.offsetFromTop ? InsertPosition.FROM_START : null; // ok: insert it try { Long id = ruleAdminService.insert(rule, position); LayerDetails details = detailsFromInput(inputRule); if (details != null) { ruleAdminService.setDetails(id, details); } return Response.status(Status.CREATED).tag(id.toString()).entity(id).build(); } catch (BadRequestServiceEx ex) { LOGGER.error(ex.getMessage()); throw new BadRequestRestEx(ex.getMessage()); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }
.getCountAll(); .getList(any, page, limit); fullRule = geofenceRemoteService.getRuleAdminService().get(shortRule.getId()); } catch (NotFoundServiceEx e) { if (logger.isErrorEnabled()) {
/** * Helper method that checks if the rule already exists and create a new one by returning its * ID. */ protected long prepareGeoFenceTestRules(JaxbRule rule) { if (adminService.getCountAll() > 0) { for (ShortRule r : adminService.getAll()) { controller.delete(r.getId()); } } long id = controller.insert(rule).getBody(); return id; }
.get(ruleId).getLayerDetails(); geofenceRemoteService.getRuleAdminService().get(ruleId); org.geoserver.geofence.core.model.GSInstance gsInstance = rule.getInstance(); details.setAllowedStyles(allowedStyles); } else { geofenceRemoteService.getRuleAdminService().setAllowedStyles( ruleId, allowedStyles); geofenceRemoteService.getRuleAdminService().setDetails(ruleId, details);
public void save(Long ruleId, MultiPolygon allowedArea, CatalogMode catalogMode) { Rule rule = adminService().get(ruleId); RuleLimits ruleLimits = rule.getRuleLimits(); if (ruleLimits == null) { ruleLimits = new RuleLimits(); ruleLimits.setRule(rule); } ruleLimits.setAllowedArea(allowedArea); ruleLimits.setCatalogMode(catalogMode); adminService().setLimits(ruleId, ruleLimits); }
@RequestMapping(value = "/rules/id/{id}", method = RequestMethod.DELETE) public @ResponseStatus(HttpStatus.OK) void delete(@PathVariable("id") Long id) { adminService.delete(id); }
details = geofenceRemoteService.getRuleAdminService().get(ruleId) .getLayerDetails(); geofenceRemoteService.getRuleAdminService().setDetails(ruleId, details);
out.setLayer(in.getLayer()); long ruleid = ruleAdminService.insert(out); okCnt++;
@Test public void testAdmin() { if (!IS_GEOFENCE_AVAILABLE) { return; } assertTrue(geofenceAdminService.getCountAll() > 0); RuleFilter ruleFilter = new RuleFilter(); ShortRule adminRule = geofenceAdminService.getRule(ruleFilter); UsernamePasswordAuthenticationToken user = new UsernamePasswordAuthenticationToken( "admin", "geoserver", Arrays.asList( new GrantedAuthority[] { new SimpleGrantedAuthority("ROLE_ADMINISTRATOR") })); // check workspace access WorkspaceInfo citeWS = catalog.getWorkspaceByName(MockData.CITE_PREFIX); WorkspaceAccessLimits wl = accessManager.getAccessLimits(user, citeWS); assertTrue(wl.isReadable()); assertTrue(wl.isWritable()); // check layer access LayerInfo layer = catalog.getLayerByName(getLayerId(MockData.BASIC_POLYGONS)); VectorAccessLimits vl = (VectorAccessLimits) accessManager.getAccessLimits(user, layer); assertEquals(Filter.INCLUDE, vl.getReadFilter()); assertEquals(Filter.INCLUDE, vl.getWriteFilter()); assertNull(vl.getReadAttributes()); assertNull(vl.getWriteAttributes()); }
public void shift(long priorityStart, long offset) { if (priorityStart != -1) { geofenceRemoteService.getRuleAdminService().shift(priorityStart, offset); } }