Search in sources :

Example 31 with Filter

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;
}
Also used : WebApplicationException(javax.ws.rs.WebApplicationException) Filter(io.jans.orm.search.filter.Filter) BaseScimResource(io.jans.scim.model.scim2.BaseScimResource) ArrayList(java.util.ArrayList) GluuGroup(io.jans.scim.model.GluuGroup) GroupResource(io.jans.scim.model.scim2.group.GroupResource) PagedResult(io.jans.orm.model.PagedResult)

Example 32 with Filter

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;
}
Also used : WebApplicationException(javax.ws.rs.WebApplicationException) Filter(io.jans.orm.search.filter.Filter) ScimCustomPerson(io.jans.scim.model.scim.ScimCustomPerson) BaseScimResource(io.jans.scim.model.scim2.BaseScimResource) ArrayList(java.util.ArrayList) UserResource(io.jans.scim.model.scim2.user.UserResource) PagedResult(io.jans.orm.model.PagedResult)

Example 33 with Filter

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;
}
Also used : Filter(io.jans.orm.search.filter.Filter)

Example 34 with Filter

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();
}
Also used : BaseFilter(io.jans.as.model.configuration.BaseFilter) Filter(io.jans.orm.search.filter.Filter) BaseEntry(io.jans.orm.model.base.BaseEntry)

Example 35 with Filter

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);
}
Also used : Filter(io.jans.orm.search.filter.Filter)

Aggregations

Filter (io.jans.orm.search.filter.Filter)188 Test (org.testng.annotations.Test)50 EntryPersistenceException (io.jans.orm.exception.EntryPersistenceException)32 ConvertedExpression (io.jans.orm.couchbase.model.ConvertedExpression)28 SearchException (io.jans.orm.exception.operation.SearchException)25 ConvertedExpression (io.jans.orm.sql.model.ConvertedExpression)24 MappingException (io.jans.orm.exception.MappingException)22 ArrayList (java.util.ArrayList)21 AuthenticationException (io.jans.orm.exception.AuthenticationException)20 PropertyAnnotation (io.jans.orm.reflect.property.PropertyAnnotation)19 EntryDeleteException (io.jans.orm.exception.EntryDeleteException)18 Date (java.util.Date)14 List (java.util.List)14 SqlEntryManager (io.jans.orm.sql.impl.SqlEntryManager)11 SqlEntryManagerSample (io.jans.orm.sql.persistence.SqlEntryManagerSample)11 CustomAttribute (io.jans.orm.model.base.CustomAttribute)9 CustomObjectAttribute (io.jans.orm.model.base.CustomObjectAttribute)9 DateTimeParseException (java.time.format.DateTimeParseException)9 SpannerEntryManager (io.jans.orm.cloud.spanner.impl.SpannerEntryManager)8 SpannerEntryManagerSample (io.jans.orm.cloud.spanner.persistence.SpannerEntryManagerSample)8