@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()); } }
/** We expect the user not to be null and not to be admin */ private boolean isWorkspaceAdmin(Authentication user, String workspaceName) { LOGGER.log(Level.FINE, "Getting admin auth for Workspace {0}", workspaceName); // get the request infos RuleFilter ruleFilter = new RuleFilter(RuleFilter.SpecialFilterType.ANY); ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); ruleFilter.setWorkspace(workspaceName); String username = user.getName(); if (username == null || username.isEmpty()) { ruleFilter.setUser(RuleFilter.SpecialFilterType.DEFAULT); } String sourceAddress = retrieveCallerIpAddress(); if (sourceAddress != null) { ruleFilter.setSourceAddress(sourceAddress); } else { LOGGER.log(Level.WARNING, "No source IP address found"); ruleFilter.setSourceAddress(RuleFilter.SpecialFilterType.DEFAULT); } if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "AdminAuth filter: {0}", ruleFilter); } AccessInfo auth = rules.getAdminAuthorization(ruleFilter); LOGGER.log( Level.FINE, "Admin auth for User:{0} Workspace:{1}: {2}", new Object[] {user.getName(), workspaceName, auth.getAdminRights()}); return auth.getAdminRights(); }
/** We expect the user not to be null and not to be admin */ private boolean isWorkspaceAdmin(Authentication user, String workspaceName) { LOGGER.log(Level.FINE, "Getting admin auth for Workspace {0}", workspaceName); // get the request infos RuleFilter ruleFilter = new RuleFilter(RuleFilter.SpecialFilterType.ANY); ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); ruleFilter.setWorkspace(workspaceName); String username = user.getName(); if (username == null || username.isEmpty()) { ruleFilter.setUser(RuleFilter.SpecialFilterType.DEFAULT); } String sourceAddress = retrieveCallerIpAddress(); if (sourceAddress != null) { ruleFilter.setSourceAddress(sourceAddress); } else { LOGGER.log(Level.WARNING, "No source IP address found"); ruleFilter.setSourceAddress(RuleFilter.SpecialFilterType.DEFAULT); } if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "AdminAuth filter: {0}", ruleFilter); } AccessInfo auth = rules.getAdminAuthorization(ruleFilter); LOGGER.log( Level.FINE, "Admin auth for User:{0} Workspace:{1}: {2}", new Object[] {user.getName(), workspaceName, auth.getAdminRights()}); return auth.getAdminRights(); }
setRuleFilterUserOrRole(user, ruleFilter); ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); if (service != null) { if ("*".equals(service)) {
setRuleFilterUserOrRole(user, ruleFilter); ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); if (service != null) { if ("*".equals(service)) {
ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); ruleFilter.setService(service); ruleFilter.setRequest(request);
ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); ruleFilter.setService(service); ruleFilter.setRequest(request);
ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); ruleFilter.setService(service); ruleFilter.setRequest(request);
ruleFilter.setInstance(configurationManager.getConfiguration().getInstanceName()); ruleFilter.setService(service); ruleFilter.setRequest(request);