diff --git a/core/src/main/java/org/springframework/security/ldap/populator/UserDetailsServiceLdapAuthoritiesPopulator.java b/core/src/main/java/org/springframework/security/ldap/populator/UserDetailsServiceLdapAuthoritiesPopulator.java new file mode 100644 index 0000000000..98365f807b --- /dev/null +++ b/core/src/main/java/org/springframework/security/ldap/populator/UserDetailsServiceLdapAuthoritiesPopulator.java @@ -0,0 +1,23 @@ +package org.springframework.security.ldap.populator; + +import org.springframework.security.ldap.LdapAuthoritiesPopulator; +import org.springframework.security.GrantedAuthority; +import org.springframework.security.userdetails.UserDetailsService; +import org.springframework.ldap.core.DirContextOperations; + +/** + * @author Luke Taylor + * @version $Id$ + * @since 2.0 + */ +public class UserDetailsServiceLdapAuthoritiesPopulator implements LdapAuthoritiesPopulator { + private UserDetailsService userService; + + public UserDetailsServiceLdapAuthoritiesPopulator(UserDetailsService userService) { + this.userService = userService; + } + + public GrantedAuthority[] getGrantedAuthorities(DirContextOperations userData, String username) { + return userService.loadUserByUsername(username).getAuthorities(); + } +}