Search in sources :

Example 6 with Filter

use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.

the class PairwiseIdentifierService method findPairWiseIdentifier.

public PairwiseIdentifier findPairWiseIdentifier(String userInum, String sectorIdentifier, String clientId) throws Exception {
    PairwiseIdType pairwiseIdType = PairwiseIdType.fromString(appConfiguration.getPairwiseIdType());
    if (PairwiseIdType.PERSISTENT == pairwiseIdType) {
        prepareBranch(userInum);
        String baseDnForPairwiseIdentifiers = getBaseDnForPairwiseIdentifiers(userInum);
        final Filter filter;
        if (appConfiguration.isShareSubjectIdBetweenClientsWithSameSectorId()) {
            Filter sectorIdentifierFilter = Filter.createEqualityFilter("jansSectorIdentifier", sectorIdentifier);
            Filter userInumFilter = Filter.createEqualityFilter("jansUsrId", userInum);
            filter = Filter.createANDFilter(sectorIdentifierFilter, userInumFilter);
        } else {
            Filter sectorIdentifierFilter = Filter.createEqualityFilter("jansSectorIdentifier", sectorIdentifier);
            Filter clientIdFilter = Filter.createEqualityFilter("jansClntId", clientId);
            Filter userInumFilter = Filter.createEqualityFilter("jansUsrId", userInum);
            filter = Filter.createANDFilter(sectorIdentifierFilter, clientIdFilter, userInumFilter);
        }
        List<PairwiseIdentifier> entries = ldapEntryManager.findEntries(baseDnForPairwiseIdentifiers, PairwiseIdentifier.class, filter);
        if (entries != null && !entries.isEmpty()) {
            // if more then one entry then it's problem, non-deterministic behavior, id must be unique
            if (entries.size() > 1) {
                log.error("Found more then one pairwise identifier by sector identifier: {}" + sectorIdentifier);
                for (PairwiseIdentifier pairwiseIdentifier : entries) {
                    log.error("PairwiseIdentifier: {}", pairwiseIdentifier);
                }
            }
            return entries.get(0);
        }
    } else {
        // PairwiseIdType.ALGORITHMIC
        String key = appConfiguration.getPairwiseCalculationKey();
        String salt = appConfiguration.getPairwiseCalculationSalt();
        String localAccountId = appConfiguration.isShareSubjectIdBetweenClientsWithSameSectorId() ? userInum : userInum + clientId;
        String calculatedSub = SubjectIdentifierGenerator.generatePairwiseSubjectIdentifier(sectorIdentifier, localAccountId, key, salt, appConfiguration);
        PairwiseIdentifier pairwiseIdentifier = new PairwiseIdentifier(sectorIdentifier, clientId, userInum);
        pairwiseIdentifier.setId(calculatedSub);
        return pairwiseIdentifier;
    }
    return null;
}
Also used : PairwiseIdentifier(io.jans.as.persistence.model.PairwiseIdentifier) Filter(io.jans.orm.search.filter.Filter) PairwiseIdType(io.jans.as.model.common.PairwiseIdType)

Example 7 with Filter

use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.

the class AbstractCustomScriptService method findCustomScripts.

public List<CustomScript> findCustomScripts(List<CustomScriptType> customScriptTypes, String... returnAttributes) {
    String baseDn = baseDn();
    if ((customScriptTypes == null) || (customScriptTypes.size() == 0)) {
        return findAllCustomScripts(returnAttributes);
    }
    List<Filter> customScriptTypeFilters = new ArrayList<Filter>();
    for (CustomScriptType customScriptType : customScriptTypes) {
        Filter customScriptTypeFilter = Filter.createEqualityFilter("jansScrTyp", customScriptType.getValue());
        customScriptTypeFilters.add(customScriptTypeFilter);
    }
    Filter filter = Filter.createORFilter(customScriptTypeFilters);
    List<CustomScript> result = persistenceEntryManager.findEntries(baseDn, CustomScript.class, filter, returnAttributes);
    return result;
}
Also used : CustomScript(io.jans.model.custom.script.model.CustomScript) Filter(io.jans.orm.search.filter.Filter) CustomScriptType(io.jans.model.custom.script.CustomScriptType) ArrayList(java.util.ArrayList)

Example 8 with Filter

use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.

the class AbstractCustomScriptService method findScriptByPatternAndType.

public List<CustomScript> findScriptByPatternAndType(String pattern, CustomScriptType type) {
    String baseDn = baseDn();
    Filter filter = buildFindByPatterAndTypeFilter(baseDn, pattern, type);
    return persistenceEntryManager.findEntries(baseDn, CustomScript.class, filter, null);
}
Also used : Filter(io.jans.orm.search.filter.Filter)

Example 9 with Filter

use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.

the class AbstractCustomScriptService method buildFindByPatterAndTypeFilter.

private Filter buildFindByPatterAndTypeFilter(String baseDn, String pattern, CustomScriptType type) {
    boolean useLowercaseFilter = !PersistenceEntryManager.PERSITENCE_TYPES.ldap.name().equals(persistenceEntryManager.getPersistenceType(baseDn));
    String[] targetArray = new String[] { pattern };
    Filter descriptionFilter, displayNameFilter;
    if (useLowercaseFilter) {
        descriptionFilter = Filter.createSubstringFilter(Filter.createLowercaseFilter(OxConstants.DESCRIPTION), null, targetArray, null);
        displayNameFilter = Filter.createSubstringFilter(Filter.createLowercaseFilter(OxConstants.DISPLAY_NAME), null, targetArray, null);
    } else {
        descriptionFilter = Filter.createSubstringFilter(OxConstants.DESCRIPTION, null, targetArray, null);
        displayNameFilter = Filter.createSubstringFilter(OxConstants.DISPLAY_NAME, null, targetArray, null);
    }
    Filter searchFilter = Filter.createORFilter(descriptionFilter, displayNameFilter);
    Filter typeFilter = Filter.createEqualityFilter(OxConstants.SCRIPT_TYPE, type);
    Filter filter = Filter.createANDFilter(searchFilter, typeFilter);
    return filter;
}
Also used : Filter(io.jans.orm.search.filter.Filter)

Example 10 with Filter

use of io.jans.orm.search.filter.Filter in project jans by JanssenProject.

the class AbstractCustomScriptService method getScriptByDisplayName.

public CustomScript getScriptByDisplayName(String name) {
    Filter searchFilter = Filter.createEqualityFilter("displayName", name);
    List<CustomScript> result = persistenceEntryManager.findEntries(baseDn(), CustomScript.class, searchFilter, 1);
    if (result != null && !result.isEmpty()) {
        return result.get(0);
    }
    return null;
}
Also used : CustomScript(io.jans.model.custom.script.model.CustomScript) 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