浅谈Spring Security LDAP简介
程序员文章站
2023-11-24 13:29:52
1.概述
在本快速教程中,我们将学习如何设置spring security ldap。
在我们开始之前,了解一下ldap是什么? - 它代表轻量级目录访问协议。它是一种...
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的项目,因此它应该很容易导入和运行。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: java实现ping
推荐阅读
-
浅谈Spring Security LDAP简介
-
浅谈Spring Security 对于静态资源的拦截与放行
-
浅谈Spring Security 对于静态资源的拦截与放行
-
史上最简单的Spring Security教程(十九):AccessDecisionVoter简介及自定义访问权限投票器
-
《Spring Security3》第九章(LDAP)第二部分翻译(LDAP高级配置)
-
《Spring Security3》第九章(LDAP)第一部分翻译(LDAP基本配置)
-
《Spring Security3》第九章(LDAP)第三部分翻译(LDAP明确配置)
-
《Spring Security3》第九章(LDAP)第一部分翻译(LDAP基本配置)
-
《Spring Security3》第九章(LDAP)第二部分翻译(LDAP高级配置)
-
《Spring Security3》第九章(LDAP)第三部分翻译(LDAP明确配置)