/** * Ensures that a search operation is processed with a filter constructed for * the given user ID. This will either process the search operation * immediately in the current thread (if a single manage-account search thread * is configured), or will enqueue the filter to be processed by another * thread. * * @param userID The user ID for which toi search. */ void processUserID(final String userID) { processFilter(Filter.createEqualityFilter(userIDAttribute, userID)); }
/** * Retrieves a filter that will match any entry containing the structural and * auxiliary classes for this object type. * * @return A filter that will match any entry containing the structural and * auxiliary classes for this object type. */ public Filter createBaseFilter() { if (auxiliaryClasses.length == 0) { return Filter.createEqualityFilter("objectClass", structuralClass); } else { final ArrayList<Filter> comps = new ArrayList<Filter>(1+auxiliaryClasses.length); comps.add(Filter.createEqualityFilter("objectClass", structuralClass)); for (final String s : auxiliaryClasses) { comps.add(Filter.createEqualityFilter("objectClass", s)); } return Filter.createANDFilter(comps); } }
@Override public Object visit(RoleUserFilter role, Object extraData) { List<Filter> filters = new ArrayList<Filter>(); for (String ldapRole : ldapRoleMapping.keySet()) { if (ldapRoleMapping.get(ldapRole).contains(role.getName())) { filters.add(Filter.createEqualityFilter(rolesAttribute, ldapRole)); } } return Filter.createORFilter(filters); }
private SearchRequest createSearchRequest(String searchDN) { List<String> attributes = new ArrayList<String>(); attributes.add("cn"); addAttribute(attributes, givenNameAttribute); addAttribute(attributes, surNameAttribute); addAttribute(attributes, localeAttribute); addAttribute(attributes, organizationAttribute); addAttribute(attributes, divisionAttribute); addAttribute(attributes, rolesAttribute); SearchRequest request = new SearchRequest(searchDN, SearchScope.SUB, Filter.createEqualityFilter( "objectclass", "person"), attributes.toArray(new String[attributes.size()])); return request; }
@Override public Set<String> retrieveUserGroups(LDAPUserContext userContext) throws LDAPException { Set<String> groups = new HashSet<String>(); try { Filter groupClassFilter; if (groupObjectClass != null && !groupObjectClass.isEmpty()) { groupClassFilter = Filter.createEqualityFilter("objectClass", groupObjectClass); } else { groupClassFilter = Filter.createPresenceFilter("objectClass"); } Filter filter = Filter.createANDFilter(groupClassFilter, Filter.createEqualityFilter(groupMemberAttribute, userContext.getDn())); LOGGER.debug(filter.toString()); SearchResult searchResult = ldapConnectionPool.search(StringUtils.join(groupBase, ','), SearchScope.SUB, filter, "cn"); for (SearchResultEntry entry : searchResult.getSearchEntries()) { groups.add(entry.getAttributeValue("cn")); } return groups; } catch (com.unboundid.ldap.sdk.LDAPException e) { throw new LDAPException(e); } } }
/** * Retrieves a list of all monitor entries available in the Directory Server. * * @param connection The connection to use to communicate with the Directory * Server. * * @return A list of all monitor entries available in the Directory Server. * * @throws LDAPSearchException If a problem occurs while communicating with * the Directory Server. */ public static List<MonitorEntry> getMonitorEntries( final LDAPInterface connection) throws LDAPSearchException { final Filter filter = Filter.createEqualityFilter("objectClass", MonitorEntry.GENERIC_MONITOR_OC); final SearchResult searchResult = connection.search(MonitorEntry.MONITOR_BASE_DN, SearchScope.SUB, filter); final ArrayList<MonitorEntry> monitorEntries = new ArrayList<MonitorEntry>(searchResult.getEntryCount()); for (final SearchResultEntry e : searchResult.getSearchEntries()) { monitorEntries.add(MonitorEntry.decode(e)); } return Collections.unmodifiableList(monitorEntries); }
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", ReplicaMonitorEntry.REPLICA_MONITOR_OC);
/** * Retrieves the FIFO entry cache monitor entries from the Directory Server. * * @param connection The connection to use to communicate with the Directory * Server. * * @return The entry cache monitor entry from the Directory Server, or * {@code null} if it is not available. * * @throws LDAPSearchException If a problem occurs while communicating with * the Directory Server. */ public static List<FIFOEntryCacheMonitorEntry> getFIFOEntryCacheMonitorEntries(final LDAPInterface connection) throws LDAPSearchException { final Filter filter = Filter.createEqualityFilter("objectClass", FIFOEntryCacheMonitorEntry.FIFO_ENTRY_CACHE_MONITOR_OC); final SearchResult searchResult = connection.search(MonitorEntry.MONITOR_BASE_DN, SearchScope.SUB, filter); final ArrayList<FIFOEntryCacheMonitorEntry> monitorEntries = new ArrayList<FIFOEntryCacheMonitorEntry>( searchResult.getEntryCount()); for (final SearchResultEntry e : searchResult.getSearchEntries()) { monitorEntries.add(new FIFOEntryCacheMonitorEntry(e)); } return Collections.unmodifiableList(monitorEntries); }
/** * Retrieves a list of all backend monitor entries available in the Directory * Server. * * @param connection The connection to use to communicate with the Directory * Server. * * @return A list of all backend monitor entries available in the Directory * Server. * * @throws LDAPSearchException If a problem occurs while communicating with * the Directory Server. */ public static List<BackendMonitorEntry> getBackendMonitorEntries( final LDAPInterface connection) throws LDAPSearchException { final Filter filter = Filter.createEqualityFilter("objectClass", BackendMonitorEntry.BACKEND_MONITOR_OC); final SearchResult searchResult = connection.search(MonitorEntry.MONITOR_BASE_DN, SearchScope.SUB, filter); final ArrayList<BackendMonitorEntry> monitorEntries = new ArrayList<BackendMonitorEntry>(searchResult.getEntryCount()); for (final SearchResultEntry e : searchResult.getSearchEntries()) { monitorEntries.add(new BackendMonitorEntry(e)); } return Collections.unmodifiableList(monitorEntries); }
/** * Retrieves a list of all index monitor entries available in the Directory * Server. * * @param connection The connection to use to communicate with the Directory * Server. * * @return A list of all index monitor entries available in the Directory * Server. * * @throws LDAPSearchException If a problem occurs while communicating with * the Directory Server. */ public static List<IndexMonitorEntry> getIndexMonitorEntries( final LDAPInterface connection) throws LDAPSearchException { final Filter filter = Filter.createEqualityFilter("objectClass", IndexMonitorEntry.INDEX_MONITOR_OC); final SearchResult searchResult = connection.search(MonitorEntry.MONITOR_BASE_DN, SearchScope.SUB, filter); final ArrayList<IndexMonitorEntry> monitorEntries = new ArrayList<IndexMonitorEntry>(searchResult.getEntryCount()); for (final SearchResultEntry e : searchResult.getSearchEntries()) { monitorEntries.add(new IndexMonitorEntry(e)); } return Collections.unmodifiableList(monitorEntries); }
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", ConnectionHandlerMonitorEntry.CONNECTION_HANDLER_MONITOR_OC);
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", JEEnvironmentMonitorEntry.JE_ENVIRONMENT_MONITOR_OC);
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", LDAPStatisticsMonitorEntry.LDAP_STATISTICS_MONITOR_OC);
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", ReplicationSummaryMonitorEntry.REPLICATION_SUMMARY_MONITOR_OC);
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", LoadBalancingAlgorithmMonitorEntry. LOAD_BALANCING_ALGORITHM_MONITOR_OC);
@Override public Map<String, LdapGroup> getAccountGroups(String accountDN) throws LdapSystemException { Map<String, LdapGroup> result = new HashMap<>(); try (LDAPConnection conn = ldapPool.getConnection()) { String baseDN = config.getLdapGroupsBaseDN(); log.info("Group base DN: " + baseDN); Filter filter = Filter.createANDFilter( Filter.createEqualityFilter("objectClass", config.getLdapGroupsObjectClass()), Filter.createEqualityFilter(config.getLdapGroupsMemberAttr(), accountDN)); SearchResult searchResult = conn.search(baseDN, SUB, filter, GROUP_NAME_ATTR, config.getLdapGroupsMemberAttr(), GROUP_DESC_ATTR); for (SearchResultEntry entry : searchResult.getSearchEntries()) { String dn = entry.getDN(); String name = entry.getAttributeValue(GROUP_NAME_ATTR); String description = entry.getAttributeValue(GROUP_DESC_ATTR); Set<String> members = new HashSet<>(Arrays.asList(entry.getAttributeValues(config.getLdapGroupsMemberAttr()))); result.put(dn, new LdapGroup(name, dn, description, members)); } } catch (LDAPException e) { throw new LdapSystemException(e); } return result; }
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", ResultCodeMonitorEntry.RESULT_CODE_MONITOR_OC);
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", StackTraceMonitorEntry.STACK_TRACE_MONITOR_OC);
throws LDAPSearchException final Filter filter = Filter.createEqualityFilter("objectClass", UnboundIDWorkQueueMonitorEntry.UNBOUNDID_WORK_QUEUE_MONITOR_OC);
/** * Read group from LDAP. If there is no group it returns NULL. * * @param groupName name of gruop * @param conn ldap connection * @return LDAP group or null if there is no group * @throws LDAPException */ protected LdapGroup getGroup(String groupName, LDAPConnection conn) throws LdapSystemException { try { LdapGroup result = null; String baseDN = config.getLdapGroupsBaseDN(); Filter groupFilter = Filter.createEqualityFilter(GROUP_NAME_ATTR, groupName); SearchResultEntry entry = conn.searchForEntry(baseDN, ONE, groupFilter, GROUP_NAME_ATTR, config.getLdapGroupsMemberAttr(), GROUP_DESC_ATTR); if (entry != null) { String dn = entry.getDN(); String name = entry.getAttributeValue(GROUP_NAME_ATTR); String description = entry.getAttributeValue(GROUP_DESC_ATTR); Set<String> members = new HashSet<>(Arrays.asList(entry.getAttributeValues(config.getLdapGroupsMemberAttr()))); result = new LdapGroup(name, dn, description, members); } return result; } catch (LDAPException e) { throw new LdapSystemException(e); } }