Java Code Examples for javax.naming.directory.SearchControls#SUBTREE_SCOPE

The following examples show how to use javax.naming.directory.SearchControls#SUBTREE_SCOPE . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ContextEnumerator.java    From dragonwell8_jdk with GNU General Public License v2.0 5 votes vote down vote up
private void prepNextChild() throws NamingException {
    if(hasMoreChildren()) {
        try {
            currentChild = getNextChild();
            currentReturned = false;
        } catch (NamingException e){
            if (debug) System.out.println(e);
            if (debug) e.printStackTrace();
        }
    } else {
        currentChild = null;
        return;
    }

    if(scope == SearchControls.SUBTREE_SCOPE &&
       currentChild.getObject() instanceof Context) {
        currentChildEnum = newEnumerator(
                                      (Context)(currentChild.getObject()),
                                      scope, currentChild.getName(),
                                      false);
        currentChildExpanded = true;
        if(debug) {System.out.println("prepNextChild: expanded");}
    } else {
        currentChildExpanded = false;
        currentChildEnum = null;
        if(debug) {System.out.println("prepNextChild: normal");}
    }
}
 
Example 2
Source File: ContextEnumerator.java    From jdk8u_jdk with GNU General Public License v2.0 5 votes vote down vote up
private void prepNextChild() throws NamingException {
    if(hasMoreChildren()) {
        try {
            currentChild = getNextChild();
            currentReturned = false;
        } catch (NamingException e){
            if (debug) System.out.println(e);
            if (debug) e.printStackTrace();
        }
    } else {
        currentChild = null;
        return;
    }

    if(scope == SearchControls.SUBTREE_SCOPE &&
       currentChild.getObject() instanceof Context) {
        currentChildEnum = newEnumerator(
                                      (Context)(currentChild.getObject()),
                                      scope, currentChild.getName(),
                                      false);
        currentChildExpanded = true;
        if(debug) {System.out.println("prepNextChild: expanded");}
    } else {
        currentChildExpanded = false;
        currentChildEnum = null;
        if(debug) {System.out.println("prepNextChild: normal");}
    }
}
 
Example 3
Source File: ContextEnumerator.java    From hottub with GNU General Public License v2.0 5 votes vote down vote up
private void prepNextChild() throws NamingException {
    if(hasMoreChildren()) {
        try {
            currentChild = getNextChild();
            currentReturned = false;
        } catch (NamingException e){
            if (debug) System.out.println(e);
            if (debug) e.printStackTrace();
        }
    } else {
        currentChild = null;
        return;
    }

    if(scope == SearchControls.SUBTREE_SCOPE &&
       currentChild.getObject() instanceof Context) {
        currentChildEnum = newEnumerator(
                                      (Context)(currentChild.getObject()),
                                      scope, currentChild.getName(),
                                      false);
        currentChildExpanded = true;
        if(debug) {System.out.println("prepNextChild: expanded");}
    } else {
        currentChildExpanded = false;
        currentChildEnum = null;
        if(debug) {System.out.println("prepNextChild: normal");}
    }
}
 
Example 4
Source File: ContextEnumerator.java    From jdk8u-jdk with GNU General Public License v2.0 5 votes vote down vote up
private void prepNextChild() throws NamingException {
    if(hasMoreChildren()) {
        try {
            currentChild = getNextChild();
            currentReturned = false;
        } catch (NamingException e){
            if (debug) System.out.println(e);
            if (debug) e.printStackTrace();
        }
    } else {
        currentChild = null;
        return;
    }

    if(scope == SearchControls.SUBTREE_SCOPE &&
       currentChild.getObject() instanceof Context) {
        currentChildEnum = newEnumerator(
                                      (Context)(currentChild.getObject()),
                                      scope, currentChild.getName(),
                                      false);
        currentChildExpanded = true;
        if(debug) {System.out.println("prepNextChild: expanded");}
    } else {
        currentChildExpanded = false;
        currentChildEnum = null;
        if(debug) {System.out.println("prepNextChild: normal");}
    }
}
 
