in src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorServlet.java [124:170]
void initWhitelist(String[] whitelistConfig) {
if (whitelistConfig == null) {
return;
}
for (int i = 0; i < whitelistConfig.length; i++) {
String aWhitelistEntry = whitelistConfig[i];
WhitelistEntry whitelistEntry = null;
if (aWhitelistEntry.contains(".") && aWhitelistEntry.contains("/")) {
// then this is a CIDR notation
try {
whitelistEntry = new SubnetWhitelistEntry(aWhitelistEntry);
} catch (Exception e) {
logger.error("activate: wrongly formatted CIDR subnet definition. Expected eg '1.2.3.4/24'. ignoring: " + aWhitelistEntry);
continue;
}
} else if (aWhitelistEntry.contains(".") && aWhitelistEntry.contains(" ")) {
// then this is a IP/subnet-mask notation
try {
final StringTokenizer st = new StringTokenizer(aWhitelistEntry, " ");
final String ip = st.nextToken();
if (st.hasMoreTokens()) {
final String mask = st.nextToken();
if (st.hasMoreTokens()) {
logger.error("activate: wrongly formatted ip subnet definition. Expected '10.1.2.3 255.0.0.0'. Ignoring: " + aWhitelistEntry);
continue;
}
whitelistEntry = new SubnetWhitelistEntry(ip, mask);
}
} catch (Exception e) {
logger.error("activate: wrongly formatted ip subnet definition. Expected '10.1.2.3 255.0.0.0'. Ignoring: " + aWhitelistEntry);
continue;
}
}
if (whitelistEntry == null) {
if (aWhitelistEntry.contains("*") || aWhitelistEntry.contains("?")) {
whitelistEntry = new WildcardWhitelistEntry(aWhitelistEntry);
} else {
plaintextWhitelist.add(aWhitelistEntry);
}
}
logger.info("activate: adding whitelist entry: " + aWhitelistEntry);
if (whitelistEntry != null) {
whitelist.add(whitelistEntry);
}
}
}