@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; }
/** * 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; }
@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; }
/** * Returns a search filter using {@link #userFilter} and {@link #userFilterParameters}. The user parameter is injected * as a named parameter of 'user'. * * @param user to resolve DN * * @return search filter */ protected SearchFilter createSearchFilter(final User user) { final SearchFilter filter = new SearchFilter(); if (user != null && user.getIdentifier() != null && !"".equals(user.getIdentifier())) { 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.getIdentifier()); // assign context as a named parameter filter.setParameter("context", user.getContext()); } else { logger.error("Invalid userFilter, cannot be null or empty."); } } else { logger.warn("Search filter cannot be created, user input was empty or null"); } return filter; }
/** {@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); }
/** * Returns a search filter using {@link #userFilter} and {@link #userFilterParameters}. {@link * AuthenticationRequest#getUser()} is injected with a named parameter of 'user', {@link * AuthenticationCriteria#getDn()} is injected with a named parameter of 'dn'. * * @param ac authentication criteria * * @return search filter */ protected SearchFilter createSearchFilter(final AuthenticationCriteria ac) { final SearchFilter filter = new SearchFilter(); if (userFilter != null) { logger.debug("searching for entry using userFilter"); filter.setFilter(userFilter); if (userFilterParameters != null) { filter.setParameters(userFilterParameters); } // assign named parameters filter.setParameter("user", ac.getAuthenticationRequest().getUser()); filter.setParameter("dn", ac.getDn()); } 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 filterQuery the query filter * @param params the username * @return Search filter with parameters applied. */ public static SearchFilter newSearchFilter(final String filterQuery, final String... params) { final SearchFilter filter = new SearchFilter(); filter.setFilter(filterQuery); if (params != null) { for (int i = 0; i < params.length; i++) { if (filter.getFilter().contains("{" + i + "}")) { filter.setParameter(i, params[i]); } else { filter.setParameter("user", params[i]); } } } LOGGER.debug("Constructed LDAP search filter [{}]", filter.format()); return filter; }
/** * Returns a search filter using {@link #userFilter} and {@link #userFilterParameters}. The user parameter is injected * as a named parameter of 'user'. * * @param user to resolve DN * * @return search filter */ protected SearchFilter createSearchFilter(final User user) { final SearchFilter filter = new SearchFilter(); if (user != null && user.getIdentifier() != null && !"".equals(user.getIdentifier())) { 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.getIdentifier()); // assign context as a named parameter filter.setParameter("context", user.getContext()); } else { logger.error("Invalid userFilter, cannot be null or empty."); } } else { logger.warn("Search filter cannot be created, user input was empty or null"); } return filter; }
/** * 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()]); }
/** * Returns a search filter using {@link #userFilter} and {@link #userFilterParameters}. {@link * User#getIdentifier()} is injected with a named parameter of 'user', {@link User#getContext()} is injected with a * named parameter of 'context', and {@link AuthenticationCriteria#getDn()} is injected with a named parameter of * 'dn'. * * @param ac authentication criteria * * @return search filter */ protected SearchFilter createSearchFilter(final AuthenticationCriteria ac) { final SearchFilter filter = new SearchFilter(); if (userFilter != null) { logger.debug("searching for entry using userFilter"); filter.setFilter(userFilter); if (userFilterParameters != null) { filter.setParameters(userFilterParameters); } // assign named parameters filter.setParameter("user", ac.getAuthenticationRequest().getUser().getIdentifier()); filter.setParameter("context", ac.getAuthenticationRequest().getUser().getContext()); filter.setParameter("dn", ac.getDn()); } else { logger.error("Invalid userFilter, cannot be null or empty."); } return filter; }
/** * 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()]); }
/** * Returns a search filter using {@link #userFilter} and {@link #userFilterParameters}. {@link * User#getIdentifier()} is injected with a named parameter of 'user', {@link User#getContext()} is injected with a * named parameter of 'context', and {@link AuthenticationCriteria#getDn()} is injected with a named parameter of * 'dn'. * * @param ac authentication criteria * * @return search filter */ protected SearchFilter createSearchFilter(final AuthenticationCriteria ac) { final SearchFilter filter = new SearchFilter(); if (userFilter != null) { logger.debug("searching for entry using userFilter"); filter.setFilter(userFilter); if (userFilterParameters != null) { filter.setParameters(userFilterParameters); } // assign named parameters filter.setParameter("user", ac.getAuthenticationRequest().getUser().getIdentifier()); filter.setParameter("context", ac.getAuthenticationRequest().getUser().getContext()); filter.setParameter("dn", ac.getDn()); } else { logger.error("Invalid userFilter, cannot be null or empty."); } return filter; }
/** * 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 createSearchFilter(final User user) { final SearchFilter filter = new SearchFilter(); if (user != null && user.getContext() != null) { final VelocityContext context = (VelocityContext) user.getContext(); final EventCartridge cartridge = new EventCartridge(); cartridge.addEventHandler(eventHandler); cartridge.attachToContext(context); final String result = template.merge(context); if (result != null && !"".equals(result)) { filter.setFilter(result.trim()); } else { logger.error("Invalid template filter produced from {}, cannot be null or empty.", template); } // keep compatibility with old filter syntax if (getUserFilterParameters() != null) { filter.setParameters(getUserFilterParameters()); } if (user.getIdentifier() != null && !"".equals(user.getIdentifier())) { filter.setParameter("user", user.getIdentifier()); } } else { logger.warn("Search filter cannot be created, user input was empty or null"); } return filter; }
filter.setParameter("dn", loginDn); filter.setParameter("user", loginName); searchRequest.setSearchFilter(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; } }
final SearchFilter sf1 = new SearchFilter(f1); final SearchFilter sf2 = new SearchFilter("(&(givenName={0})(sn={1}))"); sf2.setParameter(0, "Bill"); sf2.setParameter(1, "Wallace"); sf3.setParameter("name", "Bill"); sf3.setParameter(1, "Wallace"); sf4.setParameter("firstname", "Bill*"); sf4.setParameter("lastname", "Wa(ll)ace"); sf5.setParameter("firstname", new byte[] {'B', 'i', 'l', 'l', }); sf5.setParameter("lastname", new byte[] {'W', 'a', 'l', 'l', 'a', 'c', 'e', });
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();
connection = createConnection(); final Operation searchOperation = new SearchOperation(connection); this.searchRequest.getSearchFilter().setParameter(0, remoteHostName);
groupSearchExecutor.getSearchFilter().setParameter(0, userEntry.getDn()); SearchResult searchResult = groupSearchExecutor.search(connectionFactory).getResult(); Collection<LdapEntry> groupEntries = searchResult.getEntries();