Example 5
Source File: ContextEnumerator.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
private void prepNextChild() throws NamingException {
    if(hasMoreChildren()) {
        try {
            currentChild = getNextChild();
            currentReturned = false;
        } catch (NamingException e){
            if (debug) System.out.println(e);
            if (debug) e.printStackTrace();
        }
    } else {
        currentChild = null;
        return;
    }

    if(scope == SearchControls.SUBTREE_SCOPE &&
       currentChild.getObject() instanceof Context) {
        currentChildEnum = newEnumerator(
                                      (Context)(currentChild.getObject()),
                                      scope, currentChild.getName(),
                                      false);
        currentChildExpanded = true;
        if(debug) {System.out.println("prepNextChild: expanded");}
    } else {
        currentChildExpanded = false;
        currentChildEnum = null;
        if(debug) {System.out.println("prepNextChild: normal");}
    }
}
 
Example 6
Source File: ContextEnumerator.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
private void prepNextChild() throws NamingException {
    if(hasMoreChildren()) {
        try {
            currentChild = getNextChild();
            currentReturned = false;
        } catch (NamingException e){
            if (debug) System.out.println(e);
            if (debug) e.printStackTrace();
        }
    } else {
        currentChild = null;
        return;
    }

    if(scope == SearchControls.SUBTREE_SCOPE &&
       currentChild.getObject() instanceof Context) {
        currentChildEnum = newEnumerator(
                                      (Context)(currentChild.getObject()),
                                      scope, currentChild.getName(),
                                      false);
        currentChildExpanded = true;
        if(debug) {System.out.println("prepNextChild: expanded");}
    } else {
        currentChildExpanded = false;
        currentChildEnum = null;
        if(debug) {System.out.println("prepNextChild: normal");}
    }
}
 
Example 7
Source File: LdapManager.java    From CloverETL-Engine with GNU Lesser General Public License v2.1 5 votes vote down vote up
/**
 * Method that calls the actual search on the jndi context.
 *
 * @param searchbase       the domain name (relative to initial context in ldap) to search from.
 * @param filter           the non-null filter to use for the search
 * @param scope            the scope level of the search, one off "SearchControls.ONELEVEL_SCOPE
 * @param limit            the maximum number of results to return
 * @param timeout          the maximum time to wait before abandoning the search
 * @param returnAttributes an array of strings containing the names of attributes to search. (null = all, empty array = none)
 * @return
 * @throws NamingException
 */
public NamingEnumeration search(String searchbase, String filter,
		String[] returnAttributes, int scope, int limit, int timeout)
		throws NamingException {

	SearchControls constraints = new SearchControls();

	if (SearchControls.ONELEVEL_SCOPE == scope) {
		constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
	} else if (SearchControls.SUBTREE_SCOPE == scope) {
		constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
	} else if (SearchControls.OBJECT_SCOPE == scope) {
		constraints.setSearchScope(SearchControls.OBJECT_SCOPE);
	} else {
		throw new NamingException("Unknown search scope: " + scope);
	}

	if (returnAttributes != null && returnAttributes.length == 0)
		returnAttributes = new String[] { "objectClass" };

	constraints.setCountLimit(limit);
	constraints.setTimeLimit(timeout);

	constraints.setReturningAttributes(returnAttributes);

	Name n = new CompositeName().add(searchbase);
	NamingEnumeration results = ctx.search(n, filter, constraints);

	return results;

}
 
Example 8
Source File: ContextEnumerator.java    From openjdk-jdk8u with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}
 
Example 9
Source File: LdapUtils.java    From MaxKey with Apache License 2.0 4 votes vote down vote up
/**
 * 
 */
public LdapUtils() {
    super();
    this.searchScope = SearchControls.SUBTREE_SCOPE;
}
 
Example 10
Source File: ContextEnumerator.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}
 
Example 11
Source File: ContextEnumerator.java    From jdk8u-dev-jdk with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}
 
Example 12
Source File: ContextEnumerator.java    From openjdk-jdk9 with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}
 
