@Override public Response delete(Long id, boolean cascade) throws ConflictRestEx, NotFoundRestEx, InternalErrorRestEx { try { if ( cascade ) { ruleAdminService.deleteRulesByInstance(id); } else { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY); filter.setInstance(id); filter.getInstance().setIncludeDefault(false); long cnt = ruleAdminService.count(filter); if ( cnt > 0 ) { throw new ConflictRestEx("Existing rules reference the GSInstance " + id); } } if ( ! instanceAdminService.delete(id)) { LOGGER.warn("GSInstance not found: " + id); throw new NotFoundRestEx("GSInstance not found: " + id); } return Response.status(Status.OK).entity("OK\n").build(); } catch (GeoFenceRestEx ex) { // already handled throw ex; } catch (NotFoundServiceEx ex) { LOGGER.warn("GSInstance not found: " + id); throw new NotFoundRestEx("GSInstance not found: " + id); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }
protected AdminRule getAdminAuthAux(RuleFilter filter, TextFilter roleFilter) { Search searchCriteria = new Search(AdminRule.class); searchCriteria.addSortAsc("priority"); addStringCriteria(searchCriteria, "username", filter.getUser()); addStringCriteria(searchCriteria, "rolename", roleFilter); addCriteria(searchCriteria, "instance", filter.getInstance()); addStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); // we only need the first match, no need to aggregate (no LIMIT rules here) searchCriteria.setMaxResults(1); List<AdminRule> found = adminRuleDAO.search(searchCriteria); found = filterByAddress(filter, found); switch(found.size()) { case 0: return null; case 1: return found.get(0); default: // should not happen throw new IllegalStateException("Too many admin auth rules"); } }
public long count(RuleFilter ruleFilter) { return count( ruleFilter.getUser(), ruleFilter.getRole(), ruleFilter.getInstance(), ruleFilter.getService(), ruleFilter.getRequest(), ruleFilter.getWorkspace(), ruleFilter.getLayer()); }
public RESTOutputRuleList get(Integer page, Integer entries, boolean full, RuleFilter ruleFilter) { return get( page, entries, full, ruleFilter.getUser(), ruleFilter.getRole(), ruleFilter.getInstance(), ruleFilter.getService(), ruleFilter.getRequest(), ruleFilter.getWorkspace(), ruleFilter.getLayer()); }
private Search buildFixedRuleSearch(RuleFilter filter) { Search searchCriteria = new Search(AdminRule.class); if(filter != null) { addFixedStringCriteria(searchCriteria, "username", filter.getUser()); addFixedStringCriteria(searchCriteria, "rolename", filter.getRole()); addFixedCriteria(searchCriteria, "instance", filter.getInstance()); addFixedStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); } return searchCriteria; }
private Search buildRuleSearch(RuleFilter filter) { Search searchCriteria = new Search(AdminRule.class); if(filter != null) { addStringCriteria(searchCriteria, "username", filter.getUser()); addStringCriteria(searchCriteria, "rolename", filter.getRole()); addCriteria(searchCriteria, "instance", filter.getInstance()); addStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); } return searchCriteria; }
protected RuleFilter buildFilter( String userName, Boolean userDefault, String roleName, Boolean groupDefault, Long instanceId, String instanceName, Boolean instanceDefault, String workspace, Boolean workspaceDefault) throws BadRequestRestEx { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY, true); setFilter(filter.getUser(), userName, userDefault); setFilter(filter.getRole(), roleName, groupDefault); setFilter(filter.getInstance(), instanceId, instanceName, instanceDefault); setFilter(filter.getWorkspace(), workspace, workspaceDefault); return filter; }
private Search buildRuleSearch(RuleFilter filter) { Search searchCriteria = new Search(Rule.class); if(filter != null) { addStringCriteria(searchCriteria, "username", filter.getUser()); addStringCriteria(searchCriteria, "rolename", filter.getRole()); addCriteria(searchCriteria, "instance", filter.getInstance()); addStringCriteria(searchCriteria, "service", filter.getService()); // see class' javadoc addStringCriteria(searchCriteria, "request", filter.getRequest()); // see class' javadoc addStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); addStringCriteria(searchCriteria, "layer", filter.getLayer()); } return searchCriteria; }
private Search buildFixedRuleSearch(RuleFilter filter) { Search searchCriteria = new Search(Rule.class); if(filter != null) { addFixedStringCriteria(searchCriteria, "username", filter.getUser()); addFixedStringCriteria(searchCriteria, "rolename", filter.getRole()); addFixedCriteria(searchCriteria, "instance", filter.getInstance()); addFixedStringCriteria(searchCriteria, "service", filter.getService()); // see class' javadoc addFixedStringCriteria(searchCriteria, "request", filter.getRequest()); // see class' javadoc addFixedStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); addFixedStringCriteria(searchCriteria, "layer", filter.getLayer()); } return searchCriteria; }
protected RuleFilter buildFilter( String userName, Boolean userDefault, String roleName, Boolean groupDefault, Long instanceId, String instanceName, Boolean instanceDefault, String serviceName, Boolean serviceDefault, String requestName, Boolean requestDefault, String workspace, Boolean workspaceDefault, String layer, Boolean layerDefault) throws BadRequestRestEx { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY, true); setFilter(filter.getUser(), userName, userDefault); setFilter(filter.getRole(), roleName, groupDefault); setFilter(filter.getInstance(), instanceId, instanceName, instanceDefault); setFilter(filter.getService(), serviceName, serviceDefault); setFilter(filter.getRequest(), requestName, requestDefault); setFilter(filter.getWorkspace(), workspace, workspaceDefault); setFilter(filter.getLayer(), layer, layerDefault); return filter; }
protected List<Rule> getRuleAux(RuleFilter filter, TextFilter roleFilter) { Search searchCriteria = new Search(Rule.class); searchCriteria.addSortAsc("priority"); addStringCriteria(searchCriteria, "username", filter.getUser()); addStringCriteria(searchCriteria, "rolename", roleFilter); addCriteria(searchCriteria, "instance", filter.getInstance()); addStringCriteria(searchCriteria, "service", filter.getService()); // see class' javadoc addStringCriteria(searchCriteria, "request", filter.getRequest()); // see class' javadoc addStringCriteria(searchCriteria, "workspace", filter.getWorkspace()); addStringCriteria(searchCriteria, "layer", filter.getLayer()); List<Rule> found = ruleDAO.search(searchCriteria); found = filterByAddress(filter, found); return found; }
protected RuleFilter buildFilter( String userName, Boolean userDefault, String roleName, Boolean groupDefault, Long instanceId, String instanceName, Boolean instanceDefault, String serviceName, Boolean serviceDefault, String requestName, Boolean requestDefault, String workspace, Boolean workspaceDefault, String layer, Boolean layerDefault) { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY, true); setFilter(filter.getUser(), userName, userDefault); setFilter(filter.getRole(), roleName, groupDefault); setFilter(filter.getInstance(), instanceId, instanceName, instanceDefault); setFilter(filter.getService(), serviceName, serviceDefault); setFilter(filter.getRequest(), requestName, requestDefault); setFilter(filter.getWorkspace(), workspace, workspaceDefault); setFilter(filter.getLayer(), layer, layerDefault); return filter; }