File created in the LDAP refactoring branch; (currently not being used) in the MAIN/HEAD branch. This is a JavaBean which is used to create JNDI SearchControls Objects for use in searching LDAP DirContexts.
This commit is contained in:
parent
1502ba9409
commit
b371f35cfc
|
@ -0,0 +1,171 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package net.sf.acegisecurity.providers.dao.ldap;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.naming.directory.SearchControls;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
/**
|
||||||
|
* Used to specify properties which are used to
|
||||||
|
* construct JNDI SearchControls instances.
|
||||||
|
*
|
||||||
|
* @see javax.naming.directory.SearchControls
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SearchControlsFactory {
|
||||||
|
|
||||||
|
private static final transient Log logger = LogFactory.getLog(SearchControlsFactory.class);
|
||||||
|
|
||||||
|
/** Name, which when combined with the rootContext of the DirContext
|
||||||
|
* being searched will resolve to the DN that the search should be performed in.
|
||||||
|
*/
|
||||||
|
private String searchContextName;
|
||||||
|
|
||||||
|
/** Names of the attributes to return from the search;
|
||||||
|
* default is null in which case ALL attributes will be returned.
|
||||||
|
*/
|
||||||
|
private String[] returnAttrNames;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* One of the 3 possible scope values as specified in SearchControles. <br/>
|
||||||
|
* <ul>
|
||||||
|
* <li>SearchControls.OBJECT_SCOPE = Search the attributes associated with the object specified by searchContextName.
|
||||||
|
* <li>SearchControls.ONELEVEL_SCOPE = Search the objects contained within the searchContextName.
|
||||||
|
* <li>SearchControls.SUBTREE_SCOPE = Recursivly search the objects contained within the searchContextName and any child context's it may contain.
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private int searchScope = SearchControls.ONELEVEL_SCOPE;
|
||||||
|
|
||||||
|
/** Number of milliseconds to wait before a timeout error is triggered. */
|
||||||
|
private int timeout = 10000;
|
||||||
|
|
||||||
|
/** Maximum number of objects to return. Defauts to zero == no limit. */
|
||||||
|
private int countLimit = 0;
|
||||||
|
|
||||||
|
/** If set to true then links will be followed,
|
||||||
|
* if left at the default of false then links will be returned (not followed).
|
||||||
|
*/
|
||||||
|
private boolean followLinks = false;
|
||||||
|
|
||||||
|
/** If set to true (the default) then objects can be returned from the LDAP server. */
|
||||||
|
private boolean returnObjects = true;
|
||||||
|
|
||||||
|
/** Given the settings for this LdapSearchCriteria,
|
||||||
|
* use it to create a new instance of SearchControls with matching settings.
|
||||||
|
*
|
||||||
|
* @return A new instance of SearchControls.
|
||||||
|
*/
|
||||||
|
public SearchControls newSearchControls() {
|
||||||
|
SearchControls controls =
|
||||||
|
new SearchControls(searchScope, countLimit, timeout, returnAttrNames, returnObjects, followLinks);
|
||||||
|
return controls;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the countLimit.
|
||||||
|
*/
|
||||||
|
public int getCountLimit() {
|
||||||
|
return countLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param countLimit The countLimit to set.
|
||||||
|
*/
|
||||||
|
public void setCountLimit(int countLimit) {
|
||||||
|
this.countLimit = countLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the followLinks.
|
||||||
|
*/
|
||||||
|
public boolean isFollowLinks() {
|
||||||
|
return followLinks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param followLinks The followLinks to set.
|
||||||
|
*/
|
||||||
|
public void setFollowLinks(boolean followLinks) {
|
||||||
|
this.followLinks = followLinks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the returnAttrNames.
|
||||||
|
*/
|
||||||
|
public String[] getReturnAttrNames() {
|
||||||
|
return returnAttrNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param returnAttrNames The returnAttrNames to set.
|
||||||
|
*/
|
||||||
|
public void setReturnAttrNames(String[] returnAttrNames) {
|
||||||
|
this.returnAttrNames = returnAttrNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the searchContextName.
|
||||||
|
*/
|
||||||
|
public String getSearchContextName() {
|
||||||
|
return searchContextName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param searchContextName The searchContextName to set.
|
||||||
|
*/
|
||||||
|
public void setSearchContextName(String searchContextName) {
|
||||||
|
this.searchContextName = searchContextName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the searchScope.
|
||||||
|
*/
|
||||||
|
public int getSearchScope() {
|
||||||
|
return searchScope;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param searchScope The searchScope to set.
|
||||||
|
*/
|
||||||
|
public void setSearchScope(int searchScope) {
|
||||||
|
this.searchScope = searchScope;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Set the searchScope using a string, should be one of:
|
||||||
|
* OBJECT_SCOPE, ONELEVEL_SCOPE, or SUBTREE_SCOPE (you probably want ONELEVEL_SCOPE).
|
||||||
|
*
|
||||||
|
* @param scope
|
||||||
|
*/
|
||||||
|
public void setSearchScope(String scope) {
|
||||||
|
if ("OBJECT_SCOPE".equals(scope)) {
|
||||||
|
setSearchScope( SearchControls.OBJECT_SCOPE );
|
||||||
|
} else if ("ONELEVEL_SCOPE".equals(scope)) {
|
||||||
|
setSearchScope( SearchControls.ONELEVEL_SCOPE );
|
||||||
|
} else if ("SUBTREE_SCOPE".equals(scope)) {
|
||||||
|
setSearchScope( SearchControls.SUBTREE_SCOPE );
|
||||||
|
} else {
|
||||||
|
logger.warn("Scope '" + scope + "' not recognized, setting to ONELEVEL_SCOPE");
|
||||||
|
setSearchScope( SearchControls.ONELEVEL_SCOPE );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the timeout.
|
||||||
|
*/
|
||||||
|
public int getTimeout() {
|
||||||
|
return timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param timeout The timeout to set.
|
||||||
|
*/
|
||||||
|
public void setTimeout(int timeout) {
|
||||||
|
this.timeout = timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue