使用LDAP的Spring安全认证
我是SpringSecurity的新手,我尝试运行一个基于SpringSecurityLDAP示例的示例应用程序。下面是我对applicationContext-security.xml的配置:使用LDAP的Spring安全认证,ldap,spring-security,Ldap,Spring Security,我是SpringSecurity的新手,我尝试运行一个基于SpringSecurityLDAP示例的示例应用程序。下面是我对applicationContext-security.xml的配置: <http> <intercept-url pattern="/Login.jsp" filters="none"></intercept-url> <intercept-url pattern="/nnn/**" access=
<http>
<intercept-url pattern="/Login.jsp" filters="none"></intercept-url>
<intercept-url pattern="/nnn/**" access="ROLE_ADMIN" />
<intercept-url pattern="/common/**" access="ROLE_USER" />
<form-login login-page="/Login.jsp" authentication-failure-url="/Login.jsp?login_error=1"
default-target-url="/common/home.jsp"/>
<logout logout-success-url="/Login.jsp" invalidate-session="true"/>
</http>
<authentication-manager>
<ldap-authentication-provider group-search-filter="member={0}"
group-search-base="ou=groups"
user-search-base="ou=people"
user-search-filter="uid={0}" />
<authentication-provider ref='secondLdapProvider' />
</authentication-manager>
<ldap-server ldif="classpath:users.ldif" port="33389"/>
<b:bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<b:constructor-arg value="ldap://localhost:33389/dc=springframework,dc=org"/>
</b:bean>
有人能告诉我为什么我会出现上述错误
这是ldif文件:
dn: ou=groups,dc=google,dc=org
objectclass: top
objectclass: organizationalUnit
ou: groups
dn: ou=people,dc=google,dc=org
objectclass: top
objectclass: organizationalUnit
ou: people
dn: uid=rod,ou=people,dc=google,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Rod Johnson
sn: Johnson
uid: rod
userPassword: koala
dn: uid=dianne,ou=people,dc=google,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Dianne Emu
sn: Emu
uid: dianne
userPassword: emu
dn: uid=scott,ou=people,dc=google,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Scott
sn: Wombat
uid: scott
userPassword: wombat
dn: cn=user,ou=groups,dc=google,dc=org
objectclass: top
objectclass: groupOfNames
cn: user
member: uid=rod,ou=people,dc=google,dc=org
member: uid=dianne,ou=people,dc=google,dc=org
member: uid=scott,ou=people,dc=google,dc=org
dn: cn=teller,ou=groups,dc=google,dc=org
objectclass: top
objectclass: groupOfNames
cn: USER
member: uid=rod,ou=people,dc=google,dc=org
member: dianne=rod,ou=people,dc=google,dc=org
dn: cn=supervisor,ou=groups,dc=google,dc=org
objectclass: top
objectclass: groupOfNames
cn: ADMIN
member: uid=rod,ou=people,dc=google,dc=org
它不是google,而是示例应用程序原始文件中的springframework。我是否缺少此…搜索请求至少必须包含一个基本对象、一个范围和一个筛选器。查询中指定的基本对象不存在,因此搜索失败。如您所见,错误代码32是“没有这样的对象”,在本例中是基本对象。搜索请求至少必须包含一个基本对象、一个范围和一个筛选器。查询中指定的基本对象不存在,因此搜索失败。如您所见,错误代码32是“没有这样的对象”,在本例中是基本对象。您需要将
root
设置为所需的基本dn/后缀(dc=google,dc=org,在您的情况下)以使其工作。因此,总共有三个地方需要进行更改:
dc=springframework,dc=org
,这就是为什么在发布的示例中不需要设置它的原因。要使用任何其他基本dn,请遵循下面的示例ldap服务器定义:
<security:ldap-server id="dummyLdap" ldif="classpath:users.ldif" port="33389" root="dc=stackoverflow,dc=com">
您需要将
root
设置为所需的基本dn/后缀(在您的情况下,dc=google,dc=org)以使其工作。因此,总共有三个地方需要进行更改:
dc=springframework,dc=org
,这就是为什么在发布的示例中不需要设置它的原因。要使用任何其他基本dn,请遵循下面的示例ldap服务器定义:
<security:ldap-server id="dummyLdap" ldif="classpath:users.ldif" port="33389" root="dc=stackoverflow,dc=com">