private void logIniContents(Ini ini) { // TODO use Logger? System.out.println("Shiro INI contents"); for (Map.Entry<String, Ini.Section> entry : ini.entrySet()) { System.out.println("Section : " + entry.getKey()); for (Map.Entry<String, String> sectionEntry : entry.getValue().entrySet()) { System.out.println(sectionEntry.getKey() + " = " + sectionEntry.getValue()); } } }
private void parseGroups(FileSystem fileSystem, Path resourcePath) throws IOException { Ini ini = PolicyFiles.loadFromPath(fileSystem, resourcePath); Section usersSection = ini.getSection(PolicyFileConstants.USERS); if (usersSection == null) { LOGGER.warn("No section " + PolicyFileConstants.USERS + " in the " + resourcePath); return; } for (Entry<String, String> userEntry : usersSection.entrySet()) { String userName = Strings.nullToEmpty(userEntry.getKey()).trim(); String groupNames = Strings.nullToEmpty(userEntry.getValue()).trim(); if (userName.isEmpty()) { LOGGER.error("Invalid user name in the " + resourcePath); continue; } if (groupNames.isEmpty()) { LOGGER.warn("No groups available for user " + userName + " in the " + resourcePath); continue; } Set<String> groupList = Sets.newHashSet(PolicyConstants.ROLE_SPLITTER.trimResults().split( groupNames)); LOGGER.debug("Got user mapping: " + userName + ", Groups: " + groupNames); groupMap.put(userName, groupList); } }
private void addManuallyConfiguredUrls(Ini.Section target, Ini.Section source) { Boolean globalAudit = Boolean.valueOf(config.getIsGlobalAuditActive()); List<GlobalFilterConfiguration> globalFilterConfigurations = BeanProvider.getContextualReferences(GlobalFilterConfiguration.class, true); for (Map.Entry<String, String> entry : source.entrySet()) { String value = entry.getValue(); String url = entry.getKey(); if (!url.startsWith("/")) { url = '/' + url; } List<String> additionalFilters = new ArrayList<String>(); if (globalAudit) { additionalFilters.add("audit"); } for (GlobalFilterConfiguration globalFilterConfiguration : globalFilterConfigurations) { additionalFilters.addAll(globalFilterConfiguration.addFiltersTo(url)); } if (!additionalFilters.isEmpty()) { StringBuilder filters = new StringBuilder(); filters.append(value); for (String additionalFilter : additionalFilters) { filters.append(", ").append(additionalFilter); } value = filters.toString(); } target.put(url, value); } }
throw new SentryConfigurationException(msg); } else { for(Map.Entry<String, String> entry : filesSection.entrySet()) { String database = Strings.nullToEmpty(entry.getKey()).trim().toLowerCase(); Path perDbPolicy = new Path(Strings.nullToEmpty(entry.getValue()).trim());
Multimap<String, String> roleNameToPrivilegeMap = HashMultimap .create(); for (Map.Entry<String, String> entry : rolesSection.entrySet()) { String roleName = stringInterner.intern(Strings.nullToEmpty(entry.getKey()).trim()); String roleValue = Strings.nullToEmpty(entry.getValue()).trim(); for (Map.Entry<String, String> entry : groupsSection.entrySet()) { String groupName = stringInterner.intern(Strings.nullToEmpty(entry.getKey()).trim()); String groupPrivileges = Strings.nullToEmpty(entry.getValue()).trim();
public static Ini copyIniFile(Ini originalFile){ Set<Entry<String, Section>> entries = originalFile.entrySet(); Ini emptyFile; try { FileInputStream file = new FileInputStream(new File(EMPTY_DATA_FILE_NAME)); emptyFile = new Ini(file); file.close(); } catch (Exception e) { e.printStackTrace(); return null; } for(Entry<String, Section> entry : entries){ String key = (String) entry.getKey(); Section section = (Section) entry.getValue(); copySection(key, section, emptyFile); } return emptyFile; } public static Ini.Section copySection(String key, Ini.Section origin, Ini destinationFile){ Ini.Section newSection = destinationFile.get(key); if(newSection==null) throw new IllegalArgumentException(); for(Entry<String, String> entry : origin.entrySet()){ newSection.put(entry.getKey().toString(), entry.getValue().toString()); } return newSection; }
private void processAdditionalIniFiles(Ini ini) { String additionalShiroIniFileNames = config.getAdditionalShiroIniFileNames(); if (additionalShiroIniFileNames != null && additionalShiroIniFileNames.trim().length() > 0) { String[] iniFileNames = additionalShiroIniFileNames.split(","); for (String iniFileName : iniFileNames) { Ini additionalIni = createIni(iniFileName, false); if (additionalIni != null) { for (Map.Entry<String, Ini.Section> sectionEntry : additionalIni.entrySet()) { Ini.Section section = ini.get(sectionEntry.getKey()); Map<String, String> sectionValues = new HashMap<String, String>(); for (Map.Entry<String, String> sectionValue : sectionEntry.getValue().entrySet()) { sectionValues.put(sectionValue.getKey(), sectionValue.getValue()); } section.putAll(sectionValues); } } } } }