@Override public Enumeration<String> engineAliases() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); // TODO pagination List<String> aliases = new LinkedList<>(); while (results.hasMore()) { Attribute attribute = results.next().getAttributes().get(aliasAttribute); if (attribute != null) aliases.add((String) attribute.get()); } return Collections.enumeration(aliases); } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
@Override public int engineSize() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return 0; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); int count = 0; while (results.hasMore()) { results.next(); count++; } return count; } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
private Attributes obtainAliasOrCertificateAttributes(String alias, byte[] cert, String[] attributes) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { SearchResult result = searchAlias(context, alias, cert, attributes); if (result == null) return null; return result.getAttributes(); } catch (NamingException e) { throw log.ldapKeyStoreFailedToObtainAlias(alias, e); } finally { returnDirContext(context); } }
@Override public boolean engineContainsAlias(String alias) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return false; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterAlias, new String[]{alias}, createSearchControl(new String[]{aliasAttribute})); boolean found = results.hasMore(); results.close(); return found; } catch (NamingException e) { throw log.ldapKeyStoreFailedToTestAliasExistence(alias, e); } finally { returnDirContext(context); } }
@Override public void engineDeleteEntry(String alias) throws KeyStoreException { DirContext context = obtainDirContext(); try { SearchResult result = searchAlias(context, alias, null, new String[]{}); if (result == null) { throw log.ldapKeyStoreFailedToDeleteNonExisting(alias); } context.destroySubcontext(result.getNameInNamespace()); } catch (NamingException e) { throw log.ldapKeyStoreFailedToDelete(alias, e); } finally { returnDirContext(context); } }
private void storeAttributes(String alias, List<ModificationItem> items) throws KeyStoreException { DirContext context = obtainDirContext(); try { SearchResult result = searchAlias(context, alias, null, new String[]{}); LdapName distinguishName; if (result == null) { // alias not exists yet - create if (createPath == null || createAttributes == null || createRdn == null) throw log.creationNotConfigured(alias); distinguishName = (LdapName) createPath.clone(); distinguishName.add(new Rdn(createRdn, alias)); log.debugf("Creating keystore alias [%s] with DN [%s] in LDAP", alias, distinguishName.toString()); context.createSubcontext(distinguishName, createAttributes); items.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute(aliasAttribute, alias))); } else { distinguishName = new LdapName(result.getNameInNamespace()); } context.modifyAttributes(distinguishName, items.toArray(new ModificationItem[items.size()])); } catch (NamingException e) { throw log.ldapKeyStoreFailedToStore(alias, e); } finally { returnDirContext(context); } }
@Override public Enumeration<String> engineAliases() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); // TODO pagination List<String> aliases = new LinkedList<>(); while (results.hasMore()) { Attribute attribute = results.next().getAttributes().get(aliasAttribute); if (attribute != null) aliases.add((String) attribute.get()); } return Collections.enumeration(aliases); } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
@Override public Enumeration<String> engineAliases() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); // TODO pagination List<String> aliases = new LinkedList<>(); while (results.hasMore()) { Attribute attribute = results.next().getAttributes().get(aliasAttribute); if (attribute != null) aliases.add((String) attribute.get()); } return Collections.enumeration(aliases); } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
@Override public Enumeration<String> engineAliases() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); // TODO pagination List<String> aliases = new LinkedList<>(); while (results.hasMore()) { Attribute attribute = results.next().getAttributes().get(aliasAttribute); if (attribute != null) aliases.add((String) attribute.get()); } return Collections.enumeration(aliases); } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
@Override public int engineSize() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return 0; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); int count = 0; while (results.hasMore()) { results.next(); count++; } return count; } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
@Override public int engineSize() { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return 0; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterIterate, null, createSearchControl(new String[]{aliasAttribute})); int count = 0; while (results.hasMore()) { results.next(); count++; } return count; } catch (NamingException e) { throw log.ldapKeyStoreFailedToIterateAliases(e); } finally { returnDirContext(context); } }
@Override public boolean engineContainsAlias(String alias) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return false; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterAlias, new String[]{alias}, createSearchControl(new String[]{aliasAttribute})); boolean found = results.hasMore(); results.close(); return found; } catch (NamingException e) { throw log.ldapKeyStoreFailedToTestAliasExistence(alias, e); } finally { returnDirContext(context); } }
private Attributes obtainAliasOrCertificateAttributes(String alias, byte[] cert, String[] attributes) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { SearchResult result = searchAlias(context, alias, cert, attributes); if (result == null) return null; return result.getAttributes(); } catch (NamingException e) { throw log.ldapKeyStoreFailedToObtainAlias(alias, e); } finally { returnDirContext(context); } }
private Attributes obtainAliasOrCertificateAttributes(String alias, byte[] cert, String[] attributes) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { SearchResult result = searchAlias(context, alias, cert, attributes); if (result == null) return null; return result.getAttributes(); } catch (NamingException e) { throw log.ldapKeyStoreFailedToObtainAlias(alias, e); } finally { returnDirContext(context); } }
private Attributes obtainAliasOrCertificateAttributes(String alias, byte[] cert, String[] attributes) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return null; } try { SearchResult result = searchAlias(context, alias, cert, attributes); if (result == null) return null; return result.getAttributes(); } catch (NamingException e) { throw log.ldapKeyStoreFailedToObtainAlias(alias, e); } finally { returnDirContext(context); } }
@Override public boolean engineContainsAlias(String alias) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return false; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterAlias, new String[]{alias}, createSearchControl(new String[]{aliasAttribute})); boolean found = results.hasMore(); results.close(); return found; } catch (NamingException e) { throw log.ldapKeyStoreFailedToTestAliasExistence(alias, e); } finally { returnDirContext(context); } }
@Override public boolean engineContainsAlias(String alias) { DirContext context = obtainDirContext(); if (context == null) { log.trace("Unable to obtain DirContext"); return false; } try { NamingEnumeration<SearchResult> results = context.search(searchPath, filterAlias, new String[]{alias}, createSearchControl(new String[]{aliasAttribute})); boolean found = results.hasMore(); results.close(); return found; } catch (NamingException e) { throw log.ldapKeyStoreFailedToTestAliasExistence(alias, e); } finally { returnDirContext(context); } }
@Override public void engineDeleteEntry(String alias) throws KeyStoreException { DirContext context = obtainDirContext(); try { SearchResult result = searchAlias(context, alias, null, new String[]{}); if (result == null) { throw log.ldapKeyStoreFailedToDeleteNonExisting(alias); } context.destroySubcontext(result.getNameInNamespace()); } catch (NamingException e) { throw log.ldapKeyStoreFailedToDelete(alias, e); } finally { returnDirContext(context); } }
@Override public void engineDeleteEntry(String alias) throws KeyStoreException { DirContext context = obtainDirContext(); try { SearchResult result = searchAlias(context, alias, null, new String[]{}); if (result == null) { throw log.ldapKeyStoreFailedToDeleteNonExisting(alias); } context.destroySubcontext(result.getNameInNamespace()); } catch (NamingException e) { throw log.ldapKeyStoreFailedToDelete(alias, e); } finally { returnDirContext(context); } }
@Override public void engineDeleteEntry(String alias) throws KeyStoreException { DirContext context = obtainDirContext(); try { SearchResult result = searchAlias(context, alias, null, new String[]{}); if (result == null) { throw log.ldapKeyStoreFailedToDeleteNonExisting(alias); } context.destroySubcontext(result.getNameInNamespace()); } catch (NamingException e) { throw log.ldapKeyStoreFailedToDelete(alias, e); } finally { returnDirContext(context); } }