Example 13
Source File: LDAPEngine.java    From XACML with MIT License 4 votes vote down vote up
@Override
public void configure(String id, Properties properties) throws PIPException {
	/*
	 * Handle the standard properties
	 */
	super.configure(id, properties);
	String propertyPrefix	= id + ".";
	
	/*
	 * Configure the LDAP environment: I think the only required property is the provider_url
	 */
	if (!this.configureStringProperty(propertyPrefix, Context.PROVIDER_URL, properties, null)) {
		throw new PIPException("Invalid configuration for " + this.getClass().getName() + ": No " + propertyPrefix + Context.PROVIDER_URL);			
	}
	this.configureStringProperty(propertyPrefix, Context.AUTHORITATIVE, properties, null);
	this.configureIntegerProperty(propertyPrefix, Context.BATCHSIZE, properties, null);
	this.configureStringProperty(propertyPrefix, Context.DNS_URL, properties, null);
	this.configureStringProperty(propertyPrefix, Context.INITIAL_CONTEXT_FACTORY, properties, DEFAULT_CONTEXT_FACTORY);
	this.configureStringProperty(propertyPrefix, Context.LANGUAGE, properties, null);
	this.configureStringProperty(propertyPrefix, Context.OBJECT_FACTORIES, properties, null);
	this.configureStringProperty(propertyPrefix, Context.REFERRAL, properties, null);
	this.configureStringProperty(propertyPrefix, Context.SECURITY_AUTHENTICATION, properties, null);
	this.configureStringProperty(propertyPrefix, Context.SECURITY_CREDENTIALS, properties, null);
	this.configureStringProperty(propertyPrefix, Context.SECURITY_PRINCIPAL, properties, null);
	this.configureStringProperty(propertyPrefix, Context.SECURITY_PROTOCOL, properties, null);
	this.configureStringProperty(propertyPrefix, Context.STATE_FACTORIES, properties, null);
	this.configureStringProperty(propertyPrefix, Context.URL_PKG_PREFIXES, properties, null);
	
	String ldapScopeValue	= properties.getProperty(propertyPrefix + PROP_LDAP_SCOPE, DEFAULT_SCOPE);
	if (LDAP_SCOPE_SUBTREE.equals(ldapScopeValue)) {
		this.ldapScope	= SearchControls.SUBTREE_SCOPE;
	} else if (LDAP_SCOPE_OBJECT.equals(ldapScopeValue)) {
		this.ldapScope	= SearchControls.OBJECT_SCOPE;
	} else if (LDAP_SCOPE_ONELEVEL.equals(ldapScopeValue)) {
		this.ldapScope	= SearchControls.ONELEVEL_SCOPE;
	} else {
           this.logger.warn("Invalid LDAP Scope value {}: using {}", ldapScopeValue, DEFAULT_SCOPE);
		this.ldapScope	= SearchControls.SUBTREE_SCOPE;
	}
	
	/*
	 * Get list of resolvers defined for this LDAP Engine
	 */
	String resolversList = properties.getProperty(propertyPrefix + PROP_RESOLVERS);
	if (resolversList == null || resolversList.isEmpty()) {
		throw new PIPException("Invalid configuration for " + this.getClass().getName() + ": No " + propertyPrefix + PROP_RESOLVERS);
	}

	/*
	 * Iterate the resolvers
	 */
	for (String resolver : Splitter.on(',').trimResults().omitEmptyStrings().split(resolversList)) {
		/*
		 * Get the LDAPResolver for this LDAPEngine
		 */
		String resolverClassName	= properties.getProperty(propertyPrefix + PROP_RESOLVER + "." + resolver + ".classname");
		if (resolverClassName == null) {
			throw new PIPException("Invalid configuration for " + this.getClass().getName() + ": No " + propertyPrefix + PROP_RESOLVER + "." + resolver + ".classname");
		}
		
		LDAPResolver ldapResolverNew	= null;
		try {
			Class<?> classResolver	= Class.forName(resolverClassName);
			if (!LDAPResolver.class.isAssignableFrom(classResolver)) {
				throw new PIPException("LDAPResolver class " + resolverClassName + " does not implement " + LDAPResolver.class.getCanonicalName());
			}
			ldapResolverNew	= LDAPResolver.class.cast(classResolver.newInstance());
		} catch (Exception ex) {
			throw new PIPException("Exception instantiating LDAPResolver for class '" + resolverClassName + "'", ex);
		}
		assert(ldapResolverNew != null);
		ldapResolverNew.configure(propertyPrefix + PROP_RESOLVER + "." + resolver, properties, this.getIssuer());
		
		this.ldapResolvers.add(ldapResolverNew);
	}			
	
}
 
Example 14
Source File: ContextEnumerator.java    From jdk8u-jdk with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}
 
Example 15
Source File: LdapUtils.java    From MaxKey with Apache License 2.0 4 votes vote down vote up
public void setSearchSubTreeScope() {
    this.searchScope = SearchControls.SUBTREE_SCOPE;
}
 
Example 16
Source File: ContextEnumerator.java    From hottub with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}
 
