\r
<service ref="securityDao" interface="org.argeo.security.ArgeoSecurityDao"\r
context-class-loader="service-provider" />\r
\r
<service ref="securityDao" interface="org.argeo.security.ArgeoSecurityDao"\r
context-class-loader="service-provider" />\r
- <service ref="userDetailsManager"\r
+ <service ref="userDetailsService"\r
interface="org.springframework.security.userdetails.UserDetailsService"\r
context-class-loader="service-provider" />\r
\r
interface="org.springframework.security.userdetails.UserDetailsService"\r
context-class-loader="service-provider" />\r
\r
<property name="userNatureMappers" ref="userNatureMappers" />
</bean>
<property name="userNatureMappers" ref="userNatureMappers" />
</bean>
- <bean id="userDetailsManager" factory-bean="securityDao"
- factory-method="getUserDetailsManager">
+ <bean id="userDetailsService" factory-bean="securityDao"
+ factory-method="getUserDetailsService">
</bean>
<bean id="ldapAuthenticator"
</bean>
<bean id="ldapAuthenticator"
import org.springframework.beans.factory.InitializingBean;
import org.springframework.ldap.core.ContextExecutor;
import org.springframework.ldap.core.ContextMapper;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.ldap.core.ContextExecutor;
import org.springframework.ldap.core.ContextMapper;
-import org.springframework.ldap.core.ContextSource;
import org.springframework.ldap.core.DirContextAdapter;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.ldap.core.LdapTemplate;
import org.springframework.ldap.core.DirContextAdapter;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.ldap.core.LdapTemplate;
+import org.springframework.ldap.core.support.BaseLdapPathContextSource;
import org.springframework.security.Authentication;
import org.springframework.security.context.SecurityContextHolder;
import org.springframework.security.ldap.DefaultLdapUsernameToDnMapper;
import org.springframework.security.Authentication;
import org.springframework.security.context.SecurityContextHolder;
import org.springframework.security.ldap.DefaultLdapUsernameToDnMapper;
import org.springframework.security.ldap.LdapUsernameToDnMapper;
import org.springframework.security.ldap.LdapUtils;
import org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator;
import org.springframework.security.ldap.LdapUsernameToDnMapper;
import org.springframework.security.ldap.LdapUtils;
import org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator;
+import org.springframework.security.ldap.search.FilterBasedLdapUserSearch;
import org.springframework.security.userdetails.UserDetails;
import org.springframework.security.userdetails.UserDetailsManager;
import org.springframework.security.userdetails.UserDetails;
import org.springframework.security.userdetails.UserDetailsManager;
+import org.springframework.security.userdetails.UserDetailsService;
import org.springframework.security.userdetails.ldap.LdapUserDetailsManager;
import org.springframework.security.userdetails.ldap.LdapUserDetailsManager;
+import org.springframework.security.userdetails.ldap.LdapUserDetailsService;
import org.springframework.security.userdetails.ldap.UserDetailsContextMapper;
public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean {
import org.springframework.security.userdetails.ldap.UserDetailsContextMapper;
public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean {
private String defaultRole = "ROLE_USER";
private String rolePrefix = "ROLE_";
private String defaultRole = "ROLE_USER";
private String rolePrefix = "ROLE_";
+ private final BaseLdapPathContextSource contextSource;
private final LdapTemplate ldapTemplate;
private LdapUsernameToDnMapper usernameMapper = null;
private UserDetailsContextMapper userDetailsMapper;
private final LdapTemplate ldapTemplate;
private LdapUsernameToDnMapper usernameMapper = null;
private UserDetailsContextMapper userDetailsMapper;
-// private LdapUserDetailsService ldapUserDetailsService;
+ private LdapUserDetailsService ldapUserDetailsService;
private List<UserNatureMapper> userNatureMappers;
public void afterPropertiesSet() throws Exception {
private List<UserNatureMapper> userNatureMappers;
public void afterPropertiesSet() throws Exception {
userDetailsManager = ludm;
}
userDetailsManager = ludm;
}
-// if (ldapUserDetailsService == null) {
-// ldapUserDetailsService = new LdapUserDetailsService(null,
-// authoritiesPopulator);
-// ldapUserDetailsService.setUserDetailsMapper(userDetailsMapper);
-// }
+ if (ldapUserDetailsService == null) {
+ FilterBasedLdapUserSearch ldapUserSearch = new FilterBasedLdapUserSearch(
+ userBase, "(" + usernameAttributeName + "={0})",
+ contextSource);
+ ldapUserDetailsService = new LdapUserDetailsService(ldapUserSearch,
+ authoritiesPopulator);
+ ldapUserDetailsService.setUserDetailsMapper(userDetailsMapper);
+ }
- public ArgeoSecurityDaoLdap(ContextSource contextSource) {
- ldapTemplate = new LdapTemplate(contextSource);
+ public ArgeoSecurityDaoLdap(BaseLdapPathContextSource contextSource) {
+ this.contextSource = contextSource;
+ ldapTemplate = new LdapTemplate(this.contextSource);
}
public void create(ArgeoUser user) {
}
public void create(ArgeoUser user) {
this.groupClasses = groupClasses;
}
this.groupClasses = groupClasses;
}
- public UserDetailsManager getUserDetailsManager() {
- return userDetailsManager;
+ public UserDetailsService getUserDetailsService() {
+ return ldapUserDetailsService;