public X509Plugin(Properties properties) { String path = properties.getProperty("gplazma.x509.igtf-info.path"); infoDirectory = path == null ? null : new IGTFInfoDirectory(path); }
public Set<Principal> getPrincipals(GlobusPrincipal certificateAuthority) { Set<Principal> principals = new HashSet<>(); try { verifyUptoDate(); } catch (IOException e) { LOG.warn("Problem scanning directory {}: {}", directory, e.toString()); } IGTFStatusPrincipal status = taStatus.get(certificateAuthority); if (status != null) { principals.add(status); } principals.addAll(taPolicies.get(certificateAuthority)); return principals; }
private Set<Principal> identifyPrincipalsFromCA(X500Principal ca) { return infoDirectory == null ? Collections.emptySet() : infoDirectory.getPrincipals(asGlobusPrincipal(ca)); }
private synchronized void verifyUptoDate() throws IOException { if (System.currentTimeMillis() - lastStat > MIN_STAT_DURATION) { lastStat = System.currentTimeMillis(); FileTime mtime = Files.getLastModifiedTime(directory); if (lastScanned == null || mtime.compareTo(lastScanned) > 0) { lastScanned = mtime; updateDirectory(); } } }