@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[ searchFilter: '").append(searchFilter).append("', "); sb.append("searchBase: '").append(searchBase).append("'"); sb.append(", scope: ") .append(searchControls.getSearchScope() == SearchControls.SUBTREE_SCOPE ? "subtree" : "single-level, "); sb.append(", searchTimeLimit: ").append(searchControls.getTimeLimit()); sb.append(", derefLinkFlag: ").append(searchControls.getDerefLinkFlag()) .append(" ]"); return sb.toString(); } }
/** * We need to make sure the search controls has the return object flag set to true, in * order for the search to return DirContextAdapter instances. * @param originalControls * @return */ private static SearchControls buildControls(SearchControls originalControls) { return new SearchControls(originalControls.getSearchScope(), originalControls.getCountLimit(), originalControls.getTimeLimit(), originalControls.getReturningAttributes(), RETURN_OBJECT, originalControls.getDerefLinkFlag()); }
LOG.debug(" base [{}]", base); LOG.debug(" filter [{}]", searchFilter); LOG.debug(" scope [{}]", searchControls.getSearchScope()); NamingEnumeration<SearchResult> results = context.search(base, searchFilter, searchControls); while (results.hasMore()) {
ctls.setSearchScope(searchControls.getSearchScope()); ctls.setReturningAttributes(attributeNames != null && attributeNames.length > 0 ? attributeNames : null);
ctls.setSearchScope(searchControls.getSearchScope()); ctls.setReturningAttributes(attributeNames);
/** * We need to make sure the search controls has the return object flag set to true, in order for * the search to return DirContextAdapter instances. * @param originalControls * @return */ private static SearchControls buildControls(SearchControls originalControls) { return new SearchControls(originalControls.getSearchScope(), originalControls.getCountLimit(), originalControls.getTimeLimit(), originalControls.getReturningAttributes(), RETURN_OBJECT, originalControls.getDerefLinkFlag()); }
public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[ searchFilter: '").append(searchFilter).append("', "); sb.append("searchBase: '").append(searchBase).append("'"); sb.append(", scope: ") .append(searchControls.getSearchScope() == SearchControls.SUBTREE_SCOPE ? "subtree" : "single-level, "); sb.append(", searchTimeLimit: ").append(searchControls.getTimeLimit()); sb.append(", derefLinkFlag: ").append(searchControls.getDerefLinkFlag()).append(" ]"); return sb.toString(); } }
public String toString() { StringBuffer sb = new StringBuffer(); sb.append("[ searchFilter: '").append(searchFilter).append("', "); sb.append("searchBase: '").append(searchBase).append("'"); sb.append(", scope: ") .append(searchControls.getSearchScope() == SearchControls.SUBTREE_SCOPE ? "subtree" : "single-level, "); sb.append("searchTimeLimit: ").append(searchControls.getTimeLimit()); sb.append("derefLinkFlag: ").append(searchControls.getDerefLinkFlag()).append(" ]"); return sb.toString(); } }
public NamingEnumeration<SearchResult> search(String filter, Object... args) throws NamingException { if (LOG.isLoggable(Level.FINER)) { Map<Object,Object> env = new HashMap<>(context.getEnvironment()); if (env.containsKey(Context.SECURITY_CREDENTIALS)) { env.put(Context.SECURITY_CREDENTIALS, "…"); } LOG.log(Level.FINER, "searching {0}{1} in {2} using {3} with scope {4} returning {5}", new Object[] {filter, Arrays.toString(args), baseDN, env, controls.getSearchScope(), Arrays.toString(controls.getReturningAttributes())}); } return context.search(baseDN, filter,args,controls); } }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[ searchFilter: '").append(searchFilter).append("', "); sb.append("searchBase: '").append(searchBase).append("'"); sb.append(", scope: ") .append(searchControls.getSearchScope() == SearchControls.SUBTREE_SCOPE ? "subtree" : "single-level, "); sb.append(", searchTimeLimit: ").append(searchControls.getTimeLimit()); sb.append(", derefLinkFlag: ").append(searchControls.getDerefLinkFlag()) .append(" ]"); return sb.toString(); } }
/** * Initializes the object after properties are set. */ @PostConstruct public void initialize() { for (final SearchScope scope : SearchScope.values()) { if (scope.ordinal() == this.searchControls.getSearchScope()) { this.searchScope = scope; } } }
/** * Initializes the object after properties are set. */ @PostConstruct public void initialize() { for (final SearchScope scope : SearchScope.values()) { if (scope.ordinal() == this.searchControls.getSearchScope()) { this.searchScope = scope; } } this.attributes = getResultAttributeMapping().keySet().toArray(new String[getResultAttributeMapping().size()]); }
/** * We need to make sure the search controls has the return object flag set to true, in * order for the search to return DirContextAdapter instances. * @param originalControls * @return */ private static SearchControls buildControls(SearchControls originalControls) { return new SearchControls(originalControls.getSearchScope(), originalControls.getCountLimit(), originalControls.getTimeLimit(), originalControls.getReturningAttributes(), RETURN_OBJECT, originalControls.getDerefLinkFlag()); }
@Test public void testSearchScopeOneLevelScopeSetInConstructorIsUsed() throws Exception { DefaultDirContextValidator tested = new DefaultDirContextValidator(SearchControls.ONELEVEL_SCOPE); assertThat(tested.getSearchControls().getSearchScope()).as("ONELEVEL_SCOPE, ").isEqualTo(SearchControls.ONELEVEL_SCOPE); }
@Test public void testSearchScopeSubTreeScopeSetInConstructorIsUsed() throws Exception { DefaultDirContextValidator tested = new DefaultDirContextValidator(SearchControls.SUBTREE_SCOPE); assertThat(tested.getSearchControls().getSearchScope()).as("SUBTREE_SCOPE, ").isEqualTo(SearchControls.SUBTREE_SCOPE); }
@Test public void testSearchScopeObjectScopeSetInConstructorIsUsed() throws Exception { DefaultDirContextValidator tested = new DefaultDirContextValidator(SearchControls.OBJECT_SCOPE); assertThat(tested.getSearchControls().getSearchScope()).as("OBJECT_SCOPE, ").isEqualTo(SearchControls.OBJECT_SCOPE); }
public NamingEnumeration search( NextInterceptor next, LdapDN base, Map env, ExprNode filter, SearchControls searchCtls ) throws NamingException { Invocation invocation = InvocationStack.getInstance().peek(); ServerLdapContext ctx = ( ServerLdapContext ) invocation.getCaller(); LdapPrincipal user = ctx.getPrincipal(); LdapDN principalDn = user.getJndiName(); NamingEnumeration e = next.search( base, env, filter, searchCtls ); boolean isSubschemaSubentryLookup = subschemaSubentryDn.equals( base.toNormName() ); boolean isRootDSELookup = base.size() == 0 && searchCtls.getSearchScope() == SearchControls.OBJECT_SCOPE; if ( isPrincipalAnAdministrator( principalDn ) || !enabled || isRootDSELookup || isSubschemaSubentryLookup ) { return e; } AuthorizationFilter authzFilter = new AuthorizationFilter(); return new SearchResultFilteringEnumeration( e, searchCtls, invocation, authzFilter ); }
@Override public boolean matches(Object item) { if (item instanceof SearchControls) { SearchControls s1 = (SearchControls) item; return controls.getSearchScope() == s1.getSearchScope() && controls.getReturningObjFlag() == s1.getReturningObjFlag() && controls.getDerefLinkFlag() == s1.getDerefLinkFlag() && controls.getCountLimit() == s1.getCountLimit() && controls.getTimeLimit() == s1.getTimeLimit() && controls.getReturningAttributes() == s1.getReturningAttributes(); } else { throw new IllegalArgumentException(); } }
public NamingEnumeration search( NextInterceptor nextInterceptor, LdapDN base, Map env, ExprNode filter, SearchControls searchCtls ) throws NamingException { NamingEnumeration e = nextInterceptor.search( base, env, filter, searchCtls ); Invocation invocation = InvocationStack.getInstance().peek(); // object scope searches by default return subentries if ( searchCtls.getSearchScope() == SearchControls.OBJECT_SCOPE ) { return e; } // for subtree and one level scope we filter if ( !isSubentryVisible( invocation ) ) { return new SearchResultFilteringEnumeration( e, searchCtls, invocation, new HideSubentriesFilter() ); } else { return new SearchResultFilteringEnumeration( e, searchCtls, invocation, new HideEntriesFilter() ); } }
public static SearchParams toSearchParams( SearchControls searchControls, AliasDerefMode aliasDerefMode ) { SearchParams searchParams = new SearchParams(); searchParams.setAliasDerefMode( aliasDerefMode ); searchParams.setTimeLimit( searchControls.getTimeLimit() ); searchParams.setSizeLimit( searchControls.getCountLimit() ); searchParams.setScope( SearchScope.getSearchScope( searchControls.getSearchScope() ) ); searchParams.setTypesOnly( searchControls.getReturningObjFlag() ); if ( searchControls.getReturningAttributes() != null ) { for ( String returningAttribute : searchControls.getReturningAttributes() ) { searchParams.addReturningAttributes( returningAttribute ); } } searchParams.searchControls = searchControls; return searchParams; }