spring security和ldap,group-search-filter

时间:2013-09-30 06:32:12

标签: spring-security-ldap

我正在使用spring security和ldap实现j2ee。

这是我的ldap结构:

DIT
 |
 |--Root DSE
        |
        |--dc=apacheLDAP
        |         |
        |         |--ou=roles
        |         |     |
        |         |     |--role=1
        |         |     |--role=2
        |         |     |--role=3   
        |         |
        |         |--ou=users
        |         |     |
        |         |     |--user=ali
        |         |     |--user=john
        |         |     |--user=bettyboop
        |
        |--ou=system
               |
               |uid=admin

这是我春天安全的内容:

<security:authentication-manager>
  <security:ldap-authentication-provider
     user-search-filter="uid={0}"
     user-search-base="ou=user,dc=apacheLDAP"
     group-search-filter="description={0}"
     group-search-base="ou=roles,dc=apacheLDAP"
     group-role-attribute="role"
     role-prefix="ROLE_"
  />
</security:authentication-manager>

<security:ldap-server url="ldap://192.168.1.100:10389"
     manager-dn="uid=admin,ou=system"
     manager-password="secret"
/>

对于每个角色,我有一个描述属性,其值为user-search-filter。因此,如果用户ali登录,则user-search-filter将为uid = ali,ou = users,dc = apacheLDAP。此值将被搜索到角色的描述属性中。这很好。

但是,我需要通过将角色属性插入用户架构来修改架构。因此,用户角色的检查是在使用模式中完成的。例如,如果ali具有角色1和角​​色2,则其用户架构将如下所示:

uid    |   ali
role   |   1
role   |   2

我应该如何修改spring-security,以便在用户模式而不是角色模式中完成对authorizaton的检查?

0 个答案:

没有答案