/** * This method try to retrieve the protocol indicated by the given URL string. * * @param urlString to be analysed * @return found {@code Protocol} or {@code null} */ public static Protocol getFrom(final String urlString) { if (HTTP.isTheSame(urlString)) { return HTTP; } else if (HTTPS.isTheSame(urlString)) { return HTTPS; } else if (LDAP.isTheSame(urlString)) { return LDAP; } else if (FTP.isTheSame(urlString)) { return FTP; } else if (FILE.isTheSame(urlString)) { return FILE; } return null; }
@Override public byte[] get(final String urlString) { if (Protocol.isFileUrl(urlString)) { return fileGet(urlString); } else if (Protocol.isHttpUrl(urlString)) { return httpGet(urlString); } else if (Protocol.isFtpUrl(urlString)) { return ftpGet(urlString); } else if (Protocol.isLdapUrl(urlString)) { return ldapGet(urlString); } else { LOG.warn("DSS framework only supports FILE, HTTP, HTTPS, FTP and LDAP Urls."); } return httpGet(urlString); }
/** * Get TSL location. * * @return url */ public String getTslLocation() { String urlString = getConfigurationParameter(ConfigurationParameter.TslLocation); if (!Protocol.isFileUrl(urlString)) return urlString; try { String filePath = new URL(urlString).getPath(); if (!new File(filePath).exists()) { URL resource = getClass().getClassLoader().getResource(filePath); if (resource != null) urlString = resource.toString(); } } catch (MalformedURLException e) { LOGGER.warn(e.getMessage()); } return urlString == null ? "" : urlString; }
private DataLoader createDataLoader() { if (Protocol.isHttpUrl(this.configuration.getTslLocation())) { CachingDataLoader dataLoader = new CachingDataLoader(this.configuration); dataLoader.setTimeoutConnection(this.configuration.getConnectionTimeout()); dataLoader.setTimeoutSocket(this.configuration.getSocketTimeout()); dataLoader.setCacheExpirationTime(this.configuration.getTslCacheExpirationTime()); dataLoader.setFileCacheDirectory(this.fileCacheDirectory); logger.debug("Using file cache directory for storing TSL: {}", this.fileCacheDirectory); return dataLoader; } else { return new CommonsDataLoader(); } }
/** * if {@code preferredProtocol} is set then the list of urls is prioritize. * NOTE: This is not standard conformant! However in the major number of cases LDAP is much slower then HTTP! * * @param urls * {@code List} of urls to prioritize */ private void prioritize(final List<String> urls) { if (preferredProtocol != null) { final List<String> priorityUrls = new ArrayList<String>(); for (final String url : urls) { if (preferredProtocol.isTheSame(url)) { priorityUrls.add(url); } } urls.removeAll(priorityUrls); for (int ii = priorityUrls.size() - 1; ii >= 0; ii--) { urls.add(0, priorityUrls.get(ii)); } } }