Example 17
Source File: GreenStepBaseAuthorizingActiveDirectoryCustomQueryAttributeRealm.java    From bamboobsc with Apache License 2.0 4 votes vote down vote up
@Override
protected AuthenticationInfo queryForAuthenticationInfo(AuthenticationToken token, LdapContextFactory ldapContextFactory) throws NamingException {
    final GreenStepBaseUsernamePasswordToken usernamePasswordToken = (GreenStepBaseUsernamePasswordToken) token;
    LdapContext ctx = null;
    /*
    try {
    	ctx = ldapContextFactory.getSystemLdapContext();
        final String attribName = "userPrincipalName";
        final SearchControls searchControls = new SearchControls(SearchControls.SUBTREE_SCOPE, 1, 0, new String[] { attribName }, false, false);
        final NamingEnumeration<SearchResult> search = ctx.search(searchBase, this.getCustomQueryAttributeValue(), new Object[] { usernamePasswordToken.getPrincipal() }, searchControls);
        if (search.hasMore()) {
        	final SearchResult next = search.next();
            String loginUser= next.getAttributes().get(attribName).get().toString();
            if (search.hasMore()) {
                throw new RuntimeException("More than one user matching: "+usernamePasswordToken.getPrincipal());
            } else {
                try {
                	ldapContextFactory.getLdapContext(loginUser, usernamePasswordToken.getPassword());
                } catch (Exception ex) {
                    throw ex;
                }
            }
        }
        else {
            throw new RuntimeException("No user matching: " + usernamePasswordToken.getPrincipal());
        }
    } catch (NamingException ne) {
        throw ne;
    } finally {
        LdapUtils.closeContext(ctx);
    }
    */
    String searchBaseArr[] = StringUtils.defaultString(searchBase).split( Constants.ID_DELIMITER );
    boolean searchUser = false;
    for (int i = 0; searchBaseArr != null && !searchUser && i<searchBaseArr.length; i++) {
        try {
        	ctx = ldapContextFactory.getSystemLdapContext();
            final String attribName = "userPrincipalName";
            final SearchControls searchControls = new SearchControls(SearchControls.SUBTREE_SCOPE, 1, 0, new String[] { attribName }, false, false);
            final NamingEnumeration<SearchResult> search = ctx.search(searchBaseArr[i], this.getCustomQueryAttributeValue(), new Object[] { usernamePasswordToken.getPrincipal() }, searchControls);
            if (search.hasMore()) {
            	searchUser = true;
            	final SearchResult next = search.next();
                String loginUser= next.getAttributes().get(attribName).get().toString();
                if (search.hasMore()) {
                    throw new RuntimeException("More than one user matching: "+usernamePasswordToken.getPrincipal());
                } else {
                    try {
                    	ldapContextFactory.getLdapContext(loginUser, usernamePasswordToken.getPassword());
                    } catch (Exception ex) {
                        throw ex;
                    }
                }
            }
            /*
            else {
                throw new RuntimeException("No user matching: " + usernamePasswordToken.getPrincipal());
            }
            */
        } catch (NamingException ne) {
            throw ne;
        } finally {
            LdapUtils.closeContext(ctx);
        }        	
    }
    if (!searchUser) {
    	throw new RuntimeException("No user matching: " + usernamePasswordToken.getPrincipal());
    }        
    return buildAuthenticationInfo(usernamePasswordToken.getUsername(), usernamePasswordToken.getPassword());
}
 
