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;
}
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;
}
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);
}
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;
}
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;
}
Aggregations