applicationContext-spring-security-ldap.xml
4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?xml version="1.0" encoding="UTF-8"?>
<!--+
| Application context containing LDAP AuthenticationProvider
| implementation.
+-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd
http://www.springframework.org/schema/security/oauth2 http://www.springframework.org/schema/security/spring-security-oauth2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="authenticationProvider" />
</security:authentication-manager>
<bean id="authenticationProvider"
class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<constructor-arg>
<ref bean="authenticator" />
</constructor-arg>
<constructor-arg>
<ref local="populator" />
</constructor-arg>
</bean>
<bean id="authenticator" class="org.springframework.security.ldap.authentication.PasswordComparisonAuthenticator">
<constructor-arg>
<ref local="contextSource" />
</constructor-arg>
<property name="passwordEncoder">
<ref local="passwordEncoder" />
</property>
<property name="userSearch">
<ref local="userSearch" />
</property>
</bean>
<bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg value="${contextSource.providerUrl}"/>
<property name="userDn" value="${contextSource.userDn}"/>
<property name="password" value="${contextSource.password}"/>
</bean>
<!-- be sure to escape ampersands -->
<bean id="userSearch"
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<constructor-arg index="0" value="${userSearch.searchBase}" />
<constructor-arg index="1" value="${userSearch.searchFilter}" />
<constructor-arg index="2">
<ref local="contextSource" />
</constructor-arg>
</bean>
<!-- be sure to escape ampersands -->
<bean id="populator"
class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
<constructor-arg index="0">
<ref local="contextSource" />
</constructor-arg>
<constructor-arg index="1" value="${populator.groupSearchBase}" />
<property name="groupRoleAttribute" value="${populator.groupRoleAttribute}" />
<!-- {0} will be replaced with user DN; {1} will be replaced with username -->
<property name="groupSearchFilter" value="${populator.groupSearchFilter}" />
<property name="rolePrefix" value="${populator.rolePrefix}" />
<property name="convertToUpperCase" value="${populator.convertToUpperCase}" />
<property name="searchSubtree" value="${populator.searchSubtree}" />
</bean>
<bean id="userDetailsService"
class="org.springframework.security.ldap.userdetails.LdapUserDetailsService">
<constructor-arg>
<ref local="userSearch" />
</constructor-arg>
<constructor-arg>
<ref local="populator" />
</constructor-arg>
</bean>
<!-- other password encoders are:
BaseDigestPasswordEncoder, BasePasswordEncoder, LdapShaPasswordEncoder, Md4PasswordEncoder,
Md5PasswordEncoder, MessageDigestPasswordEncoder, PlaintextPasswordEncoder, ShaPasswordEncoder
-->
<bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.PlaintextPasswordEncoder" >
</bean>
<bean id="propertyPlaceholderConfigurerSecurityLdap"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/applicationContext-security-ldap.properties" />
</bean>
</beans>