/** * Returns a search request initialized for use with an object level search scope. * * @param dn of an ldap entry * @param attrs to return * * @return search request */ public static SearchRequest newObjectScopeSearchRequest(final String dn, final String[] attrs) { return newObjectScopeSearchRequest(dn, attrs, new SearchFilter("(objectClass=*)")); }
/** * Returns a search filter using {@link #userFilter} and {@link #userFilterParameters}. The user parameter is injected * as a named parameter of 'user'. * * @param user identifier * * @return search filter */ protected SearchFilter createSearchFilter(final String user) { final SearchFilter filter = new SearchFilter(); if (userFilter != null) { logger.debug("searching for DN using userFilter"); filter.setFilter(userFilter); if (userFilterParameters != null) { filter.setParameters(userFilterParameters); } // assign user as a named parameter filter.setParameter("user", user); } else { logger.error("Invalid userFilter, cannot be null or empty."); } return filter; }
/** * Constructs a new search filter using {@link SearchExecutor#searchFilter} as a template and * the username as a parameter. * * @param executor the executor * @param username the username * @return Search filter with parameters applied. */ private SearchFilter createSearchFilter(final SearchExecutor executor, final String username) { final SearchFilter filter = new SearchFilter(); filter.setFilter(executor.getSearchFilter().getFilter()); filter.setParameter(0, username); logger.debug("Constructed LDAP search filter [{}]", filter.format()); return filter; } }
/** * Creates a new search filter with the supplied filter and parameters. * * @param filter to set * @param params to set */ public SearchFilter(final String filter, final Object[] params) { setFilter(filter); setParameters(params); }
@Override protected SearchFilter appendAttributeToQuery( final SearchFilter filter, final String attribute, final List<Object> values) { final SearchFilter query; if (filter == null && values.size() > 0) { query = new SearchFilter(this.searchFilter); query.setParameter(0, values.get(0).toString()); logger.debug("Constructed LDAP search query [{}]", query.format()); } else { throw new UnsupportedOperationException("Multiple attributes not supported."); } return query; }
/** {@inheritDoc} */ @Override public ExecutableSearchFilter build(@Nonnull final AttributeResolutionContext resolutionContext, @Nonnull final Map<String, List<IdPAttributeValue<?>>> dependencyAttributes) throws ResolutionException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); final SearchFilter sf = new SearchFilter(searchFilter); sf.setParameter("principalName", resolutionContext.getPrincipal()); if (dependencyAttributes != null && !dependencyAttributes.isEmpty()) { for (final Map.Entry<String, List<IdPAttributeValue<?>>> entry : dependencyAttributes.entrySet()) { int i = 0; for (final IdPAttributeValue<?> value : entry.getValue()) { if (i == 0) { sf.setParameter(String.format("%s", entry.getKey(), i), value.getValue()); } sf.setParameter(String.format("%s[%s]", entry.getKey(), i++), value.getValue()); } } } return super.build(sf); }
final SearchFilter sf11 = new SearchFilter("(|(telephoneNumber={term1})(localPhone={term1}))"); sf11.setParameter("term1", "fisher"); sf11.setParameter("initial1", "f"); final SearchFilter sf12 = new SearchFilter("(|(telephoneNumber=*{term1})(localPhone=*{term1}))"); sf12.setParameter("term1", "fisher"); sf12.setParameter("initial1", "f"); final SearchFilter sf13 = new SearchFilter("(|(givenName={term1})(sn={term1}))"); sf13.setParameter("term1", "fisher"); sf13.setParameter("initial1", "f"); final SearchFilter sf14 = new SearchFilter("(|(givenName={term1}*)(sn={term1}*))"); sf14.setParameter("term1", "fisher"); sf14.setParameter("initial1", "f"); final SearchFilter sf15 = new SearchFilter("(|(givenName=*{term1}*)(sn=*{term1}*))"); sf15.setParameter("term1", "fisher"); sf15.setParameter("initial1", "f"); final SearchFilter sf21 = new SearchFilter("(&(givenName={term1})(sn={term2}))"); sf21.setParameter("term1", "daniel"); sf21.setParameter("term2", "fisher"); sf21.setParameter("initial1", "d"); sf21.setParameter("initial2", "f"); final SearchFilter sf22 = new SearchFilter("(cn={term1} {term2})"); sf22.setParameter("term1", "daniel"); sf22.setParameter("term2", "fisher");
connection = createConnection(); final Operation searchOperation = new SearchOperation(connection); this.searchRequest.getSearchFilter().setParameter(0, remoteHostName); this.searchRequest.getSearchFilter().format(), this.searchRequest.getBaseDn());
/** {@inheritDoc} */ @Nullable public String getResultCacheKey() { return searchFilter.format(); }
searchRequest.setBaseDn(""); final SearchFilter searchFilter = new SearchFilter(); if (validateFilter != null) { searchFilter.setFilter(validateFilter); } else { searchFilter.setFilter("(objectClass=*)");
try { userSearchExecutor.getSearchFilter().setParameter(0, username); SearchResult userSearchResult = userSearchExecutor.search(connectionFactory).getResult(); LdapEntry userEntry = userSearchResult.getEntry(); groupSearchExecutor.getSearchFilter().setParameter(0, userEntry.getDn()); SearchResult searchResult = groupSearchExecutor.search(connectionFactory).getResult(); Collection<LdapEntry> groupEntries = searchResult.getEntries();
/** * Creates a new search filter with the supplied filter. * * @param filter to set */ public SearchFilter(final String filter) { setFilter(filter); }
/** * Returns {@link SearchFilter#encodeValue} if value is a string. * * @param value to encode * * @return encoded value if value is a string */ private Object encode(final Object value) { if (value instanceof String){ return SearchFilter.encodeValue((String) value); } else if (value instanceof byte[]) { return SearchFilter.encodeValue((byte[]) value); } return value; } }
if (filter.getFilter() != null) { final SearchResult result = performLdapSearch(filter); final Iterator<LdapEntry> answer = result.getEntries().iterator();
/** * Creates the search filters using configured templates and the supplied query. * * @param query to create search filter with * * @return search filters */ public SearchFilter[] format(final Query query) { final List<SearchFilter> filters = new ArrayList<>(filterTemplates.length); for (String template : filterTemplates) { final SearchFilter filter = new SearchFilter( concatFilters(template, query.getSearchRestrictions(), searchRestrictions)); for (TermParser parser : termParsers) { for (Map.Entry<String, String> e : parser.parse(query.getTerms()).entrySet()) { filter.setParameter(e.getKey(), e.getValue()); } } filters.add(filter); } return filters.toArray(new SearchFilter[filters.size()]); }
@Override protected SearchFilter appendAttributeToQuery(final SearchFilter filter, final String attribute, final List<Object> values) { final SearchFilter query; if (filter == null && values.size() > 0) { query = new SearchFilter(this.searchFilter); if (this.searchFilter.contains("{0}")) { query.setParameter(0, values.get(0).toString()); } else if (this.searchFilter.contains("{user}")) { query.setParameter("user", values.get(0).toString()); } logger.debug("Constructed LDAP search query [{}]", query.format()); } else { throw new UnsupportedOperationException("Multiple attributes not supported."); } return query; }
/** * @param encodedFilter to compare against * @param filter to format * * @throws Exception On test failure. */ @Test(groups = {"filter"}, dataProvider = "filters") public void testFormat(final String encodedFilter, final SearchFilter filter) throws Exception { Assert.assertEquals(filter.format(), encodedFilter); } }
groupSearchExecutor.getSearchFilter().setParameter(0, userEntry.getDn()); SearchResult searchResult = groupSearchExecutor.search(connectionFactory).getResult(); Collection<LdapEntry> groupEntries = searchResult.getEntries();
/** * Creates a new search filter with the supplied filter and parameters. * * @param filter to set * @param params to set */ public SearchFilter(final String filter, final Object[] params) { setFilter(filter); setParameters(params); }
/** * Creates a new search filter with the supplied filter. * * @param filter to set */ public SearchFilter(final String filter) { setFilter(filter); }