@Override public LdapEntry resolve(final AuthenticationCriteria criteria, final AuthenticationHandlerResponse response) throws LdapException { logger.debug("resolve criteria={}", criteria); final SearchResult result = performLdapSearch(criteria, response); logger.debug("resolved result={} for criteria={}", result, criteria); LdapEntry entry = null; final Iterator<LdapEntry> answer = result.getEntries().iterator(); if (answer != null && answer.hasNext()) { entry = answer.next(); if (answer.hasNext()) { logger.debug("multiple results found for user={}", criteria.getDn()); if (!allowMultipleEntries) { throw new LdapException("Found more than (1) entry for: " + criteria.getDn()); } } } return entry; } }
/** * Returns a search request for the supplied authentication criteria. If no {@link #userFilter} is defined then an * object level search on the authentication criteria DN is returned. Otherwise the {@link #userFilter}, {@link * #baseDn} and {@link #subtreeSearch} are used to create the search request. * * @param ac authentication criteria containing a DN * * @return search request */ protected SearchRequest createSearchRequest(final AuthenticationCriteria ac) { final SearchRequest request; if (userFilter != null) { request = new SearchRequest(baseDn, createSearchFilter(ac)); request.setReturnAttributes(ac.getAuthenticationRequest().getReturnAttributes()); if (subtreeSearch) { request.setSearchScope(SearchScope.SUBTREE); } else { request.setSearchScope(SearchScope.ONELEVEL); } } else { request = SearchRequest.newObjectScopeSearchRequest( ac.getDn(), ac.getAuthenticationRequest().getReturnAttributes()); } request.setDerefAliases(derefAliases); request.setReferralHandler(referralHandler); request.setSearchEntryHandlers(entryHandlers); return request; }
/** * Returns a search request for the supplied authentication criteria. If no {@link #userFilter} is defined then an * object level search on the authentication criteria DN is returned. Otherwise the {@link #userFilter}, {@link * #baseDn} and {@link #subtreeSearch} are used to create the search request. * * @param ac authentication criteria containing a DN * * @return search request */ protected SearchRequest createSearchRequest(final AuthenticationCriteria ac) { SearchRequest request; if (userFilter != null) { request = new SearchRequest(baseDn, createSearchFilter(ac)); request.setReturnAttributes(ac.getAuthenticationRequest().getReturnAttributes()); if (subtreeSearch) { request.setSearchScope(SearchScope.SUBTREE); } else { request.setSearchScope(SearchScope.ONELEVEL); } } else { request = SearchRequest.newObjectScopeSearchRequest( ac.getDn(), ac.getAuthenticationRequest().getReturnAttributes()); } request.setDerefAliases(derefAliases); request.setReferralHandler(referralHandler); request.setSearchEntryHandlers(entryHandlers); return request; }
@Override public LdapEntry resolve(final AuthenticationCriteria criteria, final AuthenticationHandlerResponse response) throws LdapException { logger.debug("resolve criteria={}", criteria); final SearchResult result = performLdapSearch(criteria, response); logger.debug("resolved result={} for criteria={}", result, criteria); LdapEntry entry = null; final Iterator<LdapEntry> answer = result.getEntries().iterator(); if (answer != null && answer.hasNext()) { entry = answer.next(); if (answer.hasNext()) { logger.debug("multiple results found for user={}", criteria.getDn()); if (!allowMultipleEntries) { throw new LdapException("Found more than (1) entry for: " + criteria.getDn()); } } } return entry; } }
/** * Returns a search request for the supplied authentication criteria. If no {@link #userFilter} is defined then an * object level search on the authentication criteria DN is returned. Otherwise the {@link #userFilter}, {@link * #baseDn} and {@link #subtreeSearch} are used to create the search request. * * @param ac authentication criteria containing a DN * * @return search request */ protected SearchRequest createSearchRequest(final AuthenticationCriteria ac) { final SearchRequest request; if (userFilter != null) { request = new SearchRequest(baseDn, createSearchFilter(ac)); request.setReturnAttributes(ac.getAuthenticationRequest().getReturnAttributes()); if (subtreeSearch) { request.setSearchScope(SearchScope.SUBTREE); } else { request.setSearchScope(SearchScope.ONELEVEL); } } else { request = SearchRequest.newObjectScopeSearchRequest( ac.getDn(), ac.getAuthenticationRequest().getReturnAttributes()); } request.setDerefAliases(derefAliases); request.setReferralHandler(referralHandler); request.setSearchEntryHandlers(entryHandlers); return request; }
@Override public LdapEntry resolve(final AuthenticationCriteria criteria, final AuthenticationHandlerResponse response) throws LdapException { logger.debug("resolve criteria={}", criteria); final SearchResult result = performLdapSearch(criteria, response); logger.debug("resolved result={} for criteria={}", result, criteria); LdapEntry entry = null; final Iterator<LdapEntry> answer = result.getEntries().iterator(); if (answer != null && answer.hasNext()) { entry = answer.next(); if (answer.hasNext()) { logger.debug("multiple results found for user={}", criteria.getDn()); if (!allowMultipleEntries) { throw new LdapException("Found more than (1) entry for: " + criteria.getDn()); } } } return entry; } }