User services
[lgpl/argeo-commons.git] / security / modules / org.argeo.security.manager.ldap / META-INF / spring / ldap.xml
index 49a2c93d1b5d2527a81d131f613ba2496193a88b..22fd5baffcb289bc23555835b7cbfe4418831247 100644 (file)
                                </property>
                        </bean>
                </constructor-arg>
-               <constructor-arg>
+               <constructor-arg ref="authoritiesPopulator" />
+               <property name="userDetailsContextMapper" ref="userDetailsMapper" />
+       </bean>
+
+       <bean id="authoritiesPopulator"
+               class="org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator">
+               <constructor-arg ref="contextSource" />
+               <constructor-arg value="ou=groups" />
+               <!-- <property name="defaultRole" value="ROLE_USER" /> -->
+               <property name="groupSearchFilter" value="uniqueMember={0}" />
+       </bean>
+
+       <bean id="userDetailsManager"
+               class="org.springframework.security.userdetails.ldap.LdapUserDetailsManager">
+               <constructor-arg ref="contextSource" />
+               <property name="userDetailsMapper" ref="userDetailsMapper" />
+               <property name="groupSearchBase" value="ou=groups" />
+               <property name="usernameMapper">
                        <bean
-                               class="org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator">
-                               <constructor-arg ref="contextSource" />
-                               <constructor-arg value="ou=groups" />
-                               <!-- <property name="defaultRole" value="ROLE_USER" /> -->
-                               <property name="groupSearchFilter" value="uniqueMember={0}" />
+                               class="org.springframework.security.ldap.DefaultLdapUsernameToDnMapper">
+                               <constructor-arg value="ou=users" />
+                               <constructor-arg value="uid" />
                        </bean>
-               </constructor-arg>
+               </property>
        </bean>
 
+       <bean id="userDetailsMapper" class="org.argeo.security.ldap.ArgeoUserDetailsContextMapper">
+               <property name="userNatureMappers">
+                       <list>
+                               <bean class="org.argeo.security.ldap.SimpleUserNatureMapper" />
+                               <bean class="org.argeo.security.ldap.CoworkerUserNatureMapper" />
+                       </list>
+               </property>
+       </bean>
 </beans>