Example 18
Source File: LdapReader.java    From CloverETL-Engine with GNU Lesser General Public License v2.1 4 votes vote down vote up
public static Node fromXML(TransformationGraph graph, Element nodeXML) throws XMLConfigurationException, AttributeNotFoundException {
	ComponentXMLAttributes xattribs = new ComponentXMLAttributes(nodeXML, graph);
	LdapReader aLdapReader = null;
	int i_scope = SearchControls.OBJECT_SCOPE;
	
	String scope = xattribs.getString(XML_SCOPE_ATTRIBUTE, null);
	String sMsg = null;
	if (scope == null) {
		sMsg = "Missing scope specification";
	} else if(scope.equalsIgnoreCase("OBJECT")) {
		// i_scope = SearchControls.OBJECT_SCOPE;	// default value
	} else if(scope.equalsIgnoreCase("ONELEVEL")) {
		i_scope = SearchControls.ONELEVEL_SCOPE;
	} else if(scope.equalsIgnoreCase("SUBTREE")) {
		i_scope = SearchControls.SUBTREE_SCOPE;
	} else {
		sMsg = "Invalid scope specification \"" + scope + "\"";
	}
	if (sMsg != null) {
		StringBuffer msg = new StringBuffer();
		
		msg.append(sMsg);
		msg.append(" in component ").append(xattribs.getString(Node.XML_ID_ATTRIBUTE, "unknown ID"));
		msg.append("; defaulting to scope \"OBJECT\"");
		logger.warn(msg.toString());
	}

	if(xattribs.exists(XML_USER_ATTRIBUTE) && xattribs.exists(XML_PASSWORD_ATTRIBUTE) ) {
		aLdapReader = new LdapReader(
				xattribs.getString(Node.XML_ID_ATTRIBUTE),
				xattribs.getStringEx(XML_LDAPURL_ATTRIBUTE, null, RefResFlag.URL),
				xattribs.getString(XML_BASE_ATTRIBUTE, null),
				xattribs.getString(XML_FILTER_ATTRIBUTE, null),
				i_scope,
				xattribs.getString(XML_USER_ATTRIBUTE),
				xattribs.getStringEx(XML_PASSWORD_ATTRIBUTE, RefResFlag.PASSWORD));
	} else {
		aLdapReader = new LdapReader(
				xattribs.getString(Node.XML_ID_ATTRIBUTE),
				xattribs.getStringEx(XML_LDAPURL_ATTRIBUTE, null, RefResFlag.URL),
				xattribs.getString(XML_BASE_ATTRIBUTE, null),
				xattribs.getString(XML_FILTER_ATTRIBUTE, null),
				i_scope);
	}
	if (xattribs.exists(XML_MULTI_VALUE_SEPARATOR_ATTRIBUTE)) {
		aLdapReader.setMultiValueSeparator(xattribs.getString(XML_MULTI_VALUE_SEPARATOR_ATTRIBUTE));
	}
	if (xattribs.exists(XML_ALIAS_HANDLING_ATTRIBUTE)) {
		aLdapReader.setAliasHandling(Enum.valueOf(AliasHandling.class, xattribs.getString(XML_ALIAS_HANDLING_ATTRIBUTE)));
	}
	if (xattribs.exists(XML_REFERRAL_HANDLING_ATTRIBUTE)) {
		aLdapReader.setReferralHandling(Enum.valueOf(ReferralHandling.class, xattribs.getString(XML_REFERRAL_HANDLING_ATTRIBUTE)));
	}
	if (xattribs.exists(XML_DEFAULT_MAPPING_FIELD)){
		aLdapReader.setDefaultMappingField(xattribs.getString(XML_DEFAULT_MAPPING_FIELD));
	}
	if (xattribs.exists(XML_PAGE_SIZE)){
		aLdapReader.setPageSize(xattribs.getInteger(XML_PAGE_SIZE));
	}
	if (xattribs.exists(XML_ALL_LDAP_ATTRIBUTES)){
		aLdapReader.setAllAttributes(xattribs.getBoolean(XML_ALL_LDAP_ATTRIBUTES));
	}
	if (xattribs.exists(XML_ADDITIONAL_BINARY_ATTRIBUTES)){
		aLdapReader.setAdditionalBinaryAttributes(xattribs.getString(XML_ADDITIONAL_BINARY_ATTRIBUTES));
	}
	if (xattribs.exists(XML_ADDITIONAL_LDAP_ENV)){
		aLdapReader.setLdapExtraPropertiesDef(xattribs.getString(XML_ADDITIONAL_LDAP_ENV));
	}
	
	return aLdapReader;
}
 
Example 19
Source File: DefaultDirContextValidatorTest.java    From spring-ldap with Apache License 2.0 4 votes vote down vote up
@Test
public void testSearchScopeSubTreeScopeSetInConstructorIsUsed() throws Exception {
	DefaultDirContextValidator tested = new DefaultDirContextValidator(SearchControls.SUBTREE_SCOPE);
	assertThat(tested.getSearchControls().getSearchScope()).as("SUBTREE_SCOPE, ").isEqualTo(SearchControls.SUBTREE_SCOPE);
}
 
Example 20
Source File: ContextEnumerator.java    From openjdk-8 with GNU General Public License v2.0 4 votes vote down vote up
public ContextEnumerator(Context context) throws NamingException {
    this(context, SearchControls.SUBTREE_SCOPE);
}