|  | @@ -85,6 +85,9 @@ import java.util.Set;
 | 
	
		
			
				|  |  |   * A search for roles for user "uid=ben,ou=people,dc=springframework,dc=org" would return the single granted authority
 | 
	
		
			
				|  |  |   * "ROLE_DEVELOPER".
 | 
	
		
			
				|  |  |   * <p>
 | 
	
		
			
				|  |  | + * Note that case-conversion, use of the role prefix and setting a default role are better performed using a
 | 
	
		
			
				|  |  | + * {@code GrantedAuthoritiesMapper} and are now deprecated.
 | 
	
		
			
				|  |  | + * <p>
 | 
	
		
			
				|  |  |   * The single-level search is performed by default. Setting the <tt>searchSubTree</tt> property to true will enable
 | 
	
		
			
				|  |  |   * a search of the entire subtree under <tt>groupSearchBase</tt>.
 | 
	
		
			
				|  |  |   *
 | 
	
	
		
			
				|  | @@ -124,12 +127,6 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
 | 
	
		
			
				|  |  |       * The pattern to be used for the user search. {0} is the user's DN
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      private String groupSearchFilter = "(member={0})";
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * Attributes of the User's LDAP Object that contain role name information.
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -//    private String[] userRoleAttributes = null;
 | 
	
		
			
				|  |  |      private String rolePrefix = "ROLE_";
 | 
	
		
			
				|  |  |      private boolean convertToUpperCase = true;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -141,13 +138,17 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
 | 
	
		
			
				|  |  |       *
 | 
	
		
			
				|  |  |       * @param contextSource supplies the contexts used to search for user roles.
 | 
	
		
			
				|  |  |       * @param groupSearchBase          if this is an empty string the search will be performed from the root DN of the
 | 
	
		
			
				|  |  | -     *                                 context factory.
 | 
	
		
			
				|  |  | +     *                                 context factory. If null, no search will be performed.
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      public DefaultLdapAuthoritiesPopulator(ContextSource contextSource, String groupSearchBase) {
 | 
	
		
			
				|  |  |          Assert.notNull(contextSource, "contextSource must not be null");
 | 
	
		
			
				|  |  |          ldapTemplate = new SpringSecurityLdapTemplate(contextSource);
 | 
	
		
			
				|  |  |          ldapTemplate.setSearchControls(searchControls);
 | 
	
		
			
				|  |  | -        setGroupSearchBase(groupSearchBase);
 | 
	
		
			
				|  |  | +        this.groupSearchBase = groupSearchBase;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (groupSearchBase.length() == 0) {
 | 
	
		
			
				|  |  | +            logger.info("groupSearchBase is empty. Searches will be performed from the context source base");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      //~ Methods ========================================================================================================
 | 
	
	
		
			
				|  | @@ -232,24 +233,14 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
 | 
	
		
			
				|  |  |          return ldapTemplate.getContextSource();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * Set the group search base (name to search under)
 | 
	
		
			
				|  |  | -     *
 | 
	
		
			
				|  |  | -     * @param groupSearchBase if this is an empty string the search will be performed from the root DN of the context
 | 
	
		
			
				|  |  | -     *                        factory.
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    private void setGroupSearchBase(String groupSearchBase) {
 | 
	
		
			
				|  |  | -        Assert.notNull(groupSearchBase, "The groupSearchBase (name to search under), must not be null.");
 | 
	
		
			
				|  |  | -        this.groupSearchBase = groupSearchBase;
 | 
	
		
			
				|  |  | -        if (groupSearchBase.length() == 0) {
 | 
	
		
			
				|  |  | -            logger.info("groupSearchBase is empty. Searches will be performed from the context source base");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      protected String getGroupSearchBase() {
 | 
	
		
			
				|  |  |          return groupSearchBase;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * @deprecated Convert case in the {@code AuthenticationProvider} using a {@code GrantedAuthoritiesMapper}.
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Deprecated
 | 
	
		
			
				|  |  |      public void setConvertToUpperCase(boolean convertToUpperCase) {
 | 
	
		
			
				|  |  |          this.convertToUpperCase = convertToUpperCase;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -258,7 +249,9 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
 | 
	
		
			
				|  |  |       * The default role which will be assigned to all users.
 | 
	
		
			
				|  |  |       *
 | 
	
		
			
				|  |  |       * @param defaultRole the role name, including any desired prefix.
 | 
	
		
			
				|  |  | +     * @deprecated Assign a default role in the {@code AuthenticationProvider} using a {@code GrantedAuthoritiesMapper}.
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | +    @Deprecated
 | 
	
		
			
				|  |  |      public void setDefaultRole(String defaultRole) {
 | 
	
		
			
				|  |  |          Assert.notNull(defaultRole, "The defaultRole property cannot be set to null");
 | 
	
		
			
				|  |  |          this.defaultRole = new SimpleGrantedAuthority(defaultRole);
 | 
	
	
		
			
				|  | @@ -277,7 +270,10 @@ public class DefaultLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * Sets the prefix which will be prepended to the values loaded from the directory.
 | 
	
		
			
				|  |  |       * Defaults to "ROLE_" for compatibility with <tt>RoleVoter/tt>.
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @deprecated Map the authorities in the {@code AuthenticationProvider} using a {@code GrantedAuthoritiesMapper}.
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | +    @Deprecated
 | 
	
		
			
				|  |  |      public void setRolePrefix(String rolePrefix) {
 | 
	
		
			
				|  |  |          Assert.notNull(rolePrefix, "rolePrefix must not be null");
 | 
	
		
			
				|  |  |          this.rolePrefix = rolePrefix;
 |