/** @param user */ private void setRuleFilterUserOrRole(Authentication user, RuleFilter ruleFilter) { if (user != null) { GeoFenceConfiguration config = configurationManager.getConfiguration(); if (config.isUseRolesToFilter() && config.getRoles().size() > 0) { String role = "UNKNOWN"; for (GrantedAuthority authority : user.getAuthorities()) { if (config.getRoles().contains(authority.getAuthority())) { role = authority.getAuthority(); } } LOGGER.log(Level.FINE, "Setting role for filter: {0}", new Object[] {role}); ruleFilter.setRole(role); } else { String username = user.getName(); if (username == null || username.isEmpty()) { ruleFilter.setUser(RuleFilter.SpecialFilterType.DEFAULT); } else { LOGGER.log(Level.FINE, "Setting user for filter: {0}", new Object[] {username}); ruleFilter.setUser(username); } } } else { ruleFilter.setUser(RuleFilter.SpecialFilterType.DEFAULT); } }
/** @param user */ private void setRuleFilterUserOrRole(Authentication user, RuleFilter ruleFilter) { if (user != null) { GeoFenceConfiguration config = configurationManager.getConfiguration(); if (config.isUseRolesToFilter() && config.getRoles().size() > 0) { String role = "UNKNOWN"; for (GrantedAuthority authority : user.getAuthorities()) { if (config.getRoles().contains(authority.getAuthority())) { role = authority.getAuthority(); } } LOGGER.log(Level.FINE, "Setting role for filter: {0}", new Object[] {role}); ruleFilter.setRole(role); } else { String username = user.getName(); if (username == null || username.isEmpty()) { ruleFilter.setUser(RuleFilter.SpecialFilterType.DEFAULT); } else { LOGGER.log(Level.FINE, "Setting user for filter: {0}", new Object[] {username}); ruleFilter.setUser(username); } } } else { ruleFilter.setUser(RuleFilter.SpecialFilterType.DEFAULT); } }
@Override public Response delete(String name, boolean cascade) throws ConflictRestEx, NotFoundRestEx, InternalErrorRestEx { try { if ( cascade ) { ruleAdminService.deleteRulesByRole(name); } else { RuleFilter filter = new RuleFilter(SpecialFilterType.ANY); filter.setRole(name); filter.getUser().setIncludeDefault(false); long cnt = ruleAdminService.count(filter); if ( cnt > 0 ) { throw new ConflictRestEx("Existing rules reference the role " + name); } } UserGroup role = userGroupAdminService.get(name); if ( ! userGroupAdminService.delete(role.getId())) { LOGGER.warn("Role not found: " + name); throw new NotFoundRestEx("Role not found: " + name); } return Response.status(Status.OK).entity("OK\n").build(); } catch (GeoFenceRestEx ex) { // already handled throw ex; } catch (NotFoundServiceEx ex) { LOGGER.warn("Role not found: " + name); throw new NotFoundRestEx("Role not found: " + name); } catch (Exception ex) { LOGGER.error(ex.getMessage(), ex); throw new InternalErrorRestEx(ex.getMessage()); } }