public JaxbRuleList(List<Rule> list) { this.list = new ArrayList<JaxbRule>(); for (Rule rule : list) { this.list.add(new JaxbRule(rule)); } this.count = list.size(); }
public Rule toRule(Rule rule) { if (getPriority() != null) { rule.setPriority(getPriority()); if (getAccess() != null) { rule.setAccess(GrantType.valueOf(getAccess())); if (getUserName() != null) { rule.setUsername(convertAny(getUserName())); if (getRoleName() != null) { rule.setRolename(convertAny(getRoleName())); if (getAddressRange() != null) { rule.setAddressRange(new IPAddressRange(getAddressRange())); if (getService() != null) { rule.setService(convertAny(getService())); if (getRequest() != null) { rule.setRequest(convertAny(getRequest())); if (getWorkspace() != null) { rule.setWorkspace(convertAny(getWorkspace())); if (getLayer() != null) { rule.setLayer(convertAny(getLayer()));
@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); }
@Test public void testInsertUpdateDelete() { JaxbRule rule = new JaxbRule(); rule.setPriority(5L); rule.setUserName("pippo"); rule.setRoleName("clown"); rule.setAddressRange("127.0.0.1/32"); rule.setService("wfs"); rule.setRequest("getFeature"); rule.setWorkspace("workspace"); rule.setLayer("layer"); rule.setAccess("ALLOW"); assertEquals(rule.getPriority().longValue(), realRule.getPriority()); assertEquals(rule.getUserName(), realRule.getUsername()); assertEquals(rule.getRoleName(), realRule.getRolename()); assertEquals(rule.getAddressRange(), realRule.getAddressRange().getCidrSignature()); assertEquals(rule.getService().toUpperCase(), realRule.getService().toUpperCase()); assertEquals(rule.getRequest().toUpperCase(), realRule.getRequest().toUpperCase()); assertEquals(rule.getWorkspace(), realRule.getWorkspace()); assertEquals(rule.getLayer(), realRule.getLayer()); assertEquals(rule.getAccess(), realRule.getAccess().toString()); JaxbRule ruleMods = new JaxbRule(); ruleMods.setRoleName("acrobaat"); assertEquals(rule.getUserName(), realRule.getUsername()); assertEquals(ruleMods.getRoleName(), realRule.getRolename()); JaxbRule rule2 = new JaxbRule();
@Test public void testLimits() { JaxbRule rule = new JaxbRule(); rule.setPriority(5L); rule.setUserName("pippo"); rule.setRoleName("clown"); rule.setAddressRange("127.0.0.1/32"); rule.setService("wfs"); rule.setRequest("getFeature"); rule.setWorkspace("workspace"); rule.setLayer("layer"); rule.setAccess("LIMIT"); rule.setLimits(new JaxbRule.Limits()); rule.getLimits().setAllowedArea(GML3MockData.multiPolygon()); rule.getLimits().setCatalogMode("MIXED"); rule.getLimits().getCatalogMode(), realRule.getRuleLimits().getCatalogMode().toString()); try { assertEquals( new WKTReader().read(rule.getLimits().getAllowedArea()), realRule.getRuleLimits().getAllowedArea()); } catch (ParseException e) { rule.getLimits().setCatalogMode("HIDE"); rule.getLimits().getCatalogMode(), realRule.getRuleLimits().getCatalogMode().toString()); rule.setLimits(null);
@Test public void testDeserialization() throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<Rule>" + "<access>LIMIT</access>" + "<layer>DE_USNG_UTM18</layer>" + "<limits>" + " <allowedArea>SRID=4326;MULTIPOLYGON (((-75 -90, -75 90, 75 90, 75 -90, -75 -90)))</allowedArea>" + " <catalogMode>HIDDEN</catalogMode>" + "</limits>" + "<priority>1</priority>" + "<workspace>geonode</workspace>" + "</Rule>"; ByteArrayInputStream bais = new ByteArrayInputStream(xml.getBytes("UTF-8")); JaxbRule rule = persister.load(bais, JaxbRule.class); assertNotNull(rule); assertEquals("LIMIT", rule.getAccess()); assertEquals("DE_USNG_UTM18", rule.getLayer()); assertEquals("geonode", rule.getWorkspace()); assertEquals(1, rule.getPriority().intValue()); assertNotNull(rule.getLimits()); assertEquals( "SRID=4326;MULTIPOLYGON (((-75 -90, -75 90, 75 90, 75 -90, -75 -90)))", rule.getLimits().getAllowedArea()); assertEquals("HIDDEN", rule.getLimits().getCatalogMode()); }
/** * Helper method that will validate that the provided rules will match the provided priorities. */ private void validateRules(JaxbRuleList rules, long... expectedPriorities) { assertThat(rules, notNullValue()); assertThat(rules.getRules(), notNullValue()); assertThat(rules.getRules().size(), is(expectedPriorities.length)); for (int i = 0; i < expectedPriorities.length; i++) { assertThat(rules.getRules().get(i).getPriority(), is(expectedPriorities[i])); } } }
@Test public void testSerialization() throws Exception { JaxbRule rule = new JaxbRule(); rule.setPriority(1L); rule.setUserName("pippo"); rule.setRoleName("clown"); rule.setAddressRange("127.0.0.1/32"); rule.setService("wfs"); rule.setRequest("getFeature"); rule.setWorkspace("workspace"); rule.setLayer("layer"); rule.setAccess("ALLOW"); Limits limits = new Limits(); limits.setCatalogMode("HIDDEN"); (MultiPolygon) reader.read("MULTIPOLYGON (((-75 -90, -75 90, 75 90, 75 -90, -75 -90)))")); rule.setLimits(limits);
public Rule toRule(Rule rule) { if (getPriority() != null) { rule.setPriority(getPriority()); if (getAccess() != null) { rule.setAccess(GrantType.valueOf(getAccess())); if (getUserName() != null) { rule.setUsername(convertAny(getUserName())); if (getRoleName() != null) { rule.setRolename(convertAny(getRoleName())); if (getAddressRange() != null) { rule.setAddressRange(new IPAddressRange(getAddressRange())); if (getService() != null) { rule.setService(convertAny(getService())); if (getRequest() != null) { rule.setRequest(convertAny(getRequest())); if (getWorkspace() != null) { rule.setWorkspace(convertAny(getWorkspace())); if (getLayer() != null) { rule.setLayer(convertAny(getLayer()));
@Test public void testLayerDetails() { JaxbRule rule = new JaxbRule(); rule.setPriority(5L); rule.setUserName("pippo"); rule.setRoleName("clown"); rule.setAddressRange("127.0.0.1/32"); rule.setService("wfs"); rule.setRequest("getFeature"); rule.setWorkspace("workspace"); rule.setLayer("layer"); rule.setAccess("ALLOW"); rule.setLayerDetails(new JaxbRule.LayerDetails()); rule.getLayerDetails().setAllowedArea(GML3MockData.multiPolygon()); rule.getLayerDetails().getAllowedStyles().add("style1"); rule.getLayerDetails().getAllowedStyles().add("style2"); JaxbRule.LayerAttribute att = new JaxbRule.LayerAttribute(); att.setName("layerAttribute1"); att.setAccessType("READONLY"); att.setDataType("dataType"); rule.getLayerDetails().getAttributes().add(att); att = new JaxbRule.LayerAttribute(); att.setName("layerAttribute2"); att.setAccessType("READONLY"); att.setDataType("dataType2"); rule.getLayerDetails().getAttributes().add(att); rule.getLayerDetails().setCatalogMode("MIXED"); rule.getLayerDetails().setCqlFilterRead("myFilterRead"); rule.getLayerDetails().setCqlFilterWrite("myFilterWrite"); rule.getLayerDetails().setDefaultStyle("myDefaultStyle");
@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())); } }
public JaxbRuleList(List<Rule> list) { this.list = new ArrayList<JaxbRule>(); for (Rule rule : list) { this.list.add(new JaxbRule(rule)); } this.count = list.size(); }
public Rule toRule() { Rule rule = new Rule(); if (getPriority() != null) { rule.setPriority(getPriority()); } rule.setAccess(GrantType.valueOf(getAccess())); rule.setUsername(getUserName()); rule.setRolename(getRoleName()); rule.setAddressRange( getAddressRange() != null ? new IPAddressRange(getAddressRange()) : null); rule.setService(getService()); rule.setRequest(getRequest()); rule.setWorkspace(getWorkspace()); rule.setLayer(getLayer()); rule.setId(id); return rule; }
@Test public void testRestControllerPaths() throws Exception { JaxbRule rule = new JaxbRule(); rule.setPriority(5L); rule.setUserName("pippo"); rule.setRoleName("clown"); rule.setAddressRange("127.0.0.1/32"); rule.setService("wfs"); rule.setRequest("getFeature"); rule.setWorkspace("workspace"); rule.setLayer("layer"); rule.setAccess("ALLOW");
@RequestMapping(value = "/rules/id/{id}", method = RequestMethod.PUT) public @ResponseStatus(HttpStatus.OK) void clearAndUpdate( @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 = new Rule(); theRule.setId(id); adminService.update(rule.toRule(theRule)); if (rule.getLimits() != null) { adminService.setLimits(id, rule.getLimits().toRuleLimits(null)); } else { adminService.setLimits(id, null); } if (rule.getLayerDetails() != null) { adminService.setDetails(id, rule.getLayerDetails().toLayerDetails(null)); } else { adminService.setDetails(id, 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 Rule toRule() { Rule rule = new Rule(); if (getPriority() != null) { rule.setPriority(getPriority()); } rule.setAccess(GrantType.valueOf(getAccess())); rule.setUsername(getUserName()); rule.setRolename(getRoleName()); rule.setAddressRange( getAddressRange() != null ? new IPAddressRange(getAddressRange()) : null); rule.setService(getService()); rule.setRequest(getRequest()); rule.setWorkspace(getWorkspace()); rule.setLayer(getLayer()); rule.setId(id); return rule; }