use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.
the class Scim2GroupService method searchGroups.
public PagedResult<BaseScimResource> searchGroups(String filter, String sortBy, SortOrder sortOrder, int startIndex, int count, String groupsUrl, String usersUrl, int maxCount, boolean fillMembersDisplay) throws Exception {
Filter ldapFilter = scimFilterParserService.createFilter(filter, Filter.createPresenceFilter("inum"), GroupResource.class);
log.info("Executing search for groups using: ldapfilter '{}', sortBy '{}', sortOrder '{}', startIndex '{}', count '{}'", ldapFilter.toString(), sortBy, sortOrder.getValue(), startIndex, count);
PagedResult<GluuGroup> list = ldapEntryManager.findPagedEntries(groupService.getDnForGroup(null), GluuGroup.class, ldapFilter, null, sortBy, sortOrder, startIndex - 1, count, maxCount);
List<BaseScimResource> resources = new ArrayList<>();
if (externalScimService.isEnabled() && !externalScimService.executeScimPostSearchGroupsMethods(list)) {
throw new WebApplicationException("Failed to execute SCIM script successfully", Status.PRECONDITION_FAILED);
}
for (GluuGroup group : list.getEntries()) {
GroupResource scimGroup = new GroupResource();
transferAttributesToGroupResource(group, scimGroup, fillMembersDisplay, groupsUrl, usersUrl);
resources.add(scimGroup);
}
log.info("Found {} matching entries - returning {}", list.getTotalEntriesCount(), list.getEntries().size());
PagedResult<BaseScimResource> result = new PagedResult<>();
result.setEntries(resources);
result.setTotalEntriesCount(list.getTotalEntriesCount());
return result;
}
use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.
the class Scim2UserService method searchUsers.
public PagedResult<BaseScimResource> searchUsers(String filter, String sortBy, SortOrder sortOrder, int startIndex, int count, String url, int maxCount) throws Exception {
Filter ldapFilter = scimFilterParserService.createFilter(filter, Filter.createPresenceFilter("inum"), UserResource.class);
log.info("Executing search for users using: ldapfilter '{}', sortBy '{}', sortOrder '{}', startIndex '{}', count '{}'", ldapFilter.toString(), sortBy, sortOrder.getValue(), startIndex, count);
PagedResult<ScimCustomPerson> list = ldapEntryManager.findPagedEntries(personService.getDnForPerson(null), ScimCustomPerson.class, ldapFilter, null, sortBy, sortOrder, startIndex - 1, count, maxCount);
List<BaseScimResource> resources = new ArrayList<>();
if (externalScimService.isEnabled() && !externalScimService.executeScimPostSearchUsersMethods(list)) {
throw new WebApplicationException("Failed to execute SCIM script successfully", Status.PRECONDITION_FAILED);
}
for (ScimCustomPerson person : list.getEntries()) {
UserResource scimUsr = new UserResource();
transferAttributesToUserResource(person, scimUsr, url);
resources.add(scimUsr);
}
log.info("Found {} matching entries - returning {}", list.getTotalEntriesCount(), list.getEntries().size());
PagedResult<BaseScimResource> result = new PagedResult<>();
result.setEntries(resources);
result.setTotalEntriesCount(list.getTotalEntriesCount());
return result;
}
use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.
the class CleanerTimer method cleanup.
public int cleanup(final Map.Entry<String, Class<?>> baseDn, final Date now, final int batchSize) {
try {
Filter filter = Filter.createANDFilter(Filter.createEqualityFilter("del", true), Filter.createLessOrEqualFilter("exp", entryManager.encodeTime(baseDn.getKey(), now)));
int removedCount = entryManager.remove(baseDn.getKey(), baseDn.getValue(), filter, batchSize);
log.trace("Removed {} entries from {}", removedCount, baseDn.getKey());
return removedCount;
} catch (Exception e) {
log.error("Failed to perform clean up.", e);
}
return 0;
}
use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.
the class BaseAuthFilterService method loadEntryDN.
public <T> String loadEntryDN(PersistenceEntryManager manager, Class<T> entryClass, AuthenticationFilterWithParameters authenticationFilterWithParameters, Map<String, String> normalizedAttributeValues) throws SearchException {
final String filter = buildFilter(authenticationFilterWithParameters, normalizedAttributeValues);
Filter ldapFilter = ldapFilterConverter.convertRawLdapFilterToFilter(filter).multiValued(false);
log.debug("Using filter: '{}'", ldapFilter);
List<T> foundEntries = manager.findEntries(authenticationFilterWithParameters.getAuthenticationFilter().getBaseDn(), entryClass, ldapFilter, new String[0]);
if (foundEntries.size() > 1) {
log.error("Found more than one entry by filter: '{}'. Entries: {}\n", ldapFilter, foundEntries);
return null;
}
log.debug("Found entries: {}", foundEntries.size());
if (foundEntries.size() != 1) {
return null;
}
return ((BaseEntry) foundEntries.get(0)).getDn();
}
use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.
the class ClientService method searchClients.
public List<Client> searchClients(String pattern, int sizeLimit) {
if (logger.isDebugEnabled()) {
logger.debug("Search Clients with pattern:{}, sizeLimit:{}", escapeLog(pattern), escapeLog(sizeLimit));
}
String[] targetArray = new String[] { pattern };
Filter displayNameFilter = Filter.createSubstringFilter(AttributeConstants.DISPLAY_NAME, null, targetArray, null);
Filter descriptionFilter = Filter.createSubstringFilter(AttributeConstants.DESCRIPTION, null, targetArray, null);
Filter inumFilter = Filter.createSubstringFilter(AttributeConstants.INUM, null, targetArray, null);
Filter searchFilter = Filter.createORFilter(displayNameFilter, descriptionFilter, inumFilter);
logger.debug("Search Clients with searchFilter:{}", searchFilter);
return persistenceEntryManager.findEntries(getDnForClient(null), Client.class, searchFilter, sizeLimit);
}
Aggregations