浅谈Spring Security LDAP简介

2022-10-22,,,,

1.概述

在本快速教程中,我们将学习如何设置spring security ldap

在我们开始之前,了解一下ldap是什么? - 它代表轻量级目录访问协议。它是一种开放的,与供应商无关的协议,用于通过网络访问目录服务。

2. maven dependency

首先,让我们看看我们需要的maven依赖项:

<dependency>
  <groupid>org.springframework.security</groupid>
  <artifactid>spring-security-ldap</artifactid>
</dependency>
 
<dependency>
  <groupid>org.apache.directory.server</groupid>
  <artifactid>apacheds-server-jndi</artifactid>
  <version>1.5.5</version>
</dependency>

注意:我们使用apacheds作为ldap服务器,它是一个可扩展和可嵌入的目录服务器。

3. java configuration

接下来,我们来讨论我们的spring security java配置:

public class securityconfig extends websecurityconfigureradapter {
 
  @override
  protected void configure(authenticationmanagerbuilder auth) throws exception {
    auth.ldapauthentication()
      .usersearchbase("ou=people")
      .usersearchfilter("(uid={0})")
      .groupsearchbase("ou=groups")
      .groupsearchfilter("member={0}")
      .contextsource()
      .root("dc=baeldung,dc=com")
      .ldif("classpath:users.ldif");
  }
}

这当然只是配置的ldap相关部分 - 可以在此处找到完整的java配置。

4. xml configuration

现在,我们来看看相应的xml配置:

<authentication-manager>
  <ldap-authentication-provider
   user-search-base="ou=people"
   user-search-filter="(uid={0})"
   group-search-base="ou=groups"
   group-search-filter="(member={0})">
  </ldap-authentication-provider>
</authentication-manager>
  
<ldap-server root="dc=baeldung,dc=com" ldif="users.ldif"/>

同样,这只是配置的一部分 - 与ldap相关的部分;完整的xml配置可以在这里找到。

5. ldap数据交换格式

ldap数据可以使用ldap数据交换格式(ldif)表示 - 这是我们的用户数据的示例:

dn: ou=groups,dc=baeldung,dc=com
objectclass: top
objectclass: organizationalunit
ou: groups
 
dn: ou=people,dc=baeldung,dc=com
objectclass: top
objectclass: organizationalunit
ou: people
 
dn: uid=baeldung,ou=people,dc=baeldung,dc=com
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: jim beam
sn: beam
uid: baeldung
userpassword: password
 
dn: cn=admin,ou=groups,dc=baeldung,dc=com
objectclass: top
objectclass: groupofnames
cn: admin
member: uid=baeldung,ou=people,dc=baeldung,dc=com
 
dn: cn=user,ou=groups,dc=baeldung,dc=com
objectclass: top
objectclass: groupofnames
cn: user
member: uid=baeldung,ou=people,dc=baeldung,dc=com

6. the application

最后,这是我们的简单应用:

@controller
public class mycontroller {
 
  @requestmapping("/secure")
  public string secure(map<string, object> model, principal principal) {
    model.put("title", "secure area");
    model.put("message", "only authorized users can see this page");
    return "home";
  }
}

7.总结

在这本使用ldap的spring security快速指南中,我们学习了如何使用ldif配置基本系统并在spring security配置ldap。

可以在中找到本教程的完整实现 - 这是一个基于eclipse的项目,因此它应该很容易导入和运行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

《浅谈Spring Security LDAP简介.doc》

下载本文的Word格式文档,以方便收藏与打印。