浅谈Spring Security LDAP简介

时间:2021-05-19

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=comobjectclass: topobjectclass: organizationalUnitou: groups dn: ou=people,dc=baeldung,dc=comobjectclass: topobjectclass: organizationalUnitou: people dn: uid=baeldung,ou=people,dc=baeldung,dc=comobjectclass: topobjectclass: personobjectclass: organizationalPersonobjectclass: inetOrgPersoncn: Jim Beamsn: Beamuid: baeldunguserPassword: password dn: cn=admin,ou=groups,dc=baeldung,dc=comobjectclass: topobjectclass: groupOfNamescn: adminmember: uid=baeldung,ou=people,dc=baeldung,dc=com dn: cn=user,ou=groups,dc=baeldung,dc=comobjectclass: topobjectclass: groupOfNamescn: usermember: uid=baeldung,ou=people,dc=baeldung,dc=com

6. The Application

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

@Controllerpublic 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。

